From 597f529ef6c80d5ee3bbf040214aea2f23adba40 Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 8 Feb 2019 11:24:35 +0100 Subject: [PATCH 1/7] pin conda during Python-switch step even with auto-update-conda disabled, switching Python version (which reinstalls conda) can end up upgrading to the latest conda Avoid this by adding the conda pinning to that install stage --- repo2docker/buildpacks/conda/install-miniconda.bash | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/repo2docker/buildpacks/conda/install-miniconda.bash b/repo2docker/buildpacks/conda/install-miniconda.bash index c8b88d6b..55fc1911 100755 --- a/repo2docker/buildpacks/conda/install-miniconda.bash +++ b/repo2docker/buildpacks/conda/install-miniconda.bash @@ -4,7 +4,7 @@ set -ex cd $(dirname $0) MINICONDA_VERSION=4.5.11 -CONDA_VERSION=4.5.11 +CONDA_VERSION=4.5.12 URL="https://repo.continuum.io/miniconda/Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh" INSTALLER_PATH=/tmp/miniconda-installer.sh @@ -38,7 +38,7 @@ conda install -yq conda==${CONDA_VERSION} # prevent pip installation. # we wouldn't have this issue if we did `conda env create` # instead of `conda env update` in these cases -conda install -y $(cat /tmp/environment.yml | grep -o '\spython=.*') +conda install -y $(cat /tmp/environment.yml | grep -o '\spython=.*') conda==${CONDA_VERSION} # bug in conda 4.3.>15 prevents --set update_dependencies echo 'update_dependencies: false' >> ${CONDA_DIR}/.condarc @@ -70,3 +70,5 @@ conda clean -tipsy rm ${INSTALLER_PATH} chown -R $NB_USER:$NB_USER ${CONDA_DIR} + +conda list From 33ae3b00ade1752eb0fb97dc3060518d204f7325 Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 8 Feb 2019 11:26:44 +0100 Subject: [PATCH 2/7] There's a miniconda release for 4.5.12 --- repo2docker/buildpacks/conda/install-miniconda.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repo2docker/buildpacks/conda/install-miniconda.bash b/repo2docker/buildpacks/conda/install-miniconda.bash index 55fc1911..bf2016fe 100755 --- a/repo2docker/buildpacks/conda/install-miniconda.bash +++ b/repo2docker/buildpacks/conda/install-miniconda.bash @@ -3,7 +3,7 @@ set -ex cd $(dirname $0) -MINICONDA_VERSION=4.5.11 +MINICONDA_VERSION=4.5.12 CONDA_VERSION=4.5.12 URL="https://repo.continuum.io/miniconda/Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh" INSTALLER_PATH=/tmp/miniconda-installer.sh @@ -13,7 +13,7 @@ chmod +x ${INSTALLER_PATH} # Only MD5 checksums are available for miniconda # Can be obtained from https://repo.continuum.io/miniconda/ -MD5SUM="e1045ee415162f944b6aebfe560b8fee" +MD5SUM="866ae9dff53ad0874e1d1a60b1ad1ef8" if ! echo "${MD5SUM} ${INSTALLER_PATH}" | md5sum --quiet -c -; then echo "md5sum mismatch for ${INSTALLER_PATH}, exiting!" From 6e91681def7a11bb1efab73e92e886d9282f7d0d Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 8 Feb 2019 12:07:31 +0100 Subject: [PATCH 3/7] empty conda history instead of deleting it conda uses the presence of this file as a magic indicator of conda envs so make it empty, not gone --- repo2docker/buildpacks/conda/install-miniconda.bash | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/repo2docker/buildpacks/conda/install-miniconda.bash b/repo2docker/buildpacks/conda/install-miniconda.bash index bf2016fe..c448a2b2 100755 --- a/repo2docker/buildpacks/conda/install-miniconda.bash +++ b/repo2docker/buildpacks/conda/install-miniconda.bash @@ -57,12 +57,14 @@ if [[ -f /tmp/kernel-environment.yml ]]; then conda env create -n kernel -f /tmp/kernel-environment.yml ${CONDA_DIR}/envs/kernel/bin/ipython kernel install --prefix "${CONDA_DIR}" - rm -f ${CONDA_DIR}/envs/kernel/conda-meta/history + echo '' > ${CONDA_DIR}/envs/kernel/conda-meta/history fi -# remove conda history file, +# empty conda history file, # which seems to result in some effective pinning of packages in the initial env, -# which we don't intend -rm -f ${CONDA_DIR}/conda-meta/history +# which we don't intend. +# this file must not be *removed*, however +echo '' > ${CONDA_DIR}/envs/kernel/conda-meta/history + # Clean things out! conda clean -tipsy From 7ade437de4b9e6bf185d62d611e5b723e17d1063 Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 8 Feb 2019 12:46:47 +0100 Subject: [PATCH 4/7] add a verification that conda version is correct this isn't linked to the version in the file, so will need to be updated in sync --- tests/conda/binder-dir/verify | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/conda/binder-dir/verify b/tests/conda/binder-dir/verify index 836a6b19..eeb2bb95 100755 --- a/tests/conda/binder-dir/verify +++ b/tests/conda/binder-dir/verify @@ -4,3 +4,5 @@ import sys assert sys.version_info[:2] == (3, 5), sys.version import numpy +import conda +assert conda.__version__ == '4.5.12', conda.__version__ From 224968c5887d402a9edfad26d8e37c4b5d468513 Mon Sep 17 00:00:00 2001 From: Tim Head Date: Sun, 10 Feb 2019 09:53:49 +0100 Subject: [PATCH 5/7] Fix path to conda history --- repo2docker/buildpacks/conda/install-miniconda.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo2docker/buildpacks/conda/install-miniconda.bash b/repo2docker/buildpacks/conda/install-miniconda.bash index c448a2b2..3e2246f7 100755 --- a/repo2docker/buildpacks/conda/install-miniconda.bash +++ b/repo2docker/buildpacks/conda/install-miniconda.bash @@ -63,7 +63,7 @@ fi # which seems to result in some effective pinning of packages in the initial env, # which we don't intend. # this file must not be *removed*, however -echo '' > ${CONDA_DIR}/envs/kernel/conda-meta/history +echo '' > ${CONDA_DIR}/conda-meta/history # Clean things out! conda clean -tipsy From da0eb5826c3c136f4c0754d4b1e946b4fd84942a Mon Sep 17 00:00:00 2001 From: Tim Head Date: Sun, 10 Feb 2019 10:40:38 +0100 Subject: [PATCH 6/7] Undo conda update --- repo2docker/buildpacks/conda/install-miniconda.bash | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/repo2docker/buildpacks/conda/install-miniconda.bash b/repo2docker/buildpacks/conda/install-miniconda.bash index 3e2246f7..ada8e0b3 100755 --- a/repo2docker/buildpacks/conda/install-miniconda.bash +++ b/repo2docker/buildpacks/conda/install-miniconda.bash @@ -3,8 +3,8 @@ set -ex cd $(dirname $0) -MINICONDA_VERSION=4.5.12 -CONDA_VERSION=4.5.12 +MINICONDA_VERSION=4.5.11 +CONDA_VERSION=4.5.11 URL="https://repo.continuum.io/miniconda/Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh" INSTALLER_PATH=/tmp/miniconda-installer.sh @@ -13,7 +13,7 @@ chmod +x ${INSTALLER_PATH} # Only MD5 checksums are available for miniconda # Can be obtained from https://repo.continuum.io/miniconda/ -MD5SUM="866ae9dff53ad0874e1d1a60b1ad1ef8" +MD5SUM="e1045ee415162f944b6aebfe560b8fee" if ! echo "${MD5SUM} ${INSTALLER_PATH}" | md5sum --quiet -c -; then echo "md5sum mismatch for ${INSTALLER_PATH}, exiting!" From 89027c68c7f097d737b5468609373322f2096420 Mon Sep 17 00:00:00 2001 From: Tim Head Date: Sun, 10 Feb 2019 11:01:05 +0100 Subject: [PATCH 7/7] Update checked conda version --- tests/conda/binder-dir/verify | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conda/binder-dir/verify b/tests/conda/binder-dir/verify index eeb2bb95..002b5b94 100755 --- a/tests/conda/binder-dir/verify +++ b/tests/conda/binder-dir/verify @@ -5,4 +5,4 @@ assert sys.version_info[:2] == (3, 5), sys.version import numpy import conda -assert conda.__version__ == '4.5.12', conda.__version__ +assert conda.__version__ == '4.5.11', conda.__version__