From a4ede5de2f5f0dcc241b96f27f890eba25518a74 Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Sun, 21 Jan 2024 16:06:10 +0400 Subject: [PATCH] Fix Python version pin (#2085) --- images/docker-stacks-foundation/Dockerfile | 3 ++- tests/docker-stacks-foundation/test_python_version.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/images/docker-stacks-foundation/Dockerfile b/images/docker-stacks-foundation/Dockerfile index e267f5b929..bac0df7c36 100644 --- a/images/docker-stacks-foundation/Dockerfile +++ b/images/docker-stacks-foundation/Dockerfile @@ -117,7 +117,8 @@ RUN set -x && \ 'jupyter_core' && \ rm -rf /tmp/bin/ && \ # Pin major.minor version of python - mamba list python | grep '^python ' | tr -s ' ' | cut -d ' ' -f 1,2 >> "${CONDA_DIR}/conda-meta/pinned" && \ + # https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#preventing-packages-from-updating-pinning + mamba list --full-name 'python' | tail -1 | tr -s ' ' | cut -d ' ' -f 1,2 | sed 's/\.[^.]*$/.*/' >> "${CONDA_DIR}/conda-meta/pinned" && \ mamba clean --all -f -y && \ fix-permissions "${CONDA_DIR}" && \ fix-permissions "/home/${NB_USER}" diff --git a/tests/docker-stacks-foundation/test_python_version.py b/tests/docker-stacks-foundation/test_python_version.py index fe585b725b..810bcfc42d 100644 --- a/tests/docker-stacks-foundation/test_python_version.py +++ b/tests/docker-stacks-foundation/test_python_version.py @@ -22,3 +22,13 @@ def test_python_version(container: TrackedContainer) -> None: major_minor_version = full_version[: full_version.rfind(".")] assert major_minor_version == EXPECTED_PYTHON_VERSION + + +def test_python_pinned_version(container: TrackedContainer) -> None: + LOGGER.info(f"Checking that pinned python version is {EXPECTED_PYTHON_VERSION}.*") + logs = container.run_and_wait( + timeout=5, + tty=True, + command=["cat", "/opt/conda/conda-meta/pinned"], + ) + assert logs.startswith(f"python {EXPECTED_PYTHON_VERSION}.*")