Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: lsst_versions, utils
-
Labels:None
-
Story Points:10
-
Team:Architecture
-
Urgent?:No
Description
Now that we are developing pip installable python packages (daf_butler, utils, sphgeom) and also supporting cmake (DM-23308), determining the version number to be consistent with the version calculated by EUPS with pkgautoversion is difficult.
To distribute a package on PyPI we need a version number that is compatible with Python version standards (PEP-440) and pkgautoversion does not do that. Russ Allbery has proposed that we use a combination of the formal release and the weekly.
For example in daf_butler at the moment we have:
6f853fa8 - (HEAD -> master, tag: w.2021.44)
|
Since we have created a tag v23.0.0.rc1 on w.2021.40 this commit is going to be part of v24. The suggestion is that we should call it 24.0.0a2021.44 – an alpha release for v24. EUPS calls this version 22.0.1-87-g6f853fa8 and it will continue to use 22.0.1 as the basis for it until 23.0.0 is released (but if 23.0.0 ends up being on a branch it won't ever pick it up).
If it is assumed that there is always either a v23.0.0.rcx tag, a v23.0.x branch, or a 23.0.0 tag (if no backports were done) then it seems plausible for code to work out these alpha releases. It does though require that we don't suddenly change the release to be based on a new weekly since that would suddenly lead to the 24.0.0a.2021.44 becoming 23.0.0rc1.
We can't use setuptools_scm directly because the tag scheme does not work. The proposal is to add some code to the utils package (noting that this might lead to base having to depend on utils if cmake is used for it) that cmake scripts can execute and which setup.py can use to determine a version. If it's in python we can't have it in lsst/utils/ since utils would not be able to import it without version.py existing (but we could make utils init.py clever enough that it works the version out itself if the version.py is not present). Should it be a shell script? Do we care that the version from pkgautoversion is going to be different?
Attachments
Issue Links
- mentioned in
-
Page Loading...
Kian-Tat Lim after a lot of struggling I seem to have something that works.
The commits will need some squashing because there has been a lot of fiddling with actions and setup.py to get things working.