-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Cleanup versioning strategy #989
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
Conversation
Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release.
Failures are due to us overusing resources. I guess I'll wait?
|
082e37f
to
f300478
Compare
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.
I wish we could write a little textfile off to the side containing nothing but the VERSION=x.y.z and maybe SOVERSION=n, and have all the builders pick that up in their own way.
Surely that's possible.
I do see this as an improvement in the meantime.
((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ | ||
(JSONCPP_VERSION_PATCH << 8)) | ||
|
||
#ifdef JSONCPP_USING_SECURE_MEMORY |
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.
What's this stuff about JSONCPP_USING_SECURE_MEMORY
?
It has nothing to do with version.
Actually JSONCPP_VERSION_HEXA and JSONCPP_VERSION_STRING are derivatives and should be elsewhere. I would like it if version.h were just the number tuple and that's about it.
# 2. /include/json/version.h | ||
# 3. /CMakeLists.txt | ||
# IMPORTANT: also update the SOVERSION!! | ||
VERSION 1.9.2 # <major>[.<minor>[.<patch>[.<tweak>]]] |
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.
CMake's file command can read a variable from a file.
file (STRINGS "version.txt" JSONCPP_VERSION)
file (STRINGS "soversion.txt" JSONCPP_SOVERSION)
I don't know how to do it in meson.
I guess a worst-case would be invoking cat.
r = run_command('cat','version.txt')
JSONCPP_VERSION=r.stdout()
r = run_command('cat','soversion.txt')
JSONCPP_SOVERSION=r.stdout()
I don't know meson. It feels like we should be able to do this though!
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.
I'll spend some time this week looking into that, I definitely agree with you.
* Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
* Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
* Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
…-source-parsers#997) * Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
* Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
…-source-parsers#997) * Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
* Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
…-source-parsers#997) * Cleanup versioning strategy Currently, versioning is a mess. CMake and Meson have seperate build version number storage locations, with no way of knowing you need to have both. Plus, due to recent revisions the amalgamate script is broken unless you build first, and may still be broken afterwards. This PR fixes some issues with versioning, and adds comments clarifying what has to be done when doing a release. * Run clang format * Update SOVERSION....
Currently, versioning is a mess. CMake and Meson have seperate build
version number storage locations, with no way of knowing you need to
have both. Plus, due to recent revisions the amalgamate script is broken
unless you build first, and may still be broken afterwards.
This PR fixes some issues with versioning, and adds comments clarifying
what has to be done when doing a release.
#988