openexr
openexr copied to clipboard
Versions in master are confusing
At the moment, the latest release is 3.0.1.
But also at the moment, if you build from master -- which contains everything in 3.0.1, and maybe more -- it reports that it's 3.0.0. Which is doubly confusing: it's NOT 3.0.0, and also in a sense, feature-wise, it is AFTER the current release.
I'm not sure exactly what solution we should adopt, but it should be (a) numerically indicative of the version it will eventually become, and (b) have an explicit way to to tell it's a development branch and not a release. 3.0.99? 3.1.0-dev?
This is no emergency, just putting in this placeholder to remind us to choose a version reporting policy for master.
I thought we had talked about making that 3.0.9999 or something of the sort to indicate a devel / main build?
I thought we could set the OPENEXR_VERSION_EXTRA to "master" (or "dev") so the version would be 3.0.1-master, but I can't seem to get the OPENEXR)VERSION_EXTRA option to work at all, CMake complains:
CMake Error at CMakeLists.txt:24 (project): VERSION "3.0.1-master" format invalid.
And indeed the CMake docs say the version must be all unsigned int's and dots. What was the intention here, and has this ever worked? I do prefer 3.0.1-dev to the other alternatives, if that can be made to work.
The VERSION has to be numbers only.
OPENEXR_VERSION_EXTRA can be used to end up in the headers as some kind of identifier, but don't pass it to the cmake project()
function.
I took a stab at simplying the version-setting logic Imath: https://github.com/AcademySoftwareFoundation/Imath/pull/139. If that looks reasonable, we can replicate that here.
#1008 hopefully addresses this. Building off the master branch will generate "3.0.2-dev". Assuming this works as expected, the release process will be, just before a release:
- bump the version on the RB-3.X branch (with OPENEXR_VERSION_EXTRA cleared to the empty string)
- bump the version on the master branch to be one ahead of the RB-3.X branch (with OPENEXR_VERSION_EXTRA cleared to the empty string)