Just came across this tweet about conda solver speed issues and liked the two linked articles. It made me wonder if we should give conda 4.6 a spin (with the new solver). Which made me wonder: what is our process for upgrading conda? I understand the technical steps involved in swapping out conda versions but I am not sure I know of all (or even most) social implications (mostly concerned with breaking repo builds that currently work).
Instructions on how to help out with this https://github.com/jupyter/repo2docker/issues/593#issuecomment-476543221
Another tweet with interesting links from bioconda https://twitter.com/bjoerngruening/status/1099764952506740738
Perhaps that's a reason to support repo2docker versions (#550). Then at least if people wanted an "old" behavior, we could maintain this in the case that conda broke something. I'd feel a lot better about upgrading core software (e.g. the OS, conda, etc) if people could easily maintain their environment if they wanted it to remain the same.
@minrk do you have an opinion on this or some knowledge what will happen if we upgrade the conda version?
I'd love to have "pick your repo2docker version" support before doing this, but also worried about blocking process.
I think updating conda itself should have a low probability of breaking user's repos as resolving environment specs to packages and such should not change between versions
There were some bugs in early 4.6 releases (#576), but I believe they've been fixed in 4.6.4 by https://github.com/conda/conda/pull/8253. Minor updates to conda certainly shouldn't result in any breakage for us, but as with any new release, there can be the introduction of bugs. I believe 4.6.x is stable enough that we should upgrade.
Instructions for someone who wants to get started on working on this:
To upgrade the version of conda that we use you need to edit the two lines referring to miniconda and conda version at the top of https://github.com/jupyter/repo2docker/blob/master/repo2docker/buildpacks/conda/install-miniconda.bash to the latest version in the 4.6.x series.
Then open a PR and see which of our tests start failing.
It's probably a good idea to run the freeze scripts at the same time, to make sure that nothing funk changes there with the conda upgrade.