Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
98 lines (65 sloc) 2.8 KB

release_guide.pod - guide to NQP releases

NQP's development release cycle is intimately tied to Rakudo's release cycle. There is no separate, independent release cycle for NQP; NQP must be tagged for release immediately prior to the Rakudo release.

Steps to create an NQP release

  1. 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 2016.02. Find all of the tags with git tag in an up-to-date MoarVM checkout.

  2. Change the VERSION file in nqp:

    echo '2016.12' > VERSION
    git commit -m 'bump VERSION to 2012.12' VERSION
    git push
  3. Make sure everything compiles and runs from a known clean state. This step is especially important if MOAR_REVISION was changed in step 1 above.

    make realclean
    perl Configure.pl --gen-moar --backend=moar,jvm
    make
    make m-test
    make j-test

    Resolve any problems that may still exist. Issues that impact backends other than MoarVM may potentially be ignored for a release for now. Check on the IRC channel if you have any questions.

    You will need JVM installed for the jvm tests to run. On Debian, you can install it with:

    sudo apt-get install openjdk-7-jdk openjdk-7-jre
  4. 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 nqp-YYYY.MM.tar.gz.

  5. 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.

  6. Tag NQP by its release month ("YYYY.MM")

    git tag -u <email address> -s -a -m "tag release YYYY.MM" YYYY.MM    # e.g., 2016.12
    git push --tags

    The -s tells git to sign the tag with your GPG key. Please see Rakudo's release guide for links on how to create GPG keys and upload them to GitHub, should it be necessary.

  7. Sign the tarball:

    gpg -b --armor nqp-YYYY.MM.tar.gz
  8. Upload the release tarball and signature to http://rakudo.org/downloads/nqp and https://rakudo.perl6.org/downloads/nqp/:

    scp nqp-2013.12.tar.gz nqp-2013.12.tar.gz.asc \
          rakudo@rakudo.org:public_html/downloads/nqp/
    scp nqp-2013.12.tar.gz nqp-2013.12.tar.gz.asc \
          rakudo@www.p6c.org:public_html/downloads/nqp/

    If you do not have permissions for that, ask one of (pmichaud, jnthn, FROGGS, masak, tadzik, moritz, PerlJam/perlpilot, [Coke], lizmat, timotimo, fsergot, hoelzro, Zoffix) on #perl6 or #perl6-dev to do it for you.

  9. If creating the NQP release as part of a Rakudo release, continue with the Rakudo release process.