diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f6b5e19..81786a3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,7 +18,7 @@ defaults: jobs: test: - name: ${{ matrix.os }}, 🐍=${{ matrix.python-version }}, 🟠=${{ matrix.ambertools }}, 👁️=${{ matrix.openeye }}, 🐉=${{ matrix.mamba-executable }} + name: ${{ matrix.os }}, 🐍=${{ matrix.python-version }}, 🟠=${{ matrix.ambertools }}, 👁️=${{ matrix.openeye }}, 🐉=${{ matrix.mamba-executable }}@${{ matrix.micromamba-version }} runs-on: ${{ matrix.os }} strategy: matrix: @@ -27,6 +27,11 @@ jobs: ambertools: [false, true] openeye: [false, true] mamba-executable: ["micromamba"] # TODO: Add "mamba" back + # TEMPORARY, for #156: pin both the pre- and post-4202 micromamba + # releases to confirm the packages-key fix covers both `list --json` + # formats. Revert this axis (and the micromamba-version input below) + # before merging. + micromamba-version: ["2.8.1-0", "2.9.0-0"] exclude: - python-version: "3.14" ambertools: true @@ -47,6 +52,7 @@ jobs: uses: mamba-org/setup-micromamba@v3 with: environment-file: devtools/conda-envs/test_env.yaml + micromamba-version: ${{ matrix.micromamba-version }} create-args: >- python=${{ matrix.python-version }} diff --git a/openff/utilities/provenance.py b/openff/utilities/provenance.py index 758e0c2..d5423a6 100644 --- a/openff/utilities/provenance.py +++ b/openff/utilities/provenance.py @@ -30,6 +30,12 @@ def _get_conda_list_package_versions() -> dict[str, str]: output = json.loads(subprocess.check_output(conda_command.split()).decode()) + # micromamba >= 2.9.0 nests the package list under a "packages" key instead + # of returning it as the top-level array (mamba-org/mamba#4202, issue #156). + # conda, mamba, pixi, and micromamba < 2.9.0 all return the bare array. + if isinstance(output, dict): + output = output.get("packages", []) + package_versions = {} for _package in output: package_versions[_package["name"]] = _package["version"]