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
Ensure your
master
branch is up to date with the GitHub website.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 byMath::GSL
.Nevertheless, it would be better to upgrade
Math::GSL
to support the latestlibgsl
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/.Make a
clean
. Probably it is a good idea to first runperl Build.PL
, updating any missing detail in the building process, and then run./Build clean
.Make sure everything works before any further step. Compile Build.PL with
perl Build.PL
, and check that the build system complains on missingc
files for thelibgsl
wrapping. If not, check the previous step.Build the module, with
./Build
. Check that everything compiles.Run the standard test suite with
./Build test
.Bump the version in
lib/Math/GSL.pm
. Make sure to update the$VERSION
variable, and the POD entry with the current version.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.Restart the build process:
./Build clean perl Build.PL ./Build ./Build test
Check the distribution contents:
./Build distcheck
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.