Conversation
c0ed8e8 to
06afb50
Compare
0f224ba to
d6dc28a
Compare
80a511c to
f1b34ee
Compare
Install JupyterLab shortcut to `/usr/share/applications/` instead of directly to the Desktop. This should still be relatively easy to find for users that want to use JupyterLab. Remove the Quantum Mobile homepage desktop shortcut entirely. Anyone who is using Quantum Mobile most likely downloaded it from this website anyways, no need for this extra advertisement. This removes the need for manual post-installation steps where desktop shortcuts had to be manually enabled via `desktop-file-install` and "Allow Launching". The JupyterLab shortcut is now properly installed as a system application and can still be added to the Desktop by users if desired.
Fix two bugs in SSSP and DOJO pseudopotential installation tasks: 1. Update `creates` parameter to check for actual output file (e.g., SSSP_1.1_PBE_efficiency.aiida_pseudo) instead of generic archive.tar.gz, ensuring correct idempotency per variant 2. Check `stdout` instead of `stderr` for "already installed" message, fixing both error detection and change reporting
Reorder PostgreSQL setup tasks to create user before database, and explicitly set database owner during creation. This follows PostgreSQL best practices and removes unnecessary db parameter from user creation task. Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Remove pip upgrade task that fails on Ubuntu 24.04 due to PEP 668 "externally managed" environment protection: https://peps.python.org/pep-0668/ System pip from apt is sufficient; user packages are installed in conda environments. Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Remove vagrant-provision host and Vagrant-triggered Ansible provisioning due to recurring SSH connection issues. The automatic provisioning often failed mid-run, requiring fallback to manual SSH config method anyway. New workflow clearly separates VM creation (`tox -e vagrant`) from provisioning (`tox -e ansible` using SSH config), improving reliability without much added complexity. Rename vagrant-ssh host to vagrant for simplicity. Update the tox.ini syntax to replace the removed `whitelist_externals` by `allowlist_externals`.
Replace `linux-headers-generic` with `linux-headers-{{ ansible_kernel }}` to avoid
dependency issues on ARM64 where the generic metapackage can temporarily reference
newer kernel versions before corresponding header packages are available. Using
kernel-specific headers ensures we install for the currently running kernel. Enable
fact gathering to access `ansible_kernel` variable.
Replace the `chrisjsewell.conda.install_pkgs` module with direct mamba commands to work around an issue when handling architecture-specific packages. The module fails to parse mamba's plain-text error output, raising generic errors instead of `PackagesNotFoundError`. Understanding this module and fixing the issue is probably preferable, but the same logic can be implemented with direct mamba calls. The new approach explicitly checks environment existence, uses mamba create/install accordingly, and adds environment bins to PATH for direct code execution.
Update base image from Ubuntu 20.04 to 24.04 LTS for current package versions and better ARM64 support. Increase default memory from 1536 MB to 2048 MB to accommodate modern desktop environments. Add explicit vm_wm_package configuration for ubuntu-desktop-minimal. Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Update Ansible from 2.10.0 to 13.4 (`ansible-core` 2.20) and resolve breaking changes: replace removed `community.general.yaml` callback with `ansible.builtin.default` and `result_format=yaml`, update deprecated `callback_whitelist` to `callbacks_enabled`, use `ansible_facts` dictionary instead of auto-injected fact variables, rename reserved 'name' variable to 'profile_name' in aiida-profile tasks, and enable `allow_broken_conditionals` to work around stricter conditional checking that breaks third-party collections. Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Add `netplan` configuration to lock network renderer to `networkd` before installing `ubuntu-desktop`. Installing `ubuntu-desktop` pulls in NetworkManager which can take over network management mid-install, causing the interface to lose its IP and breaking the Ansible connection. Also add `ubuntu_desktop_wm_package` variable to role configuration.
Update from Mambaforge 22.11.1-4 to Miniforge3 25.11.0-1 (Mambaforge is deprecated) and add support for both x86_64 and aarch64 architectures. Installer URL and checksum now dynamically selected based on ansible_facts['architecture'], enabling builds on ARM64 Linux and Apple Silicon systems.
99f5545 to
3c83e52
Compare
Add comprehensive architecture support (`x86_64` for AMD64 and `aarch64` for ARM64) for simulation codes, AiiDA plugins, and AiiDA codes. Categorize packages by architecture availability: * `x86_64` only: ABINIT, BigDFT, CP2K, Fleur, Wannier90 and Siesta * `x86_64` and `aarch64`: NwChem, Quantum ESPRESSO and Yambo Build AiiDA plugin list dynamically based on architecture. Update to Python 3.10, and `aiida-core` 2.7. Enable ARM64 Linux builds by skipping x86_64-only packages. For now, we remove `aiida-cp2k` support due to a dependency conflict with aiida-core v2.7. Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Update `marvel-nccr.ubuntu_desktop` role from v1.1.0 to v2.0.0 for Ubuntu 24.04 support and improved desktop environment configuration. Update `marvel-nccr.slurm` from v2.0.2 to v3.0.0 for modern SLURM compatibility. Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Co-authored-by: mankoNm <64478264+mankoNm@users.noreply.github.com>
Remove (almost) duplicate `aiida-conda-env.yml` task file and use the unified `conda-env-install.yml` for both simulation code environments and AiiDA environment. Rename `code_packages` variable to packages for generality. Move verdi TAB completion setup directly into playbook. Reduces code duplication and simplifies maintenance.
Comment out `--accelerate3d` setting which is incompatible with the vmsvga graphics controller in VirtualBox 7.2.6, causing "The graphics controller does not support the given feature" error. Also add 'never' tag to `aiida-examples` to prevent running this task unless explicitly requested. This seems to get stuck and will need more careful debugging.
Replace Vagrant-based CI with Docker-based testing due to nested virtualization not being supported on GitHub-hosted runners. Vagrant/VirtualBox requires nested virtualization which fails on both macOS and Ubuntu cloud VMs, making VM-based CI impossible. Docker containers provide a viable alternative that works on GitHub's infrastructure. Switch from macOS to Ubuntu runners (`ubuntu-latest` and `ubuntu-24.04-arm`) to enable multi-architecture testing on both `x86_64` and ARM64. Add docker-ci inventory host and `ci_skip` tags for Docker-incompatible tasks (GUI) or roles that are already tested elsewhere. Make the AiiDA daemon service conditional on platform to avoid `systemd` failures in containers. This enables CI that actually tests Ansible provisioning instead of just initialization, while validating architecture-specific package filtering works correctly on both platforms. Vagrant-based issues should be easily detected building locally.
Add retry logic to pseudopotential downloads to handle transient network failures. Both SSSP and PseudoDojo downloads will now retry up to 3 times if the download fails due to connection timeouts or temporary network issues.
Update the `build-vagrant.md` documentation to reflect the current build system and fix outdated or incorrect information. Split VM creation and Ansible provisioning into two explicit steps, clarify that `vagrant-vbguest` is optional troubleshooting tool, remove redundant commands now handled automatically by `tox`, and add a simply not on the time required.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #194