Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,98 @@
# Changelog

## Quantum Mobile v26.03

### Highlights

✨ **ARM64 / Apple Silicon support.** Quantum Mobile now builds and runs natively on ARM64 hardware (Apple Silicon Macs, ARM64 Linux).
NWChem, Quantum ESPRESSO, Yambo, Siesta, and Wannier90 are available on both `x86_64` and `aarch64`.
ABINIT, BigDFT, CP2K, and Fleur remain `x86_64`-only for now (pending conda-forge feedstock support).

📦 **Updated simulation codes.** All codes updated to their latest conda-forge versions, with explicit dependency pins for reproducible builds:

| Code | Version | libxc | MPI |
|------|---------|-------|-----|
| ABINIT | 10.0.3 | 4.3.4 | mpich 4.3.2 |
| BigDFT | 1.9.5 | 4.3.4 | mpich 4.3.2 |
| CP2K | 2024.2 | 6.2.2 | openmpi 4.1.6 |
| Fleur | 8.0 | — | openmpi 5.0.8 |
| NWChem | 7.3.1 | 7.0.0 | openmpi 5.0.8 |
| Quantum ESPRESSO | 7.5 | — | openmpi 5.0.8 |
| Siesta | 5.4.2 | 7.0.0 | openmpi 5.0.8 |
| Wannier90 | 3.1.0 | — | — |
| Yambo | 5.3.0 | 6.2.2 | openmpi 4.1.6 |

📦 **Updated AiiDA stack.** Upgraded to aiida-core 2.7 and Python 3.10.
`aiida-nwchem` bumped to v3.

📦 **Ubuntu 24.04 LTS.** The base OS has been upgraded from Ubuntu 20.04 to 24.04.
Default VM memory has been increased from 1536 MB to 2048 MB.

👌 **Cleaner PATH management.** Code binaries are now symlinked to `~/.local/bin` instead of adding full conda environment `bin/` directories to `PATH`.
This prevents dependency binaries (Python, `pip`, `mpirun`, etc.) from leaking into the user's `PATH`.

---

### Full changelog

#### ✨ New features

- ARM64: add support for Siesta and Wannier90 on `aarch64` ([1e2c276](https://github.com/marvel-nccr/quantum-mobile/commit/1e2c2769291ab862441968f0248da1a90a2721f3))
- ARM64: add architecture-specific support for codes and plugins (NWChem, QE, Yambo) ([cd89e42](https://github.com/marvel-nccr/quantum-mobile/commit/cd89e42201093b75691f88d32bad33fdee4991ed))

#### 👌 Improvements

- Conda: symlink code binaries to `~/.local/bin` instead of adding full env to `PATH` ([c463929](https://github.com/marvel-nccr/quantum-mobile/commit/c463929beabecb28e7bc31255a153dd2864acada))
- Conda: replace `install_pkgs` module with direct mamba calls ([ae8e04c](https://github.com/marvel-nccr/quantum-mobile/commit/ae8e04c468e76453142865e262f815d4e8edec98))
- Package: include architecture in output image filename ([1daf04f](https://github.com/marvel-nccr/quantum-mobile/commit/1daf04f1737538c780de26fa276c890bf41a448d))
- Package: use flexible regex for vdisk detection ([42d818e](https://github.com/marvel-nccr/quantum-mobile/commit/42d818ed9c0add7f8450121217ad243866770782))
- Pseudopotentials: add retry logic for downloads ([d1d21a7](https://github.com/marvel-nccr/quantum-mobile/commit/d1d21a7087c1fddf72abd454d13f58999e6c887b))
- User: explicitly set shell to bash ([46b3441](https://github.com/marvel-nccr/quantum-mobile/commit/46b34415034704c04016e4cb6fa2c30e94ff792b))

#### 🐛 Bug fixes

- AiiDA profile: fix PostgreSQL setup order and ownership ([aba3179](https://github.com/marvel-nccr/quantum-mobile/commit/aba31796c71819171f261133bfd978bdf3734e88))
- Build: use kernel-specific linux-headers instead of generic ([a41a543](https://github.com/marvel-nccr/quantum-mobile/commit/a41a543b1c6f8b9660c67c718a0ffd7203737122))
- Desktop: prevent NetworkManager from breaking network during install ([43fbc47](https://github.com/marvel-nccr/quantum-mobile/commit/43fbc4739bb3b32d7dd66721958c7fb789f5ede0))
- NWChem: fix periodic boundary conditions for H2O example input ([dd49a6e](https://github.com/marvel-nccr/quantum-mobile/commit/dd49a6e9ba4299906e616c9cd335567e3e8ceaa4))
- Package: remove broken NIC2 cleanup task ([dd5a24c](https://github.com/marvel-nccr/quantum-mobile/commit/dd5a24ca49d23673ab03d7a03f85b77da6a8f26c))
- Plotting: fix XCrySDen OpenGL initialisation in VMs (accumulation buffer) ([e6e2d31](https://github.com/marvel-nccr/quantum-mobile/commit/e6e2d319e1b65ef87b1cd9650682e575e6bd1348))
- Pseudopotentials: fix idempotency and status detection ([c2306ba](https://github.com/marvel-nccr/quantum-mobile/commit/c2306ba015e9279f8616d567c0a27f7cb9a5de6f))
- RabbitMQ: set `consumer_timeout` to `undefined` to prevent dropping long-running tasks ([fdec8f1](https://github.com/marvel-nccr/quantum-mobile/commit/fdec8f1c4f787e3dacf320d4e7cfc461d71cfc03))
- System: remove pip upgrade to comply with PEP 668 ([0e0fb4e](https://github.com/marvel-nccr/quantum-mobile/commit/0e0fb4e42d4b9026ecc0f3612cbea9f5de59acf0))

#### ❌ Removals

- Desktop: install JupyterLab shortcut to applications, remove homepage desktop icon ([6c2aec3](https://github.com/marvel-nccr/quantum-mobile/commit/6c2aec38df14c10cc4826fdda70363aac7ae8c37))
- Disabled 3D acceleration (incompatible with vmsvga in VirtualBox 7.2.6) ([8a470ec](https://github.com/marvel-nccr/quantum-mobile/commit/8a470ec7f2184c955d5402cc08bcb2fd620897f5))
- Disabled `aiida-examples` task (gets stuck, needs debugging) ([8a470ec](https://github.com/marvel-nccr/quantum-mobile/commit/8a470ec7f2184c955d5402cc08bcb2fd620897f5))

#### 📦 Dependencies

- VM: base OS upgraded from Ubuntu 20.04 to 24.04 LTS, memory 1536 → 2048 MB ([3e1934a](https://github.com/marvel-nccr/quantum-mobile/commit/3e1934aa7d9fd0da4a4aa36d5403ed8d1800a333))
- Conda: upgrade from deprecated Mambaforge 22.11.1-4 to Miniforge3 25.11.0-1 ([b457fed](https://github.com/marvel-nccr/quantum-mobile/commit/b457fed2bfecae683803e83d8de1de73d696d50e))
- Ansible: update to 13.4 (`ansible-core` 2.20) ([04e2104](https://github.com/marvel-nccr/quantum-mobile/commit/04e2104c1f8e7b619da64c8343553d0f645e439c))
- Roles: `marvel-nccr.ubuntu_desktop` v1.1.0 → v2.0.0, `marvel-nccr.slurm` v2.0.2 → v3.0.0 ([fd03637](https://github.com/marvel-nccr/quantum-mobile/commit/fd03637a55a61b84b84b504d7919b7943e11e0e4))
- Codes: all updated to latest conda-forge versions (see Highlights) ([5874507](https://github.com/marvel-nccr/quantum-mobile/commit/58745073919adfcec6b79c335ba8f9e77b8c6352))
- aiida-nwchem: bump to v3 ([b400e09](https://github.com/marvel-nccr/quantum-mobile/commit/b400e09d4c84af4e433d2087e28acc5b48650b70))

#### 🔄 Refactoring

- Conda: unify AiiDA and code environment installation into a single task file ([b82d17c](https://github.com/marvel-nccr/quantum-mobile/commit/b82d17c7f6e8926f68878d668ff0e3b61d7df9ba))
- Editors: replace `marvel-nccr.editors` role with local tasks ([c4f74ab](https://github.com/marvel-nccr/quantum-mobile/commit/c4f74ab6585120553d9074989c3e12a558bdbc7d))
- User: replace `marvel-nccr.add_user` role with local tasks, remove unused `marvel-nccr.current_user` dependency ([31e628a](https://github.com/marvel-nccr/quantum-mobile/commit/31e628a4c7bf193d0ed4794e47901bb948eedd1f))

#### 🔧 DevOps / CI

- CI: migrate from Vagrant/macOS to Docker/Ubuntu multi-arch (x86_64 + ARM64) ([e6729ba](https://github.com/marvel-nccr/quantum-mobile/commit/e6729ba6a657d4d833a0f27b2791b206693b7769))
- CI: skip RabbitMQ install in Docker (no systemd) ([431afa0](https://github.com/marvel-nccr/quantum-mobile/commit/431afa01d1585e646bbd191e98dfea8c994d819e))
- GitHub Actions: update all actions to latest versions ([6b53857](https://github.com/marvel-nccr/quantum-mobile/commit/6b53857f55f5ebd63558f580fb3653092a2f6f8e))
- pre-commit: migrate to `ansible-lint` for YAML linting (replaces `yamllint`) ([2e3abe2](https://github.com/marvel-nccr/quantum-mobile/commit/2e3abe2506940631c88808a480e0a43c3f813442))
- tox: update to Python 3.13 ([540058b](https://github.com/marvel-nccr/quantum-mobile/commit/540058b6f97cabf504e3766e050d891262499097))
- Vagrant: unify provisioning workflow, separate VM creation from Ansible provisioning ([7290779](https://github.com/marvel-nccr/quantum-mobile/commit/729077907e62798ddd5382f0a374bd893656d1a7))

---

## Quantum Mobile v20.06.1a1

### Improvements
Expand Down
161 changes: 161 additions & 0 deletions docs/releases/versions/26.03.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
---
blogpost: true
author: Quantum Mobile
date: 2026-03-27
category: Full
tags: desktop
---

# v26.03

A Virtual Machine for Computational Materials Science.
[See the changelog for more details on the release](https://github.com/marvel-nccr/quantum-mobile/blob/main/CHANGELOG.md#quantum-mobile-v2603).

## Installation instructions

Get Quantum Mobile running on your computer in three simple steps:

1. Download virtual machine image for your architecture:

| Architecture | Links | Size | MD5 |
|---|---|---|---|
| ARM64 (Apple Silicon, ARM Linux) | [Google Drive](https://drive.google.com/file/d/1ckVtfJJo2Q1nsbvnA9kwDyyE4ZfGBJki/view?usp=sharing) | 5.62 GB | `82eceea2bab64c27636ed9a1fe0ed230` |
| AMD64 (Intel/AMD) | [Google Drive](https://drive.google.com/file/d/1YZHYF-EKa4F6NlrCu5RWjwQYFvkOA4AU/view?usp=sharing) | 7.45 GB | `56973b9f92feeab3932e861ca753c0cc` |

2. Install Virtual Box 7.2.6 or later (see <https://www.virtualbox.org>)
3. Import virtual machine image into Virtualbox:
File => Import Appliance

Login credentials: username: `max`, password: `moritz`.
The default configuration of `2` cores and `2048` MB RAM can be adjusted in the VM settings.

## Contact

For issues encountered during installation, please first consult the [FAQ page](https://github.com/marvel-nccr/quantum-mobile/wiki/Frequently-Asked-Questions#virtualbox-installationstartup-issues).

Please direct inquiries regarding Quantum Mobile to the [Quantum Mobile support channel](https://aiida.discourse.group/c/quantum-mobile/) in the AiiDA Discourse

## Build Process

- OS: MacOS Sequoia 15.5 & Ubuntu 24.04.4 LTS
- Ansible: `13.4`
- Vagrant: `2.4.9`
- Virtualbox: `7.2.6r172322`
- Base VM Image: `bento/ubuntu-24.04`

### Software Summary

**AMD64**

```ini
[Quantum Mobile]
version = 26.03
Operating System = Ubuntu 24.04.3 LTS
Login credentials = max / moritz
[Apt packages]
grace = 1:5.1.25-14
xcrysden = 1.6.2-4
default-jre = 2:1.21-75+exp1
rabbitmq-server = 3.12.1-1ubuntu1.4
postgresql-client = 16+257build1.1
[Conda 'abinit' environment]
abinit = 10.0.3-h2b8cb88_2@conda-forge
libxc = 4.3.4-hd8f1df9_4@conda-forge
mpich = 4.3.2-h79b1c89_101@conda-forge
[Conda 'bigdft' environment]
bigdft-suite = 1.9.5-mpi_mpich_py310h21f0213_0@conda-forge
libxc = 4.3.4-hd8f1df9_4@conda-forge
mpich = 4.3.2-h23078de_105@conda-forge
[Conda 'cp2k' environment]
cp2k = 2024.2-openblas_openmpi_hae4b963_0@conda-forge
libxc = 6.2.2-cpu_h5ef0af7_6@conda-forge
openmpi = 4.1.6-hc5af2df_101@conda-forge
[Conda 'fleur' environment]
fleur = 8.0-h4856401_0@conda-forge
openmpi = 5.0.8-h2fe1745_110@conda-forge
[Conda 'nwchem' environment]
libxc = 7.0.0-cpu_h54041b4_6@conda-forge
nwchem = 7.3.1-py314_mpi_ts_h23c3b41b_1002@conda-forge
openmpi = 5.0.8-h611b0e2_111@conda-forge
[Conda 'qespresso' environment]
openmpi = 5.0.8-h611b0e2_111@conda-forge
qe = 7.5-h19104ac_2@conda-forge
[Conda 'siesta' environment]
libxc = 7.0.0-cpu_h54041b4_6@conda-forge
openmpi = 5.0.8-h611b0e2_111@conda-forge
siesta = 5.4.2-nompi_h3aee6c3_1001@conda-forge
[Conda 'visualise' environment]
gnuplot = 5.4.10-h187b4c5_1@conda-forge
jmol = 14.32.10-ha770c72_0@conda-forge
[Conda 'wannier90' environment]
wannier90 = 3.1.0-h0652cae_4@conda-forge
[Conda 'yambo' environment]
libxc = 6.2.2-cpu_h5ef0af7_6@conda-forge
openmpi = 4.1.6-hc5af2df_101@conda-forge
yambo = 5.3.0-single_hc14117b_4@conda-forge
[Conda 'aiida' environment]
aiida-abinit = 0.4.0-pyhd8ed1ab_0@conda-forge
aiida-nwchem = 3.0.1-pyhd8ed1ab_0@conda-forge
aiida-pseudo = 1.8.0-pyhd8ed1ab_0@conda-forge
aiida-quantumespresso = 4.16.0-pyhd8ed1ab_0@conda-forge
aiida-siesta = 2.0.0-pyhd8ed1ab_0@conda-forge
ipykernel = 7.2.0-pyha191276_1@conda-forge
jupyterlab = 4.5.6-pyhd8ed1ab_0@conda-forge
jupyterlab-spellchecker = 0.8.4-pyhd8ed1ab_0@conda-forge
jupyterlab-tour = 4.0.1-pyhd8ed1ab_1@conda-forge
mamba_gator = 6.1.0-pyhd8ed1ab_0@conda-forge
pip = 26.0.1-pyh8b19718_0@conda-forge
python = 3.10.20-h3c07f61_0_cpython@conda-forge
[Pseudopotentials]
SSSP/PBE/efficiency/1.1 = /usr/local/share/pseudo_sssp_PBE_efficiency_1.1
DOJO/PBE/FR/standard/0.4/psml = /usr/local/share/pseudo_dojo_PBE_FR_standard_0.4_psml
```

**ARM64**

```ini
[Quantum Mobile]
version = 26.03
Operating System = Ubuntu 24.04.3 LTS
Login credentials = max / moritz
[Apt packages]
grace = 1:5.1.25-14
xcrysden = 1.6.2-4
default-jre = 2:1.21-75+exp1
rabbitmq-server = 3.12.1-1ubuntu1.4
postgresql-client = 16+257build1.1
[Conda 'nwchem' environment]
nwchem = 7.3.1-py314_mpi_ts_h23c3b41b_1002@conda-forge
libxc = 7.0.0-cpu_h5ec042d_6@conda-forge
openmpi = 5.0.8-hd47b191_111@conda-forge
[Conda 'qespresso' environment]
qe = 7.5-hc91ee90_1@conda-forge
openmpi = 5.0.8-hd47b191_111@conda-forge
[Conda 'yambo' environment]
yambo = 5.3.0-single_h3db96bd_4@conda-forge
libxc = 6.2.2-cpu_hc20f22c_6@conda-forge
openmpi = 4.1.6-h1f4154d_101@conda-forge
[Conda 'visualise' environment]
gnuplot = 5.4.10-hcbe3477_1@conda-forge
jmol = 14.32.10-h8af1aa0_0@conda-forge
[Conda 'aiida' environment]
aiida-nwchem = 3.0.1-pyhd8ed1ab_0@conda-forge
aiida-pseudo = 1.8.0-pyhd8ed1ab_0@conda-forge
aiida-quantumespresso = 4.16.0-pyhd8ed1ab_0@conda-forge
ipykernel = 7.2.0-pyha191276_1@conda-forge
jupyterlab = 4.5.6-pyhd8ed1ab_0@conda-forge
jupyterlab-spellchecker = 0.8.4-pyhd8ed1ab_0@conda-forge
jupyterlab-tour = 4.0.1-pyhd8ed1ab_1@conda-forge
mamba_gator = 6.1.0-pyhd8ed1ab_0@conda-forge
pip = 26.0.1-pyh8b19718_0@conda-forge
python = 3.10.20-h28be5d3_0_cpython@conda-forge
[Pseudopotentials]
SSSP/PBE/efficiency/1.1 = /usr/local/share/pseudo_sssp_PBE_efficiency_1.1
DOJO/PBE/FR/standard/0.4/psml = /usr/local/share/pseudo_dojo_PBE_FR_standard_0.4_psml
[Conda 'siesta' environment]
libxc = 7.0.0-cpu_h5ec042d_6@conda-forge
openmpi = 5.0.8-hd47b191_111@conda-forge
siesta = 5.4.2-nompi_hfa30ceb_1001@conda-forge
[Conda 'wannier90' environment]
wannier90 = 3.1.0-hb3d9914_4@conda-forge
```
2 changes: 1 addition & 1 deletion docs/users/launch.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## Desktop Edition with VirtualBox

- Download the latest VirtualBox image from [the releases](../releases/index.md)
- Install [Virtual Box](https://www.virtualbox.org) 6.1.6 or later
- Install [Virtual Box](https://www.virtualbox.org) 7.2.6 or later
- Import the virtual machine image into Virtualbox: `File => Import Appliance`

(launch/cloud)=
Expand Down
2 changes: 1 addition & 1 deletion inventory.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ all:
vars:
# VM Metadata
vm_name: "Quantum Mobile"
vm_version: "23.04.03"
vm_version: "26.03"
vm_description: "A Virtual Machine for Computational Materials Science"
vm_url: "https://github.com/marvel-nccr/marvel-virtualmachine"
vm_author: "MARVEL NCCR and MaX CoE"
Expand Down
2 changes: 1 addition & 1 deletion resources/Release.md.j2
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Get Quantum Mobile running on your computer in three simple steps:
- URL: <https://rgw.cscs.ch/matcloud:public-marvel-vms/{{ image_path | basename }}>
- Filename: `{{ image_path | basename }}`
- MD5 hash: `{{ vm_image_file.stat.checksum }}`
2. Install Virtual Box 6.1.6 or later (see <https://www.virtualbox.org>)
2. Install Virtual Box 7.2.6 or later (see <https://www.virtualbox.org>)
3. Import virtual machine image into Virtualbox ({{ vm_vdisk_file.stat.size | filesizeformat }})
File => Import Appliance

Expand Down
Loading