conda / conda

A system-level, binary package and environment manager running on all major operating systems and platforms.
https://docs.conda.io/projects/conda/
Other
6.36k stars 1.65k forks source link

Option to auto-increment build number based on cached packages #696

Closed ijstokes closed 10 years ago

ijstokes commented 10 years ago

As a specific feature related to the more general issue brought up in #485, it would be great if the meta.yaml file allowed me to specify build: auto that would default to 0, but if an existing package in the local conda package build directory already exists with all parts of the package name identical except for the build number, to auto-increment to the next build number.

asmeurer commented 10 years ago

I take it you really mean number: auto

asmeurer commented 10 years ago

My worry here is that this will lead to the proliferation of more builds than necessary, which given that conda currently has some issues handling these, could be a problem.

ijstokes commented 10 years ago

I hear what you're saying, but the alternatives right now seem to me to be worse:

i) re-creating new packages with the build number always set the same (probably 0) and just overwriting things in binstar. This destroys consistency and reproducibility.

ii) making it a PITA to remember to update the build number when nothing else has changed.

And while there may be a proliferation of build numbers in theory, my guess is that users will only "keep" certain ones, and upload those to binstar.

bkreider commented 10 years ago

+1

I think the side-effects are things that need to be fixed in the other components. Binstar should have a feature like Jenkins (keep the last X builds).

Build number is really hard to manage by users unless they are using a full fledged build system that tracks builds for them. And when they do that, they need to use the non-userfriendly jinja templating. I say it's not userfriendly, because everyone who looks at the meta.yaml will be taking on the cognitive load of understanding the templates tags, so one person can pass in variables.

This is why I was pushing for the ability to override from the command-line. Extra command line switches would only impose a load on the advanced user, but templating requires every user to understand the feature.

asmeurer commented 10 years ago

I know how to fix conda to work better with more builds. Once I fix https://github.com/conda/conda/pull/704 we can implement this.

asmeurer commented 10 years ago

By the way, in the future, please open conda-build issues in the conda-build tracker. https://github.com/conda/conda-build/issues/102

github-actions[bot] commented 2 years ago

Hi there, thank you for your contribution to Conda!

This issue has been automatically locked since it has not had recent activity after it was closed.

Please open a new issue if needed.