(UPDATED - Nov/20/ 2015)
Based on several ASF resources, the release activities can be broadly split into the following 4 phases:
# | Activity Bucket | Detailed activities/ tasks |
---|---|---|
1 | Scope & Preparation |
|
2 | Packaging & Signing RC Release Check |
|
3 | Voting & Approvals |
|
4 | Publishing & Announcements |
|
For step (2), following are the release items as extracted from Incubator's reference pages:
Release Items/ References | Status/ Readiness | Owner/ Notes |
---|---|---|
Mandatory items | ||
Checksums and PGP signatures are valid See the Release Signing dev documentation. | Need to initiate process - need to be a committer. | Release manager |
Build is successful including automated tests The expanded source archive is expected to build and pass tests. | Unit tests pass; DUnit in pre-check-in | Release manager |
DISCLAIMER is correct, filenames include "incubating" See the Podling Branding Guide. | Validate 'EVERY' build artifacts | Release manager |
Top-level LICENSE and NOTICE are correct for each distribution. See the Licensing How-To, plus various pages under Legal Affairs. | Top-level files already present in project root. Need to update for release. | Release manager (w/ help) |
All source files have license headers where appropriate. | Tied to GEODE-18 | Release manager (w/ help) |
The provenance of all source files is clear (ASF or software grants). See the IP clearance section of the Mentor's guide, as well as the Releases section of the Incubator's policy page. | Does ASF have Pivotal's (or EMC's, VMware's, Gemstone's) CCLA on file? | PMC/ Mentor to help |
Dependencies licenses are ok as per http://apache.org/legal/ | Validate w/ RAT. | Release manager (w/ Mentor?) |
Release consists of source code only, no binaries Each Apache release must contain a source package. This package may not contain compiled components (such as "jar" files) because compiled components are not open source, even if they were built from open source. | Validate build artifact | Release manager |
Alternate Release process(?) This section explains an alternate release procedure established in December 2013, as documented in the Incubator's incubation policy page. It is available only to selected podlings. | Once a release candidate is ready, the Release Manager creates a Release Manifest as a plain text file at http://svn.apache.org/repos/asf/incubator/public/trunk/votes/$PODLING and fills in all initial fields. | Release manager Is this available to Geode? |
Optional items (from the checklist) | ||
Build instructions are provided, unless obvious. Make sure that users do not have to guess how to build the project. | OK | Current README.txt and COMPILING.txt are sufficient |
Each expanded source archive matches the corresponding SCM tag It is important that any release can be reproduced from the source at any time in the future. Apache releases have long active lives and are permanently archived. It may be necessary (for example, for legal reasons) to provide a new release that is a slight alteration of a previous release. Release managers owe it to those who come afterwards to use build processes that are reproducible. | Need a release branch created with identical version name. | Release manager? |
RAT report clean. To assist license header checking, some projects use RAT -- possibly running it via Maven or another build tool. | Build task runs rat. Verify no suspect rat excludes | Check with Dick or Niall |
Change log clean. If the project provides release notes, such as in a CHANGES file, make sure that the file is up-to-date. | Need to check/ validate the contents of the Change Log (Release Notes) | Check with Mark Bretl |
All copyright dates current. If there are copyright dates in files other than NOTICE, ensure that these are up to date. | Need to check as part of initial licensing task (GEODE-18) | Check with Dick |
Issue tracker clean for release version. Make sure there are no open issues which should block the release. | Need a JIRA scrub/ maintenance task, marking versions for all closed issues that are merged in develop (going into the release) | Release manager? |
Extended tests pass. Some projects may have an optional set of tests which are more expensive to run. Just before a release is as good a time as any to see whether they pass. | Are these the CI tests? As of Nov 20th, we have ~35 issues open | Get a consensus: should CI tests be targeted for the initial (1.0)? which subsequent release? |
Build succeeds on platforms X, Y, Z. Test that the release builds successfully on all target platforms. | Need to determine if the supported platforms should be the same as original Gemfire docs. | Get a consensus: what target build platforms should be included? |
Documentation build clean If the documentation is built as part of the release preparation process, ensure that it built correctly | Two actions here:
| Create appropriate JIRA tasks. |
Downstream distributions build successfully. If the project provides direct support for downstream distributors (Maven, Debian, CPAN, PyPI, etc), ensure that whatever support is provided works as intended. | Need to check Maven distribution/ repo. Spring repo? | Create appropriate JIRA tasks. |
Binary release does not contain redundant dependency archives. Avoid wasting bandwidth and space for the sake of mirrors, users, and other downstream consumers. | Need to check final build artifacts. | Create an appropriate JIRA task. |
(OLD DRAFT - from May, 2015)
Apache Geode has the following steps for each release:
Preparing
- Create a release branch from develop
- Build and run tests++
- Sign it using GPG key
GPG key for signing artifacts ?
Publishing
Check details about how to publish to Nexus or repository.apache.org:
http://www.apache.org/dev/publishing-maven-artifacts.html#common
Execute the following steps: …
Call for a vote (PMCs)
A majority vote will be called in the mailing list and will wait for 72 hours (3 days) and if it passes (http://hadoop.apache.org/bylaws#Decision+Making) the release will then be published.
The release may initially be a candidate (RC) that after formally being reviewed and approved by another majority vote will become a public GA release.
Update the website and documentation
In order to complete the release it is mandatory to review and update the website content as well as provide documentation about the new features or changes made for the release.
These are the steps you need to follow:
- Clone website repository
- Update pages and run gradle website task which will generate content under …
- Clone documentation repository run gradle generateDocs
- Update documentation and run
Publish announcement
After release is complete post a message on the dev list, blog, tweet, sing about it. Make it public.
FAQ
http://www.apache.org/dev/release.html