-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Versioning reform #4706
Versioning reform #4706
Conversation
this commit updates how versioning is communicated across the codebase. the most important change is that SCVersion.txt now separates the 'patch' and 'tweak' version components in new CMake variables called SC_VERSION_[MAJOR,MINOR,PATCH,TWEAK]. 'patch' is always numeric, while 'tweak' is the optional component used for '-beta1', '-rc2'. the old variables are kept for backwards compatibility. we use these to set the VERSION in the CMake call to project(), which fixes #4648. however, this requires that we strip the 'tweak' component since only digits and periods are allowed in version strings. so, we replace references to PROJECT_VERSION with SC_VERSION where appropriate. this also allows us to be more precise with versioning in the class library. previously, we only had a method that would return the ".4-beta1" part of the version string, Main.scVersionPostfix. this commit deprecates that method and replaces it with Main.scVersionPatch and Main.scVersionTweak. now, we can also update Main.versionAtMost and Main.versionAtLeast to check the patch version as well. scsynth and supernova's `/version.reply` contents are kept the same for backwards compatibility. documentation added/updated for all affected methods. tests added for Main.versionAtMost/Least testing checklist: - try re-configuring cmake multiple times to confirm #4648 is fixed - check that outputs of Main.version, Main.scVersionFoo commands are unchanged - check that scsynth and supernova replies to /version are unchanged
ready for review. i've tested everything i listed above that's relevant to this PR, but there is probably more testing that could be done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good and all tests succeed
I also tested and can confirm that:
|
just want to note, i anticipate that this will some way or another break something in the future in a way we haven't thought of.. it's too much editing of the build system for Murphy's law not to apply 😆 . i'll hold myself responsible for fixing that when it comes up. |
Purpose and Motivation
this commit updates how versioning is communicated across the codebase.
the most important change is that SCVersion.txt now separates the
'patch' and 'tweak' version components in new CMake variables called
SC_VERSION_[MAJOR,MINOR,PATCH,TWEAK]. 'patch' is always numeric, while
'tweak' is the optional component used for '-beta1', '-rc2'. the old
variables are kept for backwards compatibility.
we use these to set the VERSION in the CMake call to project(), which
fixes #4648. however, this requires that we strip the 'tweak' component
since only digits and periods are allowed in version strings. so, we
replace references to PROJECT_VERSION with SC_VERSION where appropriate.
this also allows us to be more precise with versioning in the class
library. previously, we only had a method that would return the
".4-beta1" part of the version string, Main.scVersionPostfix. this
commit deprecates that method and replaces it with Main.scVersionPatch
and Main.scVersionTweak. now, we can also update Main.versionAtMost and
Main.versionAtLeast to check the patch version as well.
scsynth and supernova's
/version.reply
contents are kept the same forbackwards compatibility.
documentation added/updated for all affected methods.
testing checklist:
unchanged
i have tested the above points and found no issues.
Types of changes
To-do list