= Making Release = {{{ #!div class=important style="border: 2pt solid; text-align: center" 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'''.