Deleted old builds?
Closed this issue · 5 comments
When I try to install one of my environment.yml
files I get
Error: Package missing in current linux-64 channels:
- openblas 0.2.18 1
The reason seems to be that this build was removed from https://anaconda.org/conda-forge/openblas/files
This already happened with gdal a while ago conda-forge/gdal-feedstock#78
Is this common practice with conda-forge builds? I'd just like to know because this makes them essentially useless for making environment.yml
files.
As a scientist I am 100% with you on pining things down to the build number to ensure reproducible envs. As a packager that is bad practice, specially b/c there is no guarantee that the build number did not change (see the hotfix discussion conda-forge/conda-forge.github.io#170).
To answer you question:
Is this common practice with conda-forge builds?
Sadly yes need b/c we to get rid of bad builds to circumvent a conda bug that installs a lower build number even when a higher one is present.
I'd just like to know because this makes them essentially useless for making
environment.yml
files.
It makes it hard to pin down to the build number, but you can still have environment.yml
and, in theory, you would get the latest (and corrected) build number.
PS: I am not a maintainer here and I don't know the all the reasons for the deleted build number. (I believe it was the libgcc
dependency on Linux causing trouble down the road.) So I will wait for a maintainer to clarify the reason and close the issue. However, let me know if your ideas about reproducible envs as I am an advocate to keep the bad builds even when we know they are a fatal error. (We just need to fix conda first 😄 to avoid breaking everything though.)
Thanks. Ok this means that conda needs to be improved to really enable reproducible builds.
This is probably the wrong thread but recently I noticed a few things that make it hard to work with conda in this context:
- Different conda versions have different package resolution strategies. Because of this it can happen that an
environment.yml
file stops working with a newer conda version. This would be no big problem except for: - It seems that older conda versions can not be used after approx. 1 year since the package format is still changing. See e.g. conda/conda#1642 . But this might only apply to new packages. So the conda version should also be fixed in an
environment.yml
if 'old' conda versions can work with 'old' packages. - Conda does not allow (without manual editing) to create an environment.yml without build numbers AFAIK. This could be an option to get the right version at least.
Probably an issue with these points in the conda repository would make sense.
This is probably the wrong thread but recently I noticed a few things that make it hard to work with conda in this context
It is 😄
But I would like to discuss that more with you as I am also interested in that problem. Please let's open a new issue and discuss it there.
I agree with your concern @cpaulik about deleting old packages. Hence I raised this issue ( conda-forge/conda-forge.github.io#181 ).
Though @ocefpaf is of course correct that we have discussed hot-fixing packages. The intent with the latter is more about fixing pinnings to ensure reproducibility of a working environment. However, there is always a possibility that something like that goes wrong. In any event, it seems too controversial ATM for hot-fixing to go anywhere yet.