NQP's development release cycle is intimately tied to Rakudo's release cycle. There is no separate, independent release cycle for NQP.
Parrot is scheduled to release the third Tuesday of each month; Rakudo will generally issue its own development release soon after the scheduled Parrot release (usually within a few days). To accomplish this, NQP must be tagged for release immediately prior to the Rakudo release.
Note: This step has changed starting in 2012.07.
Check to see if tools/build/PARROT_REVISION needs to be bumped to a later Parrot release. If PARROT_REVISION already contains a Parrot release tag (e.g.,
RELEASE_3_9_0) then it does not need to be changed. If PARROT_REVISION refers to an interim commit, as in
RELEASE_4_6_0-27-gda9adfa, then update PARROT_REVISION to contain the tag corresponding to Parrot's monthly release.
To see a list of Parrot release tags, use
git tagon an up-to-date Parrot repository.
Once tools/build/PARROT_REVISION has been set to a Parrot release, it must not be changed (except to another Parrot release) until after the Rakudo release.
MoarVM tries to have a synchronised release schedule with NQP and rakudo, so there's most probably a release tag for MoarVM that you can bump tools/build/MOAR_REVISION to. Release tags for MoarVM have the format
2014.02. Find all of the tags with
git tagin an up-to-date MoarVM checkout.
- Change the
VERSIONfile in nqp:
$ echo '2012.12' > VERSION $ git commit -m 'bump VERSION to 2012.12' VERSION $ git push
- Make sure everything compiles and runs from a known clean state. This step is especially important if
MOAR_REVISIONwere changed in step 1 above. Don't forget to build the JVM backend, as well.
$ make realclean $ perl Configure.pl --gen-parrot --gen-moar --backend=parrot,moar,jvm $ make $ make test
Resolve any problems that may still exist.
- Create a release tarball (needed for the Rakudo Star release) by entering
make release VERSION=YYYY.MM, where YYYY.MM is the month for which the release is being made. This will create a tarball file named
- Unpack the tar file into another area, and test that it builds and runs properly using the same process in step 3 above. If there are any problems, fix them and go back to step 3.
- Tag NQP by its release month ("YYYY.MM")
$ git tag -a -m"tag release YYYY.MM" YYYY.MM # e.g., 2012.12 $ git push --tags
- Upload the release tarball to http://rakudo.org/downloads/rakudo:
$ scp nqp-2013.12.tar.gz firstname.lastname@example.org:public_html/downloads/nqp/
If you do not have permissions for that, ask one of (pmichaud, jnthn, masak, tadzik, moritz, PerlJam) on #perl6 to do it for you.
- If creating the NQP release as part of a Rakudo release, continue with the Rakudo release process.