<commit_before>=head1 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.

Parrot releases the third Tuesday of each month; Rakudo will generally
issue its own development release soon after the Parrot release (Usually
within a few days).  To accomplish this, NQP must be tagged for release
immediately prior to the Rakudo release.

=head2 Steps to create an NQP release


=over 4

=item 1.

*Warning: Since 2012.07, this first step should only be done if the current
revision is not a Parrot release. So this step may or may not apply,
depending.*

Edit NQP's F<tools/build/PARROT_REVISION> file to contain the latest tag
of the Parrot repository corresponding to Parrot's monthly release.  For
Instance, running C<git tag> on an up-to-date Parrot repository will
show something like this:

    ...
    RELEASE_3_7_0
    RELEASE_3_8_0
    RELEASE_3_9_0
    REL_0_0_5
    V1

In this example the latest release of Parrot is 3.9.0, so the string
RELEASE_3_9_0 should be placed in F<tools/build/PARROT_REVISION>

Once F<tools/build/PARROT_REVISION> has been set to the Parrot release,
it must not be changed until after the Rakudo release.

=item 2.

Change the C<VERSION> file in nqp:

    $ echo '2012.12' > VERSION
    $ git commit -m 'bump VERSION to 2012.12' VERSION
    $ git push

=item 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

=item 4.

Update F<tools/build/NQP_REVISION> in your Rakudo repository to contain
the tag you just set on NQP.

    $ cd ~/git/rakudo
    $ echo "2012.12" > tools/build/NQP_REVISION

=item 5.

Cut a release tarball (needed for the Rakudo Star release).

    git archive --format=tar 2012.12 | gzip -9 > ~/nqp-2012.12.tar.gz
<commit_msg>[docs/release_guide.pod] clean your nqp before tarring<commit_after>=head1 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.

Parrot releases the third Tuesday of each month; Rakudo will generally
issue its own development release soon after the Parrot release (Usually
within a few days).  To accomplish this, NQP must be tagged for release
immediately prior to the Rakudo release.

=head2 Steps to create an NQP release


=over 4

=item 1.

*Warning: Since 2012.07, this first step should only be done if the current
revision is not a Parrot release. So this step may or may not apply,
depending.*

Edit NQP's F<tools/build/PARROT_REVISION> file to contain the latest tag
of the Parrot repository corresponding to Parrot's monthly release.  For
Instance, running C<git tag> on an up-to-date Parrot repository will
show something like this:

    ...
    RELEASE_3_7_0
    RELEASE_3_8_0
    RELEASE_3_9_0
    REL_0_0_5
    V1

In this example the latest release of Parrot is 3.9.0, so the string
RELEASE_3_9_0 should be placed in F<tools/build/PARROT_REVISION>

Once F<tools/build/PARROT_REVISION> has been set to the Parrot release,
it must not be changed until after the Rakudo release.

=item 2.

Change the C<VERSION> file in nqp:

    $ echo '2012.12' > VERSION
    $ git commit -m 'bump VERSION to 2012.12' VERSION
    $ git push

=item 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

=item 4.

Update F<tools/build/NQP_REVISION> in your Rakudo repository to contain
the tag you just set on NQP.

    $ cd ~/git/rakudo
    $ echo "2012.12" > tools/build/NQP_REVISION

=item 5.

Cut a release tarball (needed for the Rakudo Star release).

    $ git clean -xdf
    $ git archive --format=tar 2012.12 | gzip -9 > ~/nqp-2012.12.tar.gz

{'fraction_non_alphanumeric': 0.07057291666666667, 'fraction_numerical': 0.036458333333333336, 'mean_word_length': 3.476689976689977, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '622857', 'n_tokens_mistral': 1404, 'n_tokens_neox': 1261, 'n_words': 538}