mjuric / conda-lsst

Building Conda packages for the LSST stack
4 stars 8 forks source link

Implement reasonable "release" versioning #21

Open mjuric opened 9 years ago

mjuric commented 9 years ago

Current LSST release versioning is implemented using EUPS tags. For example, to obtain the "10.1" release of the software, a user is advised to do:

eups distrib install -t v10_1 lsst_distrib

or

eups distrib install -t v10_1 afw

This is very useful, as it makes it easy to install well QA-ed releases of the software suite.

Conda has no concept of tags, so a different mechanism is needed to provide similar functionality. There are two options I can think of:

The pros of the former include almost perfect equivalence with EUPS tag functionality, and a mental model of a release branch (i.e., the releases/0.10.1 channel could be updated with further point releases). The major con is the requirement to specify a full URL as -c argument.

The pros of the latter include similarity to current conda practices and simplicity. The cons include having to remember to append -release to the package name, and either having to produce -release metapackages for all packages, (to enable something like conda install lsst-afw-release=0.10.1), or doing it just for the top-level packages and not providing that functionality.

mjuric commented 9 years ago

Q: Why not just use the version of (say) lsst_distrib? A.1: Because there's a new version out with every buildbot rebuild -- it tracks the master. I think LSST's internal versioning scheme would have to change to support something like this.