| Instructions for mod_perl 2.0 Release Manager |
| |
| 0. make sure your public key is in the KEYS file in the mod_perl docs. |
| you should only need to do this if this is your first time playing |
| Release Manager |
| |
| $ cd mod_perl-docs |
| $ grep $USER src/dist/KEYS |
| |
| note that the KEYS file itself contains all the instructions you |
| need on how to add your key. if you need further help on gpg |
| (like how to create a key in the first place) you can look here |
| |
| http://people.apache.org/~geoff/gpghowto.html |
| |
| Copy the KEYS file into place: |
| % scp KEYS people.apache.org:/www/www.apache.org/dist/perl/KEYS |
| |
| If this is your first release, ask someone with APML karma on PAUSE |
| to verify you have the appropriate permissions. Likely someone on |
| the PMC can do this. |
| |
| a. login into https://pause.perl.org |
| b. menu click: Select Mailinglist/Action |
| c. choose APML and share_perms and click go |
| d. click 3.1 Make somebody else co-maintainer |
| e. choose the modules to give the perms to |
| type the username of the new co-maintainer |
| f. if you happen to know that packages were added this release, |
| make sure you give the correct permissions to them. |
| |
| 1. 'make mydist' - to make sure nothing is missing from the manifest, |
| etc. Now test this generated package mod_perl-2.0.6.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. edit ./Changes |
| - change -dev to -rc\d+ starting with -rc1 |
| |
| b. nuke any preinstalled mod_perl libs and run 'make test' |
| |
| c. test that you can 'make install' and then run 'make test' again |
| |
| d. test whether we still 100% OK on systems with no LWP: |
| |
| % APACHE_TEST_PRETEND_NO_LWP=1 make test |
| |
| e. 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 people.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 |
| |
| Subject: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC\d+ |
| |
| 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 -rc\d+ |
| - add release date |
| |
| b. check ./README and ./Makefile.PL |
| - make sure supported httpd versions (dso & static) are current |
| |
| c. rerun: |
| % perl Makefile.PL |
| make sure tag looks right |
| % make -n tag |
| |
| d. commit Changes README Makefile.PL |
| % svn ci -m "Releasing 2.0.6" Changes README Makefile.PL |
| |
| e. tag |
| % make tag |
| |
| XXXX: See BRANCHING for the steps to include the proper tagged externals |
| XXXX: This needs to be fixed, and updated, developer beware its outdated and possibly wrong |
| f. Update the svn:externals in the new tag |
| (you can't propedit remotely yet in svn) |
| % svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_6 |
| % svn propedit svn:externals 2_0_6 |
| Update the Apache-Test line to current revision |
| % svn info https://svn.apache.org/repos/asf/perl/Apache-Test/trunk | grep "Last Changed Rev" |
| Update the docs line to the current tag. |
| It should look like: |
| % svn propget svn:externals 2_0_6 |
| Apache-Test -r 608229 https://svn.apache.org/repos/asf/perl/Apache-Test/trunk |
| docs https://svn.apache.org/repos/asf/perl/modperl/docs/tags/2_0_6/src/docs/2.0 |
| |
| % svn ci -m "Releasing 2.0.6" |
| |
| g. create the final package |
| % make dist |
| |
| h. test the final package again at least once |
| |
| 4. Release the package and update links (e.g. mod_perl-2.0.6.tar.gz) |
| |
| a. upload to people.apache.org:/www/perl.apache.org/dist/ - ask the PMC |
| chair to give you the needed permissions if you do not have them. |
| |
| % scp mod_perl-2.0.6.tar.gz people.apache.org:/www/perl.apache.org/dist/ |
| |
| b. ssh to people.apache.org, unpack the package, update symlinks to the |
| tar ball and unpacked distro: |
| |
| % ssh people.apache.org |
| % cd /www/perl.apache.org/dist/ |
| % ln -sf mod_perl-2.0.6.tar.gz mod_perl-2.0-current.tar.gz |
| % tar -xzvf mod_perl-2.0.6.tar.gz |
| % rm /www/perl.apache.org/dist/mod_perl-2.0-current |
| % ln -sf mod_perl-2.0.6 mod_perl-2.0-current |
| |
| c. archive older releases (keep current + one prior release) |
| |
| % mv /www/perl.apache.org/dist/mod_perl-2.0.4.tar.gz \ |
| /www/perl.apache.org/dist/old |
| % mv /www/perl.apache.org/dist/mod_perl-2.0.4.tar.gz.asc \ |
| /www/perl.apache.org/dist/old |
| % rm -rf /www/perl.apache.org/dist/mod_perl-2.0.4 |
| |
| d. update the version and release date in the docs: |
| % vi modperl-docs/src/download/index_top.html |
| % vi modperl-docs/doap_Perl.rdf |
| |
| and commit. |
| % svn ci -m "Releasing 2.0.6" \ |
| modperl-docs/src/download/index_top.html \ |
| modperl-docs/doap_Perl.rdf |
| |
| 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 |
| |
| You may need to sudo -H -u perlwww to cleanup any svn locks. |
| |
| 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-2.0.6.tar.gz |
| |
| % pgps -b --armor mod_perl-2.0.6.tar.gz |
| |
| b. upload the generated sig file to people.apache.org: |
| |
| % scp mod_perl-2.0.6.tar.gz.asc people.apache.org:/www/perl.apache.org/dist/ |
| % ssh people.apache.org |
| % cd /www/perl.apache.org/dist/ |
| % chmod 0664 mod_perl-2.0.6.tar.gz.asc |
| % ln -sf mod_perl-2.0.6.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-2.0.6.tar.gz.asc |
| http://perl.apache.org/dist/mod_perl-2.0.6.tar.gz |
| |
| % gpg --verify mod_perl-2.0.6.tar.gz.asc |
| |
| % pgpv mod_perl-2.0.6.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 -print0 | xargs -0 chmod 0664 |
| % find /www/perl.apache.org/dist/ -user $USER -type d -print0 | xargs -0 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-2.0.6.tar.gz* . |
| % tar -xzvf mod_perl-2.0.6.tar.gz |
| % mv mod_perl-2.0.4.tar.gz* /www/archive.apache.org/dist/perl/ |
| % rm -rf mod_perl-2.0.4 |
| |
| 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/perl/ -user $USER -type f -print0 | xargs -0 chmod 0664 |
| % find /www/www.apache.org/dist/perl/ -user $USER -type d -print0 | xargs -0 chmod 0775 |
| |
| 8. Announce the package |
| |
| a. post ... to the modperl, announce lists |
| Note, to post to announce@, you must be sending from an apache.org address. |
| Subject: [ANNOUNCE] mod_perl 2.0.6 |
| include |
| - link at perl.apache.org: |
| http://apache.org/dist/perl/mod_perl-2.0.6.tar.gz |
| http://apache.org/dist/perl/mod_perl-2.0.6.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_perl2.pm |
| |
| b. edit ./Changes: |
| - start a new item with incremented version + '-dev' |
| |
| =item 2.0.7-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/(\d+)([._])(\d+)(\2)(\d+)/join($2, $1, $3, $5+1)/eg' RELEASE |
| |
| e. commit the changed files |
| |
| % svn ci -m "start 2.0.6-dev cycle" Changes lib/mod_perl2.pm \ |
| STATUS RELEASE |
| |
| 10. Old Versions |
| |
| Remind other Developers to delete versions older then the prior release |
| from CPAN. Old releases can always be found on BACKPAN. |