...
- all items from the JIRA roadmap for the release must be completed or moved to a future release
- ALL human readable files must contain the Apache license header
- this includes style sheets, test code, and documentation - when in doubt, add a header
- files that are part of other software packages that are bundled with a release must not contain the header (unless that software is also ASF software) and should be clearly documented as being bundled software
- LICENSE and NOTICE files should be reviewed
- LICENSE: This file should have the Apache License at the top of it; any third party artifacts or documents included in the release should have their licenses included in this file along with a clear explanation of which files each license applies to.
- NOTICE: This file is for additional copyright and attribution statements any third party licenses may require. A typical NOTICE document at a minimum includes a copyright and attribution statement for The Apache Software Foundation. Nothing else belongs in the NOTICE document.
- Make sure copyright date is correct in NOTICE file
- Files containing the VCL version should be updated to the version being released
- The following command may be used to help locate files which contain the old version: grep -r --exclude='*svn*' --exclude='*.jpg' --exclude='*.html' '2\.4' * |grep -v '2\.4\.1'
- The Perl files under trunk/managementnode contain a line defining a $VERSION variable, this should be updated in every file
- Update the VCL_VERSION variable in vcl-install.sh and vcl-upgrade.sh
- Update this line in vcl-upgrade.sh: gzip $WORKPATH/vcl-pre2.4.1-backup.sql
- Update the Version: line in vcl.sql
- Update this line in update-vcl.sql: Apache VCL version 2.x to 2.y database schema changes
- documentation on how to upgrade from a previous release must be created
- if appropriate, scripts to help users upgrade should be created (don't forget steps/scripts to upgrade the database schema)
- RELEASE_NOTES file needs to be updated and should contain:
- release version
- an intro to VCL
- a brief description of the aims of VCL
- a brief roadmap of VCL and how this release fits in to it
- a list of ways for users to get involved
- a description of how users can submit issues
- the following disclaimer in a README file :
Apache VCL is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.the README file must also contain all dependencies (this includes PHP, Perl, MySQL versions in addition to perl and php modules, dojo, etc.) for running VCL, any changes in dependencies since the last release must be listed in the CHANGLOG file - generate a CHANGELOG file
- go to the JIRA site
- click Release Notes
- select the release version
- select text as the style
- scroll down to Edit/Copy Release Notes
- copy/paste the contents to a new section in the CHANGELOG file
- make sure to add any changes in the dependencies since the last release
- make sure INSTALLATION file is up to date with content from Confluence on how to install each part
- ensure LICENSE, NOTICE, RELEASE_NOTES, CHANGELOG, INSTALLATION, UPGRADE, and README files are in top level directory of trunk (or the branch that will be used for the release)
- an export from HEAD should result in a directory tree with all files and directories having appropriate permissions
- release manager's GPG signing key must be in KEYS file in toplevel directory of SVN (one above trunk)
- a release/download page needs to be created for the specific release containing:
- link to release artifact (link to a mirror)
- link to signatures and checksums (link directly to apache.org)
- steps explaining how to verify artifact using signatures and checksums
- either a link to release notes or contain them inline
- either a link to a change log or contain it inline
- a decision needs to be made determining which, if any, previously released artifacts should be removed from the main distribution site after this release is completed
- make sure the index.php file from the web code has the correct VCL version at the top of it
- ensure contents of web/.ht-inc/xmlrpcdocs is up to date; content can be generated using doxygen with web/.ht-inc/doxyfile.xmlrpc as the configuration file
Steps to create a release candidate artifact
...
Community and PMC voting process
...
Wiki Markup |
release manager should start a [VOTE|http://incubator.apache.org/guides/releasemanagement.html#note-votes] thread on the vcl- dev list; [this is a good example|http://mail-archives.apache.org/mod_mbox/incubator-stdcxx-dev/200601.mbox/%3C43C1C0A0.7040401%40roguewave.com%3E]; however, the example is missing an explicit vote block that needs to be included:
\
[ \ ] \ +1 yes, release VCL W.X.Y
\
[ \ ] 0 dunno
\
[ \ ] \ -1 no, don't release VCL W.X.Y (provide reasons if this is your vote)- the release manage's vote should be posted in a separate message from the one calling for the vote
Wiki Markup |
the VOTE thread should be ended with a reply post including \ [RESULT\] in the subject; [ this is a good example |(http://mail-archives.apache.org/mod_mbox/incubator-general/200605.mbox/<5BDE9EBE-2645-4940-9CB9-C038E531B8A2%40gmail.com>])- after a passing vote (must have at least three +1 votes, majority of votes must be positive), the release manager should post a message to the general at incubator.apache.org list formally requesting approval for the release and containing:
- Links to the release artifacts
- Links to the PPMC release vote thread
- Link to the tag from which the release is cut
- this is a good example
- there must be at least three +1 Incubator PMC votes to pass
Votes on whether a package is ready to be released use majority approval -- i.e. at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes. Releases may not be vetoed. Generally the community will cancel the release vote if anyone identifies serious problems, but in most cases, the ultimate decision lies with the individual serving as release manager.
Steps to make the RC available as a release artifact
- create a tag for the release from the approved RC tag (svn copy from RC tag to new release tag)
- create a copy of the approved RC artifact and name it apache-VCL-X.Y.Z-incubating.tar.bz2 (the .Z should only be included if Z > 0) - untar old one, rename director to not have RC part, create new tarball
- sign the file with GPG
- create md5 and sha1 sum files
Steps to make release artifact available to users
- place the release artifact, sums, and signature in /www/www.apache.org/dist/incubator/vcl on people.apache.org
- ensure the artifact has permissions 664 and is owned by the incubator vcl group
- wait 24 hours for the artifact to propagate to the mirrors before announcing the release
- ideally, a test download should be done from the mirror and a check of the sums and signatures should be done
- After successfully performing a test download from the mirror, announcements should be made
- on the vcl- dev@ list
- on the vcl- user@ list
- update currently listed version and download link on confluence Index page
- (update this list as the community grows)
- Set the newly released version to the Release status in JIRA so that people will be able to see it as released when reporting bugs
- Go to the JIRA site
- click "Manage versions" under the Versions section
- In the Operations column, click the Release link for the specified version
IMPORTANT: Once a release is copied to the dist location, it must not be modified. This can signal that an attack is being performed. If an error is found, a new .Z release should be made.
Steps to perform after a release
- Update the doap_vcl.rdf file. This causes the release to appear on http://projects.apache.org/indexes/releases.html.