Bug #1251
The current versioning scheme of RSC/RSB is inconsistent
Status: | Resolved | Start date: | 11/22/2012 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | Build System | |||
Target version: | rsb-0.9 |
Description
With the current git-based versioning scheme the following situation occurs:
- The master branch is updated after the release of a stable version to the next version, e.g. 0.8 right now.
- From then on this branch gets an incremented patch version with every new commit to have distinct versions.
- With the new release of the master, the version gets reset to 0.8.0 and suddenly we have conflicting versions.
This issue already results in the problem that once we release RSB 0.8, the debian packages will not be updated automatically anymore.
I had a quick discussion about this issue with David and a solution might be the following:- For released versions nothing changes from the current theme.
- For master, the patch version will not be affected by the git commits and remains at 0. Instead we have the following options to disambiguate master builds:
- For debian packages, set the build id after the main version as -bXXX (we already planned this and for release updated to -rXXX, so that from debian's point of view this is a more recent version)
- Include the commit hash in the package name and make it accessible at runtime. For including it in the package name we need to carefully think about how to do this so that after release really a new version is created.
This slightly complicates the release process of a new version because starting with the release a different versioning scheme needs to be switched on. Maybe the macros used to increment the patch version from git can be tweaked to only increment the version on release branches?
Related issues
Associated revisions
Implement new versioning scheme from git for rsb-java.
Patch versions are now only incremented on release branches.
refs #1251
Implement new versioning scheme from git for rsb-java.
Patch versions are now only incremented on release branches.
refs #1251
Implement proper version handling along the new ideas for python.
The project version is now defined through git describe. The patch
version is only incremented for release branches. The commit is defined
all the time. Caching as in all other languages is possible. Version
information is made accessible at runtime through a configured python
module.
refs #1251
Make the last commit available at runtime.
The commit ID is transported using the jar manifest.
refs #1251
Construct paths using os.path.join to work on windows.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Informal version bump to 0.9.
refs #1251
Bumped version 0.8 -> 0.9 in *.asd
- cl-rsb-common.asd (header): updated copyright
(version-minor): change 8 -> 9 - cl-rsb-formatting.asd: likewise
- cl-rsb-stats.asd: likewise
- cl-rsb-tools-call.asd: likewise
- cl-rsb-tools-info.asd: likewise
- cl-rsb-tools-logger.asd: likewise
- cl-rsb-tools-main.asd: likewise
- cl-rsb-tools-send.asd: likewise
Bumped version 0.8 -> 0.9 in rsb-yarp.asd
refs #1251
- rsb-yarp.asd (header): updated copyright
(version-minor): changed 8 -> 9
Bumped version 0.8 -> 0.9 in rsb-ros.asd
refs #1251
- rsb-ros.asd (header): updated copyright
(version-minor): changed 8 -> 9
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
Bumped version 0.8 -> 0.9 in *.asd
refs #1251
- cl-rsbag-common.asd (header): updated copyright
(version-minor): change 8 -> 9 - cl-rsbag-tools-cat.asd: likewise
- cl-rsbag-tools-info.asd: likewise
- cl-rsbag-tools-main.asd: likewise
- cl-rsbag-tools-merge.asd: likewise
- cl-rsbag-tools-play.asd: likewise
- cl-rsbag-tools-record.asd: likewise
Added support for rsb-event-0.8 serialization
refs #1251
- compat/0.8: new directory; contains data and code for rsb-event-0.8
serialization - src/transform/rsb-event-multi-version.lisp (header): updated
copyright
(toplevel): define rsb-event-0.8 serialization
Added test data files in test/data/0.9
refs #1251
- test/data/0.9/empty-channel.tide: new file; test data for the 0.9
serialization version - test/data/0.9/empty.tide: likewise
- test/data/0.9/no-type.tide: likewise
- test/data/0.9/single-event.tide: likewise
- test/data/0.9/unsupported-type.tide: likewise
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
More accurate "git describe" processing in CMakeLists.txt
refs #1251
Run git_based_version and git_version_components repeatedly when
required.
- CMakeLists.txt (git_version_components): turned into function
(git_based_version): likewise; describe version relative to specific
tag
(configure_lisp): turned into function
(configure_lisp_redirect): likewise
(execute_lisp): likewise
History
#1 Updated by J. Wienke over 11 years ago
- Description updated (diff)
#2 Updated by J. Wienke over 11 years ago
One issue remains with the above proposal: After branching off the release branch the first version there needs to be 0.8.1 to get the update. This doesn't happen automatically. So we need to modify the macros to e.g. add 1 to the revisions they found since the branch.
#3 Updated by J. Wienke over 11 years ago
We probably should skip version 0.8 after fixing this versioning issue to prevent manual interventions for existing debian installations.
#4 Updated by J. Wienke over 11 years ago
We decided against using patch version directly after release as it sounds weird and most packaging solutions have other means to disambiguate trunk vs. release versions.
#5 Updated by J. Wienke over 11 years ago
- Assignee set to J. Wienke
#6 Updated by J. Wienke over 11 years ago
- Status changed from New to In Progress
#7 Updated by J. Wienke over 11 years ago
All necessary changes to the automatic versioning have been made. We will wait with the version bump a few more days to see if everything really works as expected.
#8 Updated by J. Wienke over 11 years ago
Any objections to do this now?
#9 Updated by J. Moringen over 11 years ago
I don't care as long as I don't have to manage the next release.
#10 Updated by D. Klotz over 11 years ago
To do what excactly, now? I thought this was more or less implemented in all languages, what's left?
#11 Updated by J. Wienke over 11 years ago
Version bump.
#12 Updated by Anonymous over 11 years ago
go for it!
@Johannes: Can you master this release?
#13 Updated by J. Wienke over 11 years ago
It's actually easy. It just requires to change the version numbers. I will try to do it now.
#14 Updated by J. Wienke over 11 years ago
- Assignee changed from J. Wienke to J. Moringen
- % Done changed from 0 to 70
I have bumped the version for everything I knew of apart from the CL components because I did not know how to do it there.
What I did was:- rsb
- rsb-xml
- rsc
- rst
- gstreamer
- opencv tools
- redmine version
@Jan, please change the CL components accordingly
We should wait with closing the issue until all builds are back to normal on the jenkins.
#15 Updated by J. Wienke over 11 years ago
Everything apart from CL and known problems seems to compile again on jenkins.
#16 Updated by J. Moringen over 11 years ago
I believe the CL jobs have been broken by the Jenkins update. Probably because HTTP access to workspaces works differently now.
#17 Updated by J. Wienke over 11 years ago
API keys have changed. Can this explain the problems?
#18 Updated by J. Moringen over 11 years ago
No, but that discussion would be off-topic for this issue. I will take care of the build jobs later.
#19 Updated by J. Moringen about 11 years ago
- Status changed from In Progress to Resolved
- % Done changed from 70 to 100