This document is intended to be used and kept up to date by the Fedora Release Manager. It details the steps necessary to perform an official release of Fedora.
The release version in the documentation below is identified as
X.Y
, replace this in the instructions with the current release (eg 4.0.1).
X is the major point version, Y is the minor point version, and Z is the maintenance point.
The previous release version (snapshot previous documentation) is identified as
A.B
, replace this with the previous release (eg 4.0).
To make sure release day goes smoothly, you should ensure that:
<settings> ... <servers> ... <server> <id>sonatype-nexus-snapshots</id> <username>your-jira-id</username> <password>your-jira-pwd</password> </server> <server> <id>sonatype-nexus-staging</id> <username>your-jira-id</username> <password>your-jira-pwd</password> </server> <server> <id>github</id> <username>your-github-id</username> <password>your-github-pwd</password> </server> </servers> ... </settings> |
Encrypted passwords works for the plugin that references the sonatype-nexus passwords, but NOT the one that uses github. To avoid a cryptic error, enter your github password in plaintext. |
The test plan should also be ready prior to code freeze.
It should include:
If any online resources have been modified or added to during the release, these must be updated.
Make sure the KEYS file in subversion is up-to-date with the latest, exported public keys of the committers (and most importantly, the release manager). For more information on this file, see this page.
For *nix systems use the following command to add a missing key to the KEYS file:
(gpg --list-sigs AB76196 && gpg -a --export AB76196) >> KEYS
In order to build the release make sure that:
Run the following commands to generate and upload all built artifacts to the Sonatype staging repository:
mvn release:clean mvn release:prepare -DdryRun -DreleaseVersion=X.X.X -DdevelopmentVersion=X.X.Y-SNAPSHOT -DautoVersionSubmodules mvn release:clean && mvn release:prepare -DreleaseVersion=X.X.X -DdevelopmentVersion=X.X.Y-SNAPSHOT -DautoVersionSubmodules -DpushChanges=false |
mv ~/.m2/repository ~/.m2/repository-yyyy-mm-dd |
git checkout <release-tag> mvn clean install |
git push origin --tags |
mvn release:perform -DperformRelease -Dgoals=deploy |
Login to https://oss.sonatype.org
Find the staging repository, check that it looks good, and "Close" it. Then "Release" it. This will publish the artifacts to the Sonatype releases repository and start the process of syncing them with central. The artifacts may take several hours to reach central. When finished, they'll be available at http://repo1.maven.org/maven2/org/fcrepo.
Checkout release tag for publishing the release documentation
mvn site-deploy -DskipTests ** Resume from a given module, if necessary mvn site-deploy -DskipTests -rf <module> |
Under GitHub account/releases, select "Draft new release".
Create MD5 and SHA1 files for each of the release artifacts
sha1sum fcrepo-webapp-4.0.0-alpha-3.war |cut -f1 -d' ' > fcrepo-webapp-4.0.0-alpha-3.war.sha1 md5sum fcrepo-webapp-4.0.0-alpha-3.war |cut -f1 -d' ' > fcrepo-webapp-4.0.0-alpha-3.war.md5 sha1sum fcrepo-webapp-4.0.0-alpha-3-jetty-console.war |cut -f1 -d' ' > fcrepo-webapp-4.0.0-alpha-3-jetty-console.war.sha1 md5sum fcrepo-webapp-4.0.0-alpha-3-jetty-console.war |cut -f1 -d' ' > fcrepo-webapp-4.0.0-alpha-3-jetty-console.war.md5 |
Release other projects that are related to the main codebase, following the same process as outlined above.
Current Fedora Repository Documentation wiki: https://wiki.duraspace.org/display/FEDORA36
At the very minimum, update the following:
If this is a new major or minor point release, copy the previous point release documentation to create the current wiki (/FEDORA XY ), then update accordingly. Mark the new pages as current, and update the pages in the previous documentation to indicate they are out-of-date.
If this is a maintenance point release, create separate child release note pages for each release covered by the documentation (see https://wiki.duraspace.org/display/FEDORA36/Release+Notes for an example).
Otherwise, post the release notes in the Release Notes page (see https://wiki.duraspace.org/display/FEDORA35/Release+Notes for an example).
Update any other documentation as needed, per changes/features added with this release.
Make sure the license and copyright information is up-to-date with this release.
This section needs updating - A.Woods 2014-01-02 |
Fedora Repository site (Drupal): http://www.fedorarepository.org/
Sitemap: http://www.fedora-commons.org/sitemap
In the Software section:
On the homepage:
Let Carol Minton Morris know that the release is complete and can be announced.
Depending on the significance of the release, the announcement will be disseminated in various forms to: