blob: bec0a572e5b13b854b7db1b108fe461b2131ce18 [file] [log] [blame]
Instructions for mod_perl 2.0 Release Manager
1. 'make dist' - to make sure nothing is missing from the manifest,
etc. Now test this generated package mod_perl-1.99_22.tar.gz (not
the current build) with as many
configurations as possible on as many platforms as possible,
unpacking the package each time afresh.
a) nuke any preinstalled mod_perl libs and run 'make test'
b) test that you can 'make install' and then run 'make test' again
c) test whether we still 100% OK on systems with no LWP:
% APACHE_TEST_PRETEND_NO_LWP=1 make test
d) build and test as root. double check that you have started from a
fresh source, without having any stale dirs from the previous
build laying around.
2. once confident that the package is good, upload a release candidate
to perl.apache.org/~username and post 24 hour-ish candidate alert
to the modperl/dev list (may be longer to give most people a chance
to catch up). no need to tag this package
2a. if problems are detected during stage 2, repeat stages 1 and 2.
3. when the package has been reported to be good, prepare a new
package to be released
a. edit ./Changes:
- remove '-dev'
- add release date
b. check ./README and ./Makefile.PL
- make sure supported httpd versions (dso & static) are current
c. rerun:
% perl Makefile.PL MP_INST_APACHE2=1
make sure tag looks right
% make -n tag
d. commit Changes README Makefile.PL
% svn ci Changes README Makefile.PL
e. tag
% make tag
f. create the final package
% make dist
g. test the final package again at least once
4. Release the package and update links (e.g. mod_perl-1.99_22.tar.gz)
a. upload to www.apache.org:/www/perl.apache.org/dist/
% scp mod_perl-1.99_22.tar.gz www.apache.org:/www/perl.apache.org/dist/
b. ssh to www.apache.org, unpack the package, update symlinks to the
tar ball and unpacked distro:
% ssh www.apache.org
% cd /www/perl.apache.org/dist/
% ln -sf mod_perl-1.99_22.tar.gz mod_perl-2.0-current.tar.gz
% tar -xzvf mod_perl-1.99_22.tar.gz
% rm /www/perl.apache.org/dist/mod_perl-2.0-current
% ln -sf mod_perl-1.99_22 mod_perl-2.0-current
c. archive older releases (keep current + one prior release)
% mv /www/perl.apache.org/dist/mod_perl-1.99_20.tar.gz \
/www/perl.apache.org/dist/old
% mv /www/perl.apache.org/dist/mod_perl-1.99_20.tar.gz.asc \
/www/perl.apache.org/dist/old
% rm -rf /www/perl.apache.org/dist/mod_perl-1.99_20
d. update the version and release date
modperl-docs/src/download/index_top.html and commit. It'll be
automatically updated within 6 hours. Alternatively you can do a
manual update by logging into www.apache.org and running:
% /home/perlwww/apache.org/modperl-docs/bin/site_build
5. Upload the package to CPAN
6. Tarball signing
(depending on whether you use GPG or PGP, pick the first or the
second set of the commands):
a. sign your local copy of the tarball:
% gpg --detach-sign --armor mod_perl-1.99_22.tar.gz
% pgps -b --armor mod_perl-1.99_22.tar.gz
b. upload the generated sig file to www.apache.org:
% scp mod_perl-1.99_22.tar.gz.asc www.apache.org:/www/perl.apache.org/dist/
% ssh www.apache.org
% cd /www/perl.apache.org/dist/
% chmod 0664 mod_perl-1.99_22.tar.gz.asc
% ln -sf mod_perl-1.99_22.tar.gz.asc mod_perl-2.0-current.tar.gz.asc
c. ask one of the other developers to double check the signature file
and tarball: download both files and verify the signature:
http://perl.apache.org/dist/mod_perl-1.99_22.tar.gz.asc
http://perl.apache.org/dist/mod_perl-1.99_22.tar.gz
% gpg --verify mod_perl-1.99_22.tar.gz.asc
% pgpv mod_perl-1.99_22.tar.gz.asc
d. make sure that the files you just created are group rw so
all the dist admins can make changes:
% find /www/perl.apache.org/dist/ -user $USER -type f -exec chmod 0664 {} \;
% find /www/perl.apache.org/dist/ -user $USER -type d -exec chmod 0775 {} \;
7. Distribute to www.apache.org/dist/perl
and archive the old package under /www/archive.apache.org/dist/perl/
a. unpack the package, update symlinks to the tarball and unpacked distro:
% cd /www/www.apache.org/dist/perl/
% cp /www/perl.apache.org/dist/mod_perl-1.99_22.tar.gz* .
% tar -xzvf mod_perl-1.99_22.tar.gz
% mv mod_perl-1.99_20.tar.gz* /www/archive.apache.org/dist/perl/
% rm -rf mod_perl-1.99_21
b. make sure that the files you just created are group rw so
all the dist admins can make changes:
% find /www/www.apache.org/dist/ -user $USER -type f -exec chmod 0664 {} \;
% find /www/www.apache.org/dist/ -user $USER -type d -exec chmod 0775 {} \;
8. Announce the package
a. post ... to the modperl, announce lists
Subject: [ANNOUNCE] mod_perl 1.99_22
include
- link at perl.apache.org:
http://apache.org/dist/perl/mod_perl-1.99_22.tar.gz
http://apache.org/dist/perl/mod_perl-1.99_22.tar.gz.asc (pgp sig)
- MD5 sig (as it comes from CPAN upload announce).
- the latest Changes
9. Prepare for the next cycle
a. increment version in lib/mod_perl.pm
b. edit ./Changes:
- start a new item with incremented version + '-dev'
=item 1.99_23-dev
c. add a release entry in STATUS
d. update this file versions to make it easy to copy-n-paste things
on the next release:
perl -pi -e 's/_23/_24/g' RELEASE
perl -pi -e 's/_22/_23/g' RELEASE
perl -pi -e 's/_21/_22/g' RELEASE
perl -pi -e 's/_20/_21/g' RELEASE
now reload this file and bump up the last number of the first
command.
e. commit the changed files
% svn ci Changes lib/mod_perl.pm STATUS RELEASE