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.
masterbranch is up to date with the GitHub website.
Check your installed
libgslversion. Namely, ensure the version installed in the system is the latest available, or at least, the last supported at the moment by
Nevertheless, it would be better to upgrade
Math::GSLto support the latest
libgslversion before a new release, unless it is a serious bug fix.
libgslversion can always be found at the GNU mirror: ftp://ftp.gnu.org/gnu/gsl/.
clean. Probably it is a good idea to first run
perl Build.PL, updating any missing detail in the building process, and then run
Make sure everything works before any further step. Compile Build.PL with
perl Build.PL, and check that the build system complains on missing
cfiles for the
libgslwrapping. If not, check the previous step.
Build the module, with
./Build. Check that everything compiles.
Run the standard test suite with
Bump the version in
lib/Math/GSL.pm. Make sure to update the
$VERSIONvariable, and the POD entry with the current version.
Changesfile, 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.
Restart the build process:
./Build clean perl Build.PL ./Build ./Build test
Check the distribution contents:
If there is any relevant file missing, add it. Go to 9.
Check if the tarball compiles and passes tests
./Build disttest # tries to compile from scratch from the dist tarball
Everything seems good? Create the release and upload it to CPAN.
./Build dist cpan-upload Math-GSL-x.xx.tar.gz
Be sure to add and commit changed files.
Add a release to GitHub with the tarball. This will also tag the current tree status.
Organizational suggestion: close the milestone that refers to the current release and create the next one, if it does not still exist.