Skip to content

Commit

Permalink
Update NQP release_guide, create "make release" target in Makefile.
Browse files Browse the repository at this point in the history
  • Loading branch information
pmichaud committed Aug 23, 2012
1 parent de089eb commit dd9cb19
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 36 deletions.
83 changes: 47 additions & 36 deletions docs/release_guide.pod
Expand Up @@ -10,66 +10,77 @@ 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:
* Note: This step has changed starting in 2012.07. *

...
RELEASE_3_7_0
RELEASE_3_8_0
RELEASE_3_9_0
REL_0_0_5
V1
Check to see if F<tools/build/PARROT_REVISION> needs to be
bumped to a later Parrot release. If PARROT_REVISION already
contains a Parrot release tag (e.g., C<RELEASE_3_9_0>) then
it does not need to be changed. If PARROT_REVISION refers to
an interim commit, as in C<RELEASE_4_6_0-27-gda9adfa>, then
update PARROT_REVISION to contain the tag corresponding to
Parrot's monthly release.

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>
To see a list of Parrot release tags, use C<git tag> on an
up-to-date Parrot repository.

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

=item 2.

Change the C<VERSION> file in nqp:

$ echo '2012.12' > VERSION
$ git commit -m 'bump VERSION to 2012.12' VERSION
$ git push
$ 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")
Make sure everything compiles and runs from a known clean state.
This step is especially important if PARROT_REVISION was changed
in step 1 above.

$ git tag -a -m"tag release YYYY.MM" YYYY.MM # e.g., 2012.12
$ git push --tags
$ make realclean
$ perl Configure.pl --gen-parrot
$ make
$ make test

=item 4.
Resolve any problems that may still exist.

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

$ cd ~/git/rakudo
$ echo "2012.12" > tools/build/NQP_REVISION
Create a release tarball (needed for the Rakudo Star release)
by entering C<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 C<nqp-YYYY.MM.tar.gz>.

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

=item 6.

Continue with the Rakudo release since that's currently the only reason
to have an NQP release.
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 7.

Upload the release tarball to Github's download area at
L<http://github.com/perl6/nqp/downloads>.

=item 8.

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

=back
11 changes: 11 additions & 0 deletions tools/build/Makefile.in
Expand Up @@ -1059,5 +1059,16 @@ realclean: clean

testclean:

manifest:
echo MANIFEST >MANIFEST
git ls-files >>MANIFEST

release: manifest
[ -n "$(VERSION)" ] || ( echo "\nTry 'make release VERSION=yyyy.mm'\n\n"; exit 1 )
[ -d nqp-$(VERSION) ] || ln -s . nqp-$(VERSION)
$(PERL) -ne 'print "nqp-$(VERSION)/$$_"' MANIFEST |\
tar -zcv -T - -f nqp-$(VERSION).tar.gz
rm nqp-$(VERSION)

# nqp::makefile <-- tells Configure.pm to convert / to \ in the above
# template for Win32 systems

0 comments on commit dd9cb19

Please sign in to comment.