diff --git a/repo2docker/buildpacks/conda/environment.frozen.yml b/repo2docker/buildpacks/conda/environment.frozen.yml index 5632e40c..338909e5 100644 --- a/repo2docker/buildpacks/conda/environment.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.frozen.yml @@ -4,6 +4,7 @@ name: r2d channels: - conda-forge - defaults +- conda-forge/label/broken dependencies: - bleach=2.0.0=py36_0 - ca-certificates=2017.11.5=0 diff --git a/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml b/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml index b804f154..2476eeb5 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml @@ -4,6 +4,7 @@ name: r2d channels: - conda-forge - defaults +- conda-forge/label/broken dependencies: - bleach=2.0.0=py35_0 - ca-certificates=2017.11.5=0 diff --git a/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml b/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml index 5632e40c..338909e5 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml @@ -4,6 +4,7 @@ name: r2d channels: - conda-forge - defaults +- conda-forge/label/broken dependencies: - bleach=2.0.0=py36_0 - ca-certificates=2017.11.5=0 diff --git a/repo2docker/buildpacks/conda/freeze.py b/repo2docker/buildpacks/conda/freeze.py index 6302120e..ab7cebbc 100644 --- a/repo2docker/buildpacks/conda/freeze.py +++ b/repo2docker/buildpacks/conda/freeze.py @@ -82,6 +82,9 @@ def freeze(env_file, frozen_file): 'conda config --add channels conda-forge', 'conda config --system --set auto_update_conda false', f"conda env create -v -f /r2d/{env_file} -n r2d", + # add conda-forge broken channel as lowest priority in case + # any of our frozen packages are marked as broken after freezing + 'conda config --append channels conda-forge/label/broken', f"conda env export -n r2d >> /r2d/{frozen_file}", ]) ]) @@ -117,5 +120,6 @@ if __name__ == '__main__': set_python(env_file, py) frozen_file = os.path.splitext(env_file)[0] + '.frozen.yml' freeze(env_file, frozen_file) + # use last version as default shutil.copy(frozen_file, FROZEN_FILE)