Skip to content

Interplay of conda-forge/broken channel and the channel ordering strict #731

Open
@betatim

Description

@betatim

This issue is the place to discuss the interplay between having the conda-forge/broken channel available in repo2docker and the future change of conda to use a strict channel policy.

I'd encourage everyone who wants to participate in this discussion to read:

  • [WIP] Version bump Conda from 4.6.14 to 4.7.5 #719 (comment)
  • https://gitter.im/jupyterhub/binder?at=5d149da64e13324f8b9ba06a
  • repo2docker produces container images from repositories under the assumption that the same repo + commit hash will always produce the same final image. While we can't prevent people from putting just a package name in their list of dependencies (this building at different moments in time results in different images) the behaviour we want to encourage and consider a feature is that if you pin your dependencies very precisely a repo that used to build will continue to build and will produce the same image

This is what motivates adding the broken channel as a "channel of last resort" so that specifying foobar=1.2.3 which yesterday was in conda-forge but today was marked as broken will still produce an image today, instead of failing. In particular when you build images from things like a Zenodo record associated to a publication or some other "frozen in time" state you want to be able to rebuild the image from that moment in time, even if you know that today you'd choose other versions. A key exercise in going from one approved setup (say the one you published or your regulator/auditor signed off on) to a new one is to show that the same code in both environments produces the same results or different results and that you understand why that happens.


If there are other links, snippets, etc that people should read before jumping in please post them and I (or someone else with the right permissions on the repo) will update this comment so that we don't have to go in circles when new people join/get pulled in.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions