parrotcode: Untitled | |
Contents | Project Information |
To prepare a release:
$ svn update
rt.tracking
rt.saved_search
DependedOnBy
parameter to the ticket for the next release. Take the entire resulting URL to http://xrl.us/ and get a short URL. Add that to this field.perl t/harness t/distro/*.t
, and either fix what those tests complain about, or fix them so they don't complain.perl tools/dev/pbc_header.pl --upd t/native_pbc/*.pbc
to update version and fingerprint in the native tests. $ make realclean
$ perl Configure.pl --test ...
$ make -s all world fulltest html
# Note that fulltest runs separate harnesses..
svn commit
$ make release VERSION=a.b.c
DEVELOPING
in the release tarball. $ perl Configure.pl
$ make world
$ make fulltest
$ make docs
$ make html
$ export SVNPARROT=https://svn.perl.org/parrot
$ svn copy -m"tagged release a.b.c" \
$SVNPARROT/trunk $SVNPARROT/tags/RELEASE_a_b_c
$ ./parrot tools/util/crow.pir --type=text
$ ./parrot tools/util/crow.pir --type=html
/topic #parrot Parrot 0.4.8 Released | http://parrotcode.org/
/index.html
(The old mini-announcement may be commented out). Update /.htredirects
to point to the proper CPAN URL.This document was written after a couple of subtly incorrectly assembled releases--usually when someone forgot to delete DEVELOPING (which is now automated!), but at least once where the MANIFEST check failed. The intent of this file is to document what must be done to release so that such mistakes don't happen again.
README, RESPONSIBLE_PARTIES.
parrot repository layout as of end of Apr 2005
$ svn ls $SVNPARROT
branches/
tags/
trunk/
$ svn ls $SVNPARROT/tags
PRE_REL_0_0_8/
RELEASE_0_0_10/
RELEASE_0_0_11/
RELEASE_0_0_13/
RELEASE_0_0_6/
RELEASE_0_0_8/
RELEASE_0_0_9/
RELEASE_0_1_0/
RELEASE_0_1_1/
RELEASE_0_1_2/
REL_0_0_5/
V1/
file_move_031023/
help/
ponie-PRE-P5_592/
Instead of step 1, create a new branch, and get a working copy of it:
$ export SVNPARROT=https://svn.perl.org/parrot
$ svn copy -m"Starting release a.b.c" \
$SVNPARROT/trunk $SVNPARROT/branches/RELEASE_a_b_c
$ svn checkout $SVNPARROT/branches/RELEASE_a_b_c parrot-release
$ cd parrot-release
Make a note of the revision number produced by svn copy
so that you know which changes were made on the branch.
This new parrot-release
working copy will be "on" the branch, insulated from trunk commits, so you should feel free to announce the end of any "code slush" that may be in effect.
Then, do steps 3 through 7 using your branch working copy, so that commits go to the branch. When you are sure that the tarball is all that it should be, tag the release as a copy from the branch (instead of the trunk):
$ svn copy -m"Release a.b.c" \
$SVNPARROT/branches/RELEASE_a_b_c $SVNPARROT/tags/RELEASE_a_b_c
Upload your shiny new tarball, announce the release, and close tickets (steps 9 through 11) as described above.
Finally (don't get your celebratory drink yet!), you need to merge the branch changes back into the trunk. To do this, you need an up-to-date working copy on the trunk. You can reuse the parrot-release
working copy via svn switch
by switching it back to the trunk (assuming parrot-release
is the current directory):
$ svn switch $SVNPARROT/trunk
Then, merge the branch changes back into it:
$ svn merge -r 12345:HEAD $SVNPARROT/branches/RELEASE_a_b_c
where "12345" is the revision number of the svn copy
operation that created the branch. Check that the merge was clean, "make test" if there were any code changes on the branch, and commit. Then go get that beer!
Planned releases in 2008.
To make a monthly release schedule possible, we're spreading the burden of releases across multiple release managers. Releases are scheduled for the 3rd Tuesday of each month. Version numbers for each release will be determined each month, and will depend on the features that will be in that release.
- Jan 15th (0.5.2) Bob Rogers
- Feb 19th (?) Patrick Michaud
- Mar 18th (?) Bernhard Schmalhofer
- Apr 15th (?) Jerry Gay
- May 20th (?) chromatic
- Jun 17th (?) Nuno Carvalho
|