# $Id: RELEASE_INSTRUCTIONS 12091 2006-04-02 16:36:42Z leo $

To prepare a release:

    0.  Announce to perl6-internals and #parrot at least a
        couple days in advance, asking if there are any
        showstopping bugs.

    1.  svn update

    2.  Update files with version-specific information:

        a.  Increment the version number in:
	    - VERSION
            - parrot.spec, 
	    - compilers/imcc/main.c
            - MANIFEST.generated
            - META.yml

        b.  Change the information in DEVELOPING to reflect
            this release's version number and date.

        c.  Update README.

        d.  Update ChangeLog, NEWS, docs/ROADMAP.pod, and docs/BROKEN.pod.

        e.  Make sure nothing in TODO has been done.

        f.  Make sure RESPONSIBLE_PARTIES is still
            accurate.

	g.  Update PBC_COMPAT

	h.  run perl tools/dev/pbc_header.pl --upd t/native_pbc/*.pbc
	    to update version and fingerprint in native tests

	i.  make realclean
	    perl Configure.pl ...
	    make -s all world fulltest

    3.  svn commit.

    4.  make release VERSION=a.b.c
           where a.b.c is the version number

    5.  untar parrot-a.b.c.tar.gz into another area

    6.  Make sure everything works:
        perl Configure.pl 
        make world
        make fulltest

    7.  tag the release as: RELEASE_a_b_c
           where a.b.c is the version number

  	$ export SVNPARROT=https://svn.perl.org/parrot
  	$ svn copy -m"tagged release a.b.c \
            "$SVNPARROT/trunk $SVNPARROT/tags/RELEASE_a_b_c

        See also below [1]

    8.  upload to CPAN.

    9.  Compose and send out the announcements--perl6-internals,
        -language, -announce, perl5-porters, use Perl, PerlMonks,
        comp.lang.perl.misc, etc.

    9a. Submit the use Perl announcement story to Slashdot, Newsforge, etc.

	Don't forget to set a Reply-To: or Followup-To: header.

    10. You're done!  Help yourself to a beer, cola or other
        celebratory drink.

ABOUT THIS DOCUMENT:

This document was written after a couple of subtly incorrectly
assembled releases--usually when someone forgot to delete
DEVELOPING, 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.

--------------

Appendix [1] 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/
