Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use mamba 2 for the base installation of Miniforge #715

Merged
merged 18 commits into from
Feb 5, 2025
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
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"
jjerphan marked this conversation as resolved.
Show resolved Hide resolved

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
jjerphan marked this conversation as resolved.
Show resolved Hide resolved
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 *****"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note for reviewers: are there other commands or behaviors one could test?


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 *****"

Loading