+ (Parrot_free_context): Fix a segfault in "debug 0x80".
[parrot.git] / RELEASE_INSTRUCTIONS
blob1d7824c04f34ee27b3936e812972ccbcaa761809
1 # $Id$
3 To prepare a release:
5     0.  Announce to parrot-porters and #parrot at least a couple days in
6         advance, asking if there are any showstopping bugs.
8     1.  Make sure you're up to date:
10           $ svn update
12         You may want to ask the developer base to stop committing big
13         changes; it will avoid complications.  Or you could create a release
14         branch before releasing, rather than after.  Then you could fold the
15         release-oriented changes into the trunk once the release is done.
16         {{ TODO: explain how to do this }}
18     2.  Update files with version-specific information:
20         a.  Increment the version number in:
21             - VERSION
22             - parrot.spec,
23             - compilers/imcc/main.c
24             - MANIFEST.generated
25             - META.yml
27         b.  Change the information in DEVELOPING to reflect this release's
28             version number and date.
30         c.  Update README.
32         d.  Update ChangeLog, NEWS, docs/ROADMAP.pod, and docs/BROKEN.pod.
34         e.  Make sure RESPONSIBLE_PARTIES is still accurate.
36         f.  Run "perl t/harness t/distro/*.t", and either fix what those tests
37             complain about, or fix them so they don't complain.
38    
39         g.  Update PBC_COMPAT, perhaps by collapsing intra-release entries
40             into a single entry naming the release.
42         h.  Run C<perl tools/dev/pbc_header.pl --upd t/native_pbc/*.pbc>
43             to update version and fingerprint in the native tests.
45         i.  Make sure everything works:
47               $ make realclean
48               $ perl Configure.pl ...
49               $ make -s all world fulltest
51     3.  svn commit
53     4.  Make the release tarball:
55           $ make release VERSION=a.b.c
57         ... where a.b.c is the version number.  This will create the tarball,
58         named parrot-a.b.c.tar.gz.
60     5.  Untar parrot-a.b.c.tar.gz into another area
62     6.  Make sure everything works:
64           $ perl Configure.pl 
65           $ make world
66           $ make fulltest
68     7.  Tag the release as "RELEASE_a_b_c", where a.b.c is the version
69         number.
71           $ export SVNPARROT=https://svn.perl.org/parrot
72           $ svn copy -m"tagged release a.b.c \
73             "$SVNPARROT/trunk $SVNPARROT/tags/RELEASE_a_b_c
75         See also below [1]
77     8.  Upload to CPAN.
79     9.  Compose and send out the announcements -- parrot-porters,
80         perl6-language, perl6-announce, perl5-porters, use Perl, PerlMonks,
81         comp.lang.perl.misc, etc.
83     9a. Submit the use Perl announcement story to Slashdot, Newsforge, etc.
85         Don't forget to set a Reply-To: or Followup-To: header.
87     10. You're done!  Help yourself to a beer, cola or other celebratory
88         drink.
90 ABOUT THIS DOCUMENT:
92 This document was written after a couple of subtly incorrectly assembled
93 releases--usually when someone forgot to delete DEVELOPING, but at least
94 once where the MANIFEST check failed.  The intent of this file is to
95 document what must be done to release so that such mistakes don't happen
96 again.
98 --------------
100 Appendix [1] parrot repository layout as of end of Apr 2005:
102 $ svn ls $SVNPARROT
103 branches/
104 tags/
105 trunk/
107 $ svn ls $SVNPARROT/tags
108 PRE_REL_0_0_8/
109 RELEASE_0_0_10/
110 RELEASE_0_0_11/
111 RELEASE_0_0_13/
112 RELEASE_0_0_6/
113 RELEASE_0_0_8/
114 RELEASE_0_0_9/
115 RELEASE_0_1_0/
116 RELEASE_0_1_1/
117 RELEASE_0_1_2/
118 REL_0_0_5/
120 file_move_031023/
121 help/
122 ponie-PRE-P5_592/