allow installing 'broken' packages for frozen env
If a package we froze is later marked as broken, don't prevent installation.
Broken packages are lowest priority, so only allowed for those pinned in our frozen env
MODIFY
repo2docker/buildpacks/conda/environment.frozen.yml
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

MODIFY
repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml
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

MODIFY
repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml
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

MODIFY
repo2docker/buildpacks/conda/freeze.py
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)

allow installing 'broken' packages for frozen env

If a package we froze is later marked as broken, don't prevent installation.

Broken packages are lowest priority, so only allowed for those pinned in our frozen env