...
- 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.
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 | |||||||
---|---|---|---|---|---|---|---|
|
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 |