parrotcode: Untitled | |
Contents | Project Information |
To prepare a release:
make fulltest
and report (and hopefully fix!) any problems they find.A couple of days in advance: announce the new release to parrot-dev@lists.parrot.org and to the IRC channel #parrot.
Ask whether there are any showstopping bugs.
It's also good to ask for updates to NEWS,
CREDITS,
PLATFORMS,
RESPONSIBLE_PARTIES and https://trac.parrot.org/parrot/wiki/Languages.You might also select a name for your release.
For example,
you could select a name from http://en.wikipedia.org/wiki/List_of_parrots.Set up your account on http://www.parrot.org/ and ask one of Allison,
Jerry,
Jeff,
Will,
or chromatic to bestow you story-creating powers.
$ svn updateYou may want to ask the developer base to stop committing big changes; it will avoid complications. Or you could create a release branch, make release-related changes there, and fold them back into the trunk once the release is done. This process is explained in Appendix 1.
Source0
in parrot.spec might have to be adapted as well.Also update the version number, date, and your name in the the file: docs/parrothist.pod.Update this file, that is release_manager_guide.pod, to remove the pending release you're in the middle of.
release.*
bugday.date
wiki.bugday
make distro_tests
, 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. Please check with prove t/native_pbc/*.t
.NOTE: Due to frequent PBC changes, these tests are currently skipped.
$ make realclean $ perl Configure.pl --test ... $ make world docs html 2>&1 | tee make_world_docs_html.log $ make fulltest 2>&1 | tee make_fulltest.logNote that running "make fulltest" takes a while and that separate harnesses are being run.
svn diff | more svn commitWrite down the revision number from this commit. You will need it later in step 7.
$ make release VERSION=a.b.cwhere a.b.c is the version number. This will create the tarball named parrot-a.b.c.tar.gz. This will automatically avoid including
DEVELOPING
in the release tarball.
$ perl Configure.pl $ make world docs html 2>&1 | tee make_world_docs_html.log $ make fulltest 2>&1 | tee make_fulltest.log
$ export SVNPARROT=https://svn.perl.org/parrot $ svn copy -m "tagged release a.b.c" \ $SVNPARROT/trunk $SVNPARROT/tags/RELEASE_a_b_cSee also Appendix 1 below.
$ ssh -l <USERNAME> ftp-osl.osuosl.orgIf the release is a monthly development release, create a new directory under ~/ftp/releases/devel.
$ mkdir ~/ftp/releases/devel/a.b.cIf the release is in the stable series (1.0, 1.5, 2.0, 2.5, etc) create the new directory in ~/ftp/releases/stable instead.
$ mkdir ~/ftp/releases/stable/a.b.cCopy the tarball from your machine into the new directory.
$ scp parrot-a.b.c.tar.gz ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.(Or using
wget
or whatever tool you prefer.)When you're finished making changes, run the trigger script to push the changes out to the FTP mirrors.
~/trigger-parrotCheck your changes at ftp://ftp.parrot.org/pub/parrot/releases. It should only take a few minutes for the mirrors to sync.
$ ./parrot tools/util/crow.pir --type=text $ ./parrot tools/util/crow.pir --type=htmlTake the screen output and paste it into the application you need. HTML works well for use Perl and PerlMonks, and text for the rest. It is not a bad idea to add a "highlights" section to draw attention to major new features, just be sure to say the same thing in both text and HTML versions.
lwn
at that domain.
/topic #parrot Parrot 0.4.8 Released | http://parrot.org/
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 won't happen again.
README, RESPONSIBLE_PARTIES.
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
Alternatively you can also move the branch:
$ svn move -m "Tagging 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!
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 actually present in that release.
- February 17, 2009 - 0.9.1 - March 17, 2009 - 1.0.0
|