COIN-OR::LEMON - Graph Library

Version 12 (modified by Alpar Juttner, 16 years ago) (diff)

Update version handling

Release numbering

1.x
Feature release.
1.0.x
Bugfix release.

Feature Releases

  • Update the CMake build environment.
    • Test it (using CMake v2.6)
      • both Visual Studio 2005 and 2007
        • both from the IDE and using nmake
        • test creating an installer.
      • with linux (using gcc-4.x)
  • Check the repository thoroughly
    • Be sure there is no a globally installed version of lemon on the computer where the tests are made
    • Run make distcheck
    • Do make check
      • using gcc version 3.3, 3.4, 4.0, 4.1, 4.2, 4.3. No warning is allowed with these version
      • using icc 10.1
      • Both on 32 bit and 64 bit architectures.
      • on Cygwin
      • on OSX
  • Tag the tip with 1.0-base.
    • Alternatively, should we call it 1.0-parent? (c.f. Mercurial Queue)
    • Do we really need this tag???
  • Create a named branch for each new feature release. The name is just the release number like 1.0.
  • Then comes some commits (out of the default branch) preparing the repository for the release.
    • Remove all unfinished stuff (e.g. from the documentation)
  • Do a complete reconfiguration with given version like this:
    LEMON_VERSION=1.0 autoreconf -vif
    ./configure --enable-demo
    
  • Run make update-external-tags to get doxygen reference to STL.
  • Run make distcheck
    • This does a very last check and creates the tarball.
  • Create the Windows installer.
  • Tag the released version with lemon-x.y.

Bugfix Changesets

  • Do the bugfix on the top of the common ancestor changeset of all branches where the bug appears. This changeset can be found with the debuganchestor command like this.
    hg debugancestor default 1.0
    
  • Then merge them individually to all branches where it applies.
    • Important: Update to the branch head first, then merge to the bugfix changeset, otherwise the the merge commit will not belong to the branch.
      hg up -C 1.0
      hg merge -r 1234
      hg ci -m 'Merge to 1.0'
      

Bugfix Releases

  • A bugfix release is situated in the same branch as its mother feature release.
  • Check the repository thoroughly
    • Like in case of a feature release
  • Adjust the release number in configure.ac
    • Don't forget to commit this change.
  • Create the tarball and the Windows installer.
  • Tag the released version with lemon-x.y.z.