Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Follow the release order of the spreadsheet plan
  2. Some projects need pom.xml dependency version properties to be updated prior to release (e.g. fcrepo-camel-toolbox). This should be documented starting with 4.4.1.

Variables Used

These variables will be used in the examples that follow.  The exact values of $ORG and $REPO will vary depending on which module is being released.

Code Block
ORG=fcrepo4
REPO=fcrepo-module-auth-webac
CURR=4.5.0
NEXT=4.5.1-SNAPSHOT

Github Release

Perform a clean checkout of the code from Github and prepare the release.

Code Block
git clone git@github.com:$ORG/$REPO.git
cd $REPO
git checkout rc-$CURR
mvn release:clean

...

Note

Your GPG passphrase will not be masked in terminal.

 

Remove your local copies of Fedora artifacts to be sure of a clean build, and build the release.

Code Block
rm -rf ~/.m2/repository/org/fcrepo
git checkout $REPO-$CURR # detached head state
mvn clean install
Warning

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. 

 

Push the changes to Github.

Code Block
git push origin rc-$CURR:release-$CURR
git push origin --tags

...

  • Go to https://github.com/fcrepo4/$REPO/releases/tag/$REPO-$CURR

  • Click Edit tag, and update title to "Release $CURR"
  • If appropriate, attach binaries and checksums at the bottom
  • Click Publish Release

Sonatype Release

Release the build artifacts to the Sonatype repository.

Code Block
mvn release:perform -DperformRelease -Dgoals=deploy

...

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.

Github Pages

Update the Github Pages documentation:

Code Block
mvn site-deploy -DskipTests

...

Expand
Info
titleError creating blob: API rate limit exceeded

Github only allows a certain number of requests per hour.  Once that number is hit you'll have to wait an hour before resuming your operation.  The site documentation may exhaust this limit several times.

Info

If you get the following error:

Error creating blob: You have triggered an abuse detection mechanism and have been temporarily 
blocked from calling the API. Please retry your request again later. (403)

You may consider using the patched version of site-maven-plugin: https://github.com/awoods/maven-plugins/commit/c62c7b168375e3bfaf0dec7de2fa5fc03d8ed173

Merge With Master

Merge the release into the master branch to update the version numbers for future development.

Code Block
git checkout master
git merge rc-$CURR
git push origin master

Ontologies

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.

Code Block
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

Complete the Duraspace wiki documentation updates

Current, in-progress Fedora Repository Documentation wiki: https://wiki.duraspace.org/display/FEDORA4x

...

Let Carol Minton Morris know that the release is complete and can be announced.

 

Ontologies

 

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.

 
Code Block
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