RELEASE INSTRUCTIONS

This document intends to be a work in progress, where developers can take notes on the release process. When preparing a release, authors are encouraged to follow the check list bellow, adding or removing details from this document as relevant.

RELEASE PROCESS

  1. Ensure your master branch is up to date with the GitHub website.

  2. Check your installed libgsl version. Namely, ensure the version installed in the system is the latest available, or at least, the last supported at the moment by Math::GSL.

    Nevertheless, it would be better to upgrade Math::GSL to support the latest libgsl version before a new release, unless it is a serious bug fix.

    The latest libgsl version can always be found at the GNU mirror: ftp://ftp.gnu.org/gnu/gsl/.

  3. Make a clean. Probably it is a good idea to first run perl Build.PL, updating any missing detail in the building process, and then run ./Build clean.

  4. Make sure everything works before any further step. Compile Build.PL with perl Build.PL, and check that the build system complains on missing c files for the libgsl wrapping. If not, check the previous step.

  5. Build the module, with ./Build. Check that everything compiles.

  6. Run the standard test suite with ./Build test.

  7. Bump the version in lib/Math/GSL.pm. Make sure to update the $VERSION variable, and the POD entry with the current version.

  8. Update the Changes file, adding the new version, and verify the change log. Hopefully ever feature commit will edit this file. Nevertheless try to think of anything that might be missing from the change log. Add the release date.

  9. Restart the build process:

    ./Build clean
    perl Build.PL
    ./Build
    ./Build test
  10. Check the distribution contents:

    ./Build distcheck

    If there is any relevant file missing, add it. Go to 9.

  11. Check if the tarball compiles and passes tests

    ./Build disttest   # tries to compile from scratch from the dist tarball
  12. Everything seems good? Create the release and upload it to CPAN.

    ./Build dist
    cpan-upload Math-GSL-x.xx.tar.gz
  13. Be sure to add and commit changed files.

  14. Add a release to GitHub with the tarball. This will also tag the current tree status.

  15. Organizational suggestion: close the milestone that refers to the current release and create the next one, if it does not still exist.