...
- Follow the release order of the spreadsheet plan
- 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.fcrepo4-vagrant must have its 'install_scripts/fedora_camel_toolbox.sh' and 'install_scripts/config' scripts updated with non-SNAPSHOT non-LATEST version.
Variables Used
These variables will be used in the examples that follow. The exact values of $ORG,
$REPO, $CURR and $NEXT
will vary depending on which module and version is being released.
...
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 fcrepo to populate it locally.
Resolve dependencies and set main versions to $CURR
and dev versions to $NEXT
...
Code Block |
---|
rm -rf ~/.m2/repository/org/fcrepo git checkout $REPO-$CURR # detached head state mvn clean install i.e. > git checkout fcrepo-6.4.0 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. |
...
Note | |||||||
---|---|---|---|---|---|---|---|
As before, your GPG passphrase may not be masked in terminal.
|
Troubleshooting
Expand | ||
---|---|---|
| ||
| ||
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. |
- Go to https://oss.sonatype.org/index.html and log in
Click Staging Repositories in left navigation
Search for "fcrepo" in upper right search box (project will not have $REPO in title)
- Select repository and verify that $REPO is present in the Content tab
- Click Close, then Refresh, then Release
...
|
Warning | ||
---|---|---|
| ||
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. |
- Go to https://s01.oss.sonatype.org and log in
Click Staging Repositories in left navigation
Search for "fcrepo" in upper right search box (project will not have $REPO in title)
- Select repository and verify that $REPO is present in the Content tab
- Click Close, then Refresh, then Release
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 https://repo1.maven.org/maven2/org/fcrepo/.
Docker Release (fcrepo only)
From the cloned fcrepo repository home run the following:
Code Block |
---|
git clone git@github.com:fcrepo-exts/fcrepo-docker.git
cd fcrepo-docker
DOCKER_PASSWORD=<password> DOCKER_USERNAME=<username> ./build-and-push-to-dockerhub.sh ../fcrepo-webapp/target/fcrepo-webapp-${CURR}.war latest ${CURR} |
Github Release - part 2
Go to
https://github.com/fcrepo4fcrepo/$REPO/releases/tag/fcrepo-$CURR
- Click Edit tag, and update title to "Release $CURR"
- Attach fcrepo-webapp-$CURR binaries and checksums that have been published to Maven Central to the Github release
Build the fcrepo-webapp-$CURR-jetty-console.jar for the release using
Code Block mvn clean install -Pone-click -pl fcrepo-webapp
- Create checksums for the fcrepo-webapp-$CURR-jetty-console and attach the binary and checksums to the Github release.
Note: The checksum files should be of the format "[checksum] [filename]" (MacOSX's md5 requires the use of the -r argument to produce the correct format. I.e.
md5 -r fcrepo-webapp-5.0.2-jetty-console.jar >> fcrepo-webapp-5.0.2-jetty-console.jar.md5
).Code Block jarPath=fcrepo-webapp/target/fcrepo-webapp-$CURR-jetty-console.jar md5 -r ${jarPath} > ${jarPath}.md5 shasum ${jarPath}> ${jarPath}.sha1
- Click Publish Release
Github Pages
...
Code Block |
---|
mvn site-deploy -DskipTests |
fcrepo4 fcrepo pages will be visible at http://docs.fcrepo.org/site/$CURR/$REPO/
Other module pages will be located at: $ORG.github.io/$REPO/site/$CURR/fcrepo/$REPO
For fcrepo4fcrepo/fcrepo4 fcrepo and fcrepo4fcrepo-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.
Troubleshooting
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Push Release Branch to Maintenance
...
The release branch has changes made since code freeze. It also contains the update to the version numbers for future development.
...
Ensure that your commit history matches the release branch's commit history, except for the two additional commits.
- Changing from SNAPSHOT version to release version. Something like [maven-release-plugin] prepare release $REPO-$CURR
- Changing from release version to next development version. Something like [maven-release-plugin] prepare for next development iteration
...
If this appears correct, you can push your release branch on to the maintenance branch.
...