| 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_21.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_21.tar.gz) |
| |
| a. upload to www.apache.org:/www/perl.apache.org/dist/ |
| |
| % scp mod_perl-1.99_21.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_21.tar.gz mod_perl-2.0-current.tar.gz |
| % tar -xzvf mod_perl-1.99_21.tar.gz |
| % rm /www/perl.apache.org/dist/mod_perl-2.0-current |
| % ln -sf mod_perl-1.99_21 mod_perl-2.0-current |
| |
| c. archive older releases (keep current + one prior release) |
| |
| % mv /www/perl.apache.org/dist/mod_perl-1.99_19.tar.gz \ |
| /www/perl.apache.org/dist/old |
| % mv /www/perl.apache.org/dist/mod_perl-1.99_19.tar.gz.asc \ |
| /www/perl.apache.org/dist/old |
| % rm -rf /www/perl.apache.org/dist/mod_perl-1.99_19 |
| |
| 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_21.tar.gz |
| |
| % pgps -b --armor mod_perl-1.99_21.tar.gz |
| |
| b. upload the generated sig file to www.apache.org: |
| |
| % scp mod_perl-1.99_21.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_21.tar.gz.asc |
| % ln -sf mod_perl-1.99_21.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_21.tar.gz.asc |
| http://perl.apache.org/dist/mod_perl-1.99_21.tar.gz |
| |
| % gpg --verify mod_perl-1.99_21.tar.gz.asc |
| |
| % pgpv mod_perl-1.99_21.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_21.tar.gz* . |
| % tar -xzvf mod_perl-1.99_21.tar.gz |
| % mv mod_perl-1.99_19.tar.gz* /www/archive.apache.org/dist/perl/ |
| % rm -rf mod_perl-1.99_20 |
| |
| 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_21 |
| include |
| - link at perl.apache.org: |
| http://apache.org/dist/perl/mod_perl-1.99_21.tar.gz |
| http://apache.org/dist/perl/mod_perl-1.99_21.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_22-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/_22/_23/g' RELEASE |
| perl -pi -e 's/_21/_22/g' RELEASE |
| perl -pi -e 's/_20/_21/g' RELEASE |
| perl -pi -e 's/_19/_20/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 |
| |