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.
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:
Create a release candidate branch, release testing wiki page and notify developers to test.
git checkout -b release-4.0.0 git push origin release-4.0.0 |
If any online resources have been modified or added to during the release, these must be updated.
Create a new tab in the Fedora modules release plan spreadsheet.
Notes:
ORG=fcrepo4 REPO=fcrepo-module-auth-webac CURR=4.5.0 NEXT=4.5.1-SNAPSHOT |
git clone git@github.com:$ORG/$REPO.git cd $REPO git checkout rc-$CURR mvn release:clean |
If release:clean fails, you may need to revert the RC commit with git revert HEAD
. If the parent snapshot is not available, build an old version of fcrepo4 to populate it locally.
mvn release:prepare -DreleaseVersion=$CURR -DdevelopmentVersion=$NEXT -DautoVersionSubmodules=true -DpushChanges=false |
Resolve dependencies and set main versions to $CURR
and dev versions to $NEXT
Your GPG passphrase will not be masked in terminal. |
rm -rf ~/.m2/repository/org/fcrepo git checkout $REPO-$CURR # detached head state mvn clean install |
Up until this point, all of the changes made are strictly in your local repository and working directory. From this point on, the changes you make will be visible to the world and in some cases difficult to back-out of. |
git push origin rc-$CURR:release-$CURR git push origin --tags |
Go to https://github.com/fcrepo4/$REPO/releases/tag/$REPO-$CURR
mvn release:perform -DperformRelease -Dgoals=deploy |
As before, your GPG passphrase will not be masked in terminal. |
The following steps, once completed are final. They cannot be undone, revoked or altered. Only proceed if you've completed all the above steps and are absolutely certain the release is ready for publication. |
Click Staging Repositories in left navigation
Search for "fcrepo" in upper right search box (project will not have $REPO in title)
This will publish the artifacts to the Sonatype releases repository and start the process of syncing them with Maven Central, which may take several hours. When finished, they'll be available at http://repo1.maven.org/maven2/org/fcrepo.
mvn site-deploy -DskipTests |
The pages will be visible at http://$ORG.github.io/$REPO/site/$CURR/fcrepo/$REPO/.
For fcrepo4/fcrepo4 and fcrepo4-exts/fcrepo-camel, manually add links to the current releases. The easiest way to do this is to search for an old version number and copy/update for the current release.
|
git checkout master git merge rc-$CURR git push origin master |
Ontologies are released on their own schedule and do not need to be released. But they should be tagged with the current version when a release is performed, to make it easy to identify the version of the ontology that each release was using.
CURR=4.5.0 ORG=fcrepo4 REPO=fcrepo-webac-ontology git clone git@github.com:$ORG/$REPO cd $REPO git tag -a "$REPO-$CURR" -m "$REPO-$CURR" # except fcrepo4/ontology should be fcrepo-ontology-$CURR git push --tags |
Current, in-progress Fedora Repository Documentation wiki: https://wiki.duraspace.org/display/FEDORA4x
At the very minimum, update the following:
Note the version of Java against which the release was built.
If this is a new major or minor point release, copy the current, in-progress documentation to create the release wiki, then update accordingly. Mark the new pages as current, and update the pages in the previous documentation to indicate they are out-of-date.
Add the following header to the previous major release wiki space (see: Space Admin -> Themes -> Configure Theme)
{note:title=Old Release} This documentation covers an old version of Fedora. Looking for another version? [See all documentation|FF:Documentation]. {note} |
If this is a maintenance point release, create separate child release note pages for each release covered by the documentation.
Otherwise, post the release notes in the Release Notes page (see Fedora 4.0.0 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.
Fedora Repository site (Drupal): http://www.fedorarepository.org/
Let Carol Minton Morris know that the release is complete and can be announced.