COIN-OR::LEMON - Graph Library

Making Release

This guide is partly outdated.

Release numbering

1.x
Feature release.
1.x.y
Bugfix release.

Feature Releases

  • Update the CMake build environment.
    • Test it (using CMake v2.6)
      • with both Visual Studio .NET 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 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 versions,
      • using icc 10.1,
      • both on 32 bit and 64 bit architectures,
      • on Cygwin,
      • on OSX.
  • 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.
  • Update the AUTHORS and the NEWS files in the default branch, then merge these changesets into the release branch.
    • 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 x.y with rx.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 x.y.z with rx.y.z.
Last modified 6 years ago Last modified on 02/25/12 07:25:23