Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update NQP release_guide, create "make release" target in Makefile.

  • Loading branch information...
commit dd9cb19336a7ebfdc28935cb70eab244287a4c32 1 parent de089eb
@pmichaud pmichaud authored
Showing with 58 additions and 36 deletions.
  1. +47 −36 docs/release_guide.pod
  2. +11 −0 tools/build/Makefile.in
View
83 docs/release_guide.pod
@@ -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
View
11 tools/build/Makefile.in
@@ -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
Please sign in to comment.
Something went wrong with that request. Please try again.