Project: datamanagement
Issue DM-75: Modify format of version numbers
The versions auto-generated by the new EUPS+buildbot look like this: {code} ========== $ eups list .... pipe_tasks 7.3.2.0_5_g455c355d0f+070b2c1b35 b61 pyfits 3.1.2+9ef17db9b7 b61 b60 python 0.0.1 b61 b60 scisql 0.3+2b5a2f1b52 b61 b60 scons 2.1.0+2b5a2f1b52 b61 b60 sconsUtils 6.2.0.0_11_gf38997df3e+759c3944a1 b61 sconsUtils 6.2.0.0_19_g755151c0a5+759c3944a1 b60 shapelet 7.3.1.0_1_g9331ee763c+0c72f294dd b61 shapelet 7.3.1.0_1_g9331ee763c+e56ee84a68 b60 skymap 7.3.1.0_1_g64b750c066+db36490146 b60 skymap 7.3.1.0_1_ga6cd540cd3+493a438aa2 b61 skypix 6.1.0.0_1_g1157bf09ae+65137c93cd b61 skypix 6.1.0.0_1_gea33592463+6039c04989 b60 .... ========== {code} where the part before the plus sign is the output of git describe (slightly mangled), and the part after is the SHA1 of the sorted names+sha1s of the dependencies. While this has the benefit that any two causally disconnected buildbots with the same inputs will build the same versions, many people have complained that they're plain ugly. So here's an alternative proposal: * If a tag exist on a commit, use as the version. * If there's no tag, use branchname-gSHA1ABBREV, where any illegal characters in branchname get turned into dots * If the package has dependencies, and a build of this package with different dependencies already exists, append a +N to the end. Keep the mapping of +N -> (dependency name, sha1s) in a special git repository. Given the source code and this git repo, two causally disconnected buildbots will again generate the same set of versions. Example versions: * 7.10.2.1 * 7.10.2.1+5 * master-gdeadbeef * feature.dm-1234-gdeadbeef * feature.dm-1234-gdeadbeef+3
Story points: 1