~dexter/parrot-pkg/maverick

« back to all changes in this revision

Viewing changes to docs/project/release_manager_guide.pod

  • Committer: Piotr Roszatycki
  • Date: 2011-01-11 14:34:28 UTC
  • mfrom: (1.1.13 upstream)
  • Revision ID: piotr.roszatycki@gmail.com-20110111143428-s7pa7qz38m61o4tw
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2007-2010, Parrot Foundation.
2
 
# $Id: release_manager_guide.pod 49192 2010-09-21 08:04:49Z gerd $
3
2
 
4
3
=head1 Release Instructions
5
4
 
14
13
announce the tasks to the Parrot mailing list.  Make sure everyone knows what
15
14
they've committed to accomplish in time for the release.
16
15
 
17
 
Right after the release preceeding your release, it is a good idea to start
 
16
Right after the release preceding your release, it is a good idea to start
18
17
tracking parrot news in NEWS. A good resource are the reports
19
18
in the weekly #parrotsketch IRC-meeting. A reliable log of these meetings
20
19
is available in L<http://irclog.perlgeek.de/parrotsketch/>.
53
52
=item 1.
54
53
 
55
54
The day of the release has come.
56
 
Make sure you're up to date:
57
 
 
58
 
 $ svn update
 
55
Make sure you have the most recent version of the master branch:
 
56
 
 
57
    git checkout master && git pull --rebase
 
58
 
 
59
Also be sure you do not have any local commits that have not yet
 
60
been pushed out and tested thoroughly. You can check for this with
 
61
 
 
62
    git log ..origin/master
 
63
 
 
64
If there is no output from that command, then your local master
 
65
and the master on origin are in sync.
59
66
 
60
67
=item 2.
61
68
 
154
161
 
155
162
Make sure everything works:
156
163
 
157
 
 $ make realclean
158
 
 $ perl Configure.pl --test ...
159
 
 $ make world docs html 2>&1 | tee make_world_docs_html.log
160
 
 $ make fulltest        2>&1 | tee make_fulltest.log
 
164
    make realclean
 
165
    perl Configure.pl --test ...
 
166
    make world docs html 2>&1 | tee make_world_docs_html.log
 
167
    make fulltest        2>&1 | tee make_fulltest.log
161
168
 
162
169
Note that running "make fulltest" takes a while and that separate
163
170
harnesses are being run.
168
175
 
169
176
When all is well, then commit your changes:
170
177
 
171
 
 svn diff | more
172
 
 svn commit
173
 
 
174
 
Write down the revision number from this commit. You will need it later in
175
 
step 7.
 
178
    git diff
 
179
    git add file1 file2 ...
 
180
    git commit -m "awesome and informative commit message"
 
181
 
 
182
Instead of adding files individually, you can also tell C<git commit> that
 
183
you want all modified and deleted files to be in your next commit via the C<-a>
 
184
flag:
 
185
 
 
186
    git commit -a -m "awesome and informative commit message"
 
187
 
 
188
Be carefult with C<git commit -a>, it could add files that you do not mean
 
189
to include. Verify that the contents of your most recent commit look sane with:
 
190
 
 
191
    git show
 
192
 
 
193
If you want you can note the SHA1 from this commit.
 
194
 
 
195
    git rev-parse master > SHA1_TO_REMEMBER
 
196
 
 
197
Update repository on github.
 
198
 
 
199
    git push origin master
176
200
 
177
201
=item 4.
178
202
 
179
203
Prepare the release tarball.
180
204
 
181
 
 $ make release VERSION=a.b.c
 
205
    make release VERSION=a.b.c
182
206
 
183
207
where a.b.c is the version number. This will create the tarball named
184
208
F<parrot-a.b.c.tar.gz>. This will automatically avoid including C<DEVELOPING>
192
216
 
193
217
Make sure everything works:
194
218
 
195
 
 $ perl Configure.pl
196
 
 $ make world docs html 2>&1 | tee make_world_docs_html.log
197
 
 $ make fulltest        2>&1 | tee make_fulltest.log
 
219
    perl Configure.pl
 
220
    make world docs html 2>&1 | tee make_world_docs_html.log
 
221
    make fulltest        2>&1 | tee make_fulltest.log
198
222
 
199
223
Verify that the version is correct and doesn't contain the suffix C<devel>:
200
224
 
201
 
 $ ./parrot -V
 
225
    ./parrot -V
202
226
 
203
227
=item 7.
204
228
 
205
229
Tag the release as "RELEASE_a_b_c", where a.b.c is the version number.
206
 
Specify the revision number generated in step 3, above.
207
230
 
208
 
 $ export SVNPARROT=https://svn.parrot.org/parrot
209
 
 $ svn copy -r <REV> -m "tagged release a.b.c" \
210
 
   $SVNPARROT/trunk $SVNPARROT/tags/RELEASE_a_b_c
 
231
    git tag RELEASE_a_b_c
 
232
    git push --tags
211
233
 
212
234
=item 8.
213
235
 
214
236
SSH to ftp-osl.osuosl.org. (If you don't have the necessary login information,
215
237
get it from one of the previous release managers.)
216
238
 
217
 
 $ ssh -l <USERNAME> ftp-osl.osuosl.org
 
239
    ssh -l <USERNAME> ftp-osl.osuosl.org
218
240
 
219
241
If the release is a monthly development release, create a new directory under
220
242
F<~/ftp/releases/devel>.
221
243
 
222
 
 $ mkdir ~/ftp/releases/devel/a.b.c
 
244
 mkdir ~/ftp/releases/devel/a.b.c
223
245
 
224
246
If the release is in the supported series (L<Appendix 1 - Upcoming releases>)
225
247
create the new directory in F<~/ftp/releases/supported> instead.
226
248
 
227
 
 $ mkdir ~/ftp/releases/supported/a.b.c
 
249
 mkdir ~/ftp/releases/supported/a.b.c
228
250
 
229
251
Copy the different compressed tarballs and the according checksum files from
230
252
your machine into the new directory.
231
253
 
232
 
 $ scp parrot-a.b.c.tar.gz parrot-a.b.c.tar.bz2 \
 
254
 scp parrot-a.b.c.tar.gz parrot-a.b.c.tar.bz2 \
233
255
       parrot-a.b.c.tar.gz.sha256 parrot-a.b.c.tar.bz2.sha256 \
234
256
   <USERNAME>@ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.
235
257
 
248
270
Compose the release announcement.  Use F<tools/release/crow.pir> to make
249
271
this part easier.  You can specify the format of your announcements like so:
250
272
 
251
 
  $ ./parrot tools/release/crow.pir --type=text
252
 
  $ ./parrot tools/release/crow.pir --type=html
 
273
  ./parrot tools/release/crow.pir --type=text
 
274
  ./parrot tools/release/crow.pir --type=html
253
275
 
254
276
Take the screen output and paste it into the application you need.  HTML
255
277
works well for use Perl and PerlMonks, and text for the rest.  It is not a
407
429
visible at
408
430
L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
409
431
 
410
 
 - Oct 19, 2010 - 2.9*  - gerd
411
 
 - Nov 16, 2010 - 2.10  - tcurtis
412
 
 - Dec 21, 2010 - 2.11  - whiteknight
413
432
 - Jan 18, 2011 - 3.0*  - cotto
414
433
 - Feb 15, 2011 - 3.1   - mikehh
415
434
 - Mar 15, 2011 - 3.2   - ??