Bug #1251

The current versioning scheme of RSC/RSB is inconsistent

Added by J. Wienke over 11 years ago. Updated about 11 years ago.

Status:ResolvedStart date:11/22/2012
Priority:NormalDue 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

Blocked by Robotics Systems Commons - Enhancement #1256: Adapt GitProjectVersion cmake macro to not increase patch... Resolved 11/22/2012
Blocks Robotics Systems Types - Bug #1311: debian packages out-dated Resolved 12/19/2012
Blocks Robotics Service Bus - Bug #1445: Non-existent Debian package is mentioned in RSB installat... Resolved 02/28/2013

Associated revisions

Revision d3b23c3b
Added by J. Wienke over 11 years ago

Implement new versioning scheme from git for rsb-java.

Patch versions are now only incremented on release branches.

refs #1251

Revision 90796fd8
Added by J. Wienke over 11 years ago

Implement new versioning scheme from git for rsb-java.

Patch versions are now only incremented on release branches.

refs #1251

Revision 50dcea48
Added by J. Wienke over 11 years ago

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

Revision 7a146170
Added by J. Wienke over 11 years ago

Make the last commit available at runtime.

The commit ID is transported using the jar manifest.

refs #1251

Revision 2b7b64c7
Added by J. Wienke over 11 years ago

Construct paths using os.path.join to work on windows.

refs #1251

Revision 0e582fc4
Added by D. Klotz over 11 years ago

Merge branch 'wip-maven', updating the Maven build, e.g. to also
implement the correct versioning scheme.

refs #1251
refs #1252

Revision 0189b790
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision a1f2f9d3
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision d22e74fb
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision c842190c
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 08b7c05d
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 4c974dce
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 60bdf798
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 850701fd
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 04f6997b
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 5f4339b6
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 4b40bc4f
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 2f6130b7
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 67808c9e
Added by J. Wienke over 11 years ago

Informal version bump to 0.9.

refs #1251

Revision 72f7b9a3
Added by J. Moringen about 11 years ago

Bumped version 0.8 -> 0.9 in *.asd

refs #1251, fixes #1445

  • 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

Revision 9fdeb3c7
Added by J. Moringen about 11 years ago

Bumped version 0.8 -> 0.9 in cl-rsb.asd

refs #1251

  • cl-rsb.asd (version-minor): changed 8 -> 9

Revision 10220c24
Added by J. Moringen about 11 years ago

Bumped version 0.8 -> 0.9 in cl-rsbag.asd

refs #1251

  • cl-rsbag.asd (version-minor): changed 8 -> 9

Revision d10dc1e4
Added by J. Moringen about 11 years ago

Bumped version 0.8 -> 0.9 in rsb-yarp.asd

refs #1251

  • rsb-yarp.asd (header): updated copyright
    (version-minor): changed 8 -> 9

Revision 48ccee1d
Added by J. Moringen about 11 years ago

Bumped version 0.8 -> 0.9 in rsb-ros.asd

refs #1251

  • rsb-ros.asd (header): updated copyright
    (version-minor): changed 8 -> 9

Revision d5ed8440
Added by J. Moringen about 11 years ago

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

Revision 5e626cd1
Added by J. Moringen about 11 years ago

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

Revision 073eb041
Added by J. Moringen about 11 years ago

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

Revision 0c3da85b
Added by J. Moringen about 11 years ago

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

Revision 4ec4246e
Added by J. Moringen about 11 years ago

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

Revision 3c2b8707
Added by J. Moringen about 11 years ago

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

Revision 5a28aeec
Added by J. Moringen about 11 years ago

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

Revision 44971c11
Added by J. Moringen about 11 years ago

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

Revision ace7e09f
Added by J. Moringen about 11 years ago

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

Revision 4338294c
Added by J. Moringen about 11 years ago

Bumped version 0.8 -> 0.9 in *.asd

refs #1251

  • rsb-xml.asd (version-minor): change 8 -> 9

Revision 08dc3f46
Added by J. Moringen about 11 years ago

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

Also available in: Atom PDF