Skip to content

VersionNumbers

dpocock edited this page Mar 21, 2012 · 3 revisions

Background

  • Source code:
  • Ganglia source code is maintained in git, which supports any arbitrary `tag' name, which is usually a version number, but the format of the tag name is not enforced or interpreted by git itself
  • Parts of Ganglia (e.g. web) are currently kept in separate git repositories (which have a different history of tags and version numbers that should be ignored)
  • Ganglia is compiled using the autotools framework, which supports a version number defined in configure.in (or configure.ac)
  • Packaging:
  • Ganglia is packaged on a number of platforms, each platform has different version number conventions:
  • RPM packages: RHEL/EPEL, Fedora, Centos, AIX
  • Deb packages: Debian, Ubuntu
  • SRV4 packages: Solaris OpenCSW
  • MSI packages: Windows
  • Some users build in-house packages using custom suffixes appended to the version number
  • Up to 3.1.7, each release also had a name (chosen from an aviation theme).

Objectives

  • Common version number conventions good for all packaging systems
  • Keep the release process simple
  • Provide flexibility for people to continue versioning their in-house builds

Detail

  • From past discussions on the subject, it has been agreed that:
  • each release candidate should have a version number in the format Major.Minor.Revision
  • after tagging, the release is not immediately advertised, it is made available in a `pre-release' download page.
  • It should be considered a release candidate for some period (maybe 7 days) while it is tested (e.g. test the tarball with rpmbuild, mgar)
  • after some testing, the same tarball is then moved to the official download page and advertised on the mailing lists
  • when it becomes official, the version number is not changed in any way, there is no new tag, etc (Ganglia does not build ganglia-3.1.7rc123.tar.gz, for example)
  • Git makes it easy to use tags, almost like bookmarks in the web browser
  • It has been proposed that developers can tag something that they intend to release, for example, the 3.3.3dp1 tag
  • Such tags are not intended for building supported binary packages
  • People can build binary packages and install them, but may have to force remove them before installing a later release
  • However, these tags can be used to give the community an opportunity to sanity check the tarball, which is quite useful when autotools stuff is changed

Useful links