Skip to content

Commit

Permalink
Merge pull request #715 from jjerphan/mamba-2
Browse files Browse the repository at this point in the history
Use mamba 2 for the base installation of Miniforge
  • Loading branch information
hmaarrfk authored Feb 5, 2025
2 parents 9469e39 + bdfd5da commit 899f88f
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 8 deletions.
12 changes: 6 additions & 6 deletions Miniforge3/construct.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% set version = os.environ.get("MINIFORGE_VERSION", "24.11.3-0") %}
{% set conda_libmamba_solver_version = "24.9.0"%}
# when mamba_version is updated here, also update MICROMAMBA_VERSION in scripts/build.sh
# As of Dec 2024 -- mamba 2.0.5 isn't compatible with constructor
# https://github.com/conda-forge/miniforge/issues/697
{% set mamba_version = "1.5.12" %}
{% set version = os.environ.get("MINIFORGE_VERSION", "25.1.1-0") %}
{% set conda_libmamba_solver_version = "25.1.1"%}
# When `mamba_version` is updated here, also update the value of:
# - `MICROMAMBA_VERSION` in `scripts/build.sh`
# - `MAMBA_VERSION` in `scripts/test.sh`
{% set mamba_version = "2.0.6" %}

name: Miniforge3
version: {{ version }}
Expand Down
4 changes: 2 additions & 2 deletions scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ echo "***** Install constructor *****"
mamba install --yes \
--channel conda-forge --override-channels \
jinja2 curl libarchive \
"constructor>=3.9.3"
"constructor>=3.11.1"

if [[ "$(uname)" == "Darwin" ]]; then
mamba install --yes \
Expand All @@ -38,7 +38,7 @@ cp LICENSE "${TEMP_DIR}/"
ls -al "${TEMP_DIR}"

if [[ "${TARGET_PLATFORM}" != win-* ]]; then
MICROMAMBA_VERSION=1.5.11
MICROMAMBA_VERSION=2.0.6
MICROMAMBA_BUILD=0
mkdir "${TEMP_DIR}/micromamba"
pushd "${TEMP_DIR}/micromamba"
Expand Down
63 changes: 63 additions & 0 deletions scripts/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ set -ex
echo "***** Start: Testing Miniforge installer *****"

export CONDA_PATH="${HOME}/miniforge"
export MAMBA_VERSION="${MAMBA_VERSION:-2.0.6}"

CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

Expand Down Expand Up @@ -72,6 +73,28 @@ EOF
conda list
fi

echo "+ Mamba does not warn (check that there is no warning on stderr) and returns exit code 0"
mamba --help 2> stderr.log || cat stderr.log
test ! -s stderr.log
rm -f stderr.log

echo "+ mamba info"
mamba info

echo "+ mamba config sources"
mamba config sources

echo "+ mamba config list"
mamba config list

echo "+ Testing mamba version (i.e. ${MAMBA_VERSION})"
mamba info --json | python -c "import sys, json; info = json.loads(sys.stdin.read()); assert info['mamba version'] == '${MAMBA_VERSION}', info"
echo " OK"

echo "+ Testing mamba channels"
mamba info --json | python -c "import sys, json; info = json.loads(sys.stdin.read()); assert any('conda-forge' in c for c in info['channels']), info"
echo " OK"

echo "***** Python path *****"
python -c "import sys; print(sys.executable)"
python -c "import sys; assert 'miniforge' in sys.executable"
Expand All @@ -84,3 +107,43 @@ python -c "import platform; print(platform.machine())"
python -c "import platform; print(platform.release())"

echo "***** Done: Testing installer *****"

echo "***** Testing the usage of mamba main commands *****"

echo "***** Initialize the current session for mamba *****"
eval "$(mamba shell hook --shell bash)"

echo "***** Create a new environment *****"
ENV_PREFIX="/tmp/testenv"

mamba create -p $ENV_PREFIX numpy --yes -vvv

echo "***** Activate the environment with mamba *****"
mamba activate $ENV_PREFIX

echo "***** Check that numpy is installed with mamba list *****"
mamba list | grep numpy

echo "***** Deactivate the environment *****"
mamba deactivate

echo "***** Activate the environment with conda *****"
conda activate $ENV_PREFIX

echo "***** Check that numpy is installed with python *****"
python -c "import numpy; print(numpy.__version__)"

echo "***** Remove numpy *****"
mamba remove numpy --yes

echo "***** Check that numpy is not installed with mamba list *****"
mamba list | grep -v numpy

echo "***** Deactivate the environment with conda *****"
conda deactivate

echo "***** Remove the environment *****"
mamba env remove -p $ENV_PREFIX --yes

echo "***** Done: Testing mamba main commands *****"

0 comments on commit 899f88f

Please sign in to comment.