Versions Compared

Key

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

...

Ensure you have a SSH key setup locally and in GitHub

  • Create SSH Key
    • <to-do>
  • Setup on GitHub
    • <to-do>

Prepare and distribute test plan

...

  • Go to https://github.com/vivo-project/$REPO/releases/

  • Click "Draft a new release", and update title to "Release $REPO-$CURR"
  • Attach appropriate artifacts
  • Attach artifact MD5 files (e.g. artifact = jena2tools-1.2.0.jar, MD5 = jenatools-1.2.0.jar.md5)
  • If appropriate, attach binaries and checksums that have been published to Maven Central
  • Click Publish Release

Sonatype Release

Release the build artifacts to the Sonatype repository.

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

Because VIVO and Vitro does not use the standard mvn release:prepare you will need to create a release.properties file for both.  They should be saved into the base directory of their respective projects.  Be sure to update the CURR and NEXT to the ones being used for this release.

Code Block
titleVIVO - release.properties
linenumberstrue
#release configuration
projectVersionPolicyId=default
project.rel.org.vivoweb\:vivo-installer-home=1.11.0
project.dev.org.vivoweb\:vivo-home=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:vivo-webapp=1.11.1-SNAPSHOT
pushChanges=false
project.rel.org.vivoweb\:vivo-project=1.11.0
project.rel.org.vivoweb\:vivo-api=1.11.0
project.dev.org.vivoweb\:vivo-installer=1.11.1-SNAPSHOT
remoteTagging=true
scm.commentPrefix=[maven-release-plugin] 
project.dev.org.vivoweb\:vivo-installer-webapp=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:vivo-api=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:vivo-project=1.11.1-SNAPSHOT
scm.url=scm\:git\:git@github.com\:vivo-project/VIVO.git
scm.tagNameFormat=@{project.artifactId}-@{project.version}
project.rel.org.vivoweb\:vivo-installer-webapp=1.11.0
project.rel.org.vivoweb\:vivo-home=1.11.0
scm.tag=vivo-1.11.0
project.rel.org.vivoweb\:vivo-webapp=1.11.0
project.dev.org.vivoweb\:vivo-installer-home=1.11.1-SNAPSHOT
exec.snapshotReleasePluginAllowed=false
project.rel.org.vivoweb\:vivo-installer=1.11.0


Code Block
titleVitro - release.properties
linenumberstrue
#release configuration
projectVersionPolicyId=default
project.rel.org.vivoweb\:vitro-installer-home=1.11.0
project.rel.org.vivoweb\:checkstyle=1.11.0
project.dev.org.vivoweb\:vitro-home=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:vitro-webapp=1.11.1-SNAPSHOT
pushChanges=false
project.rel.org.vivoweb\:vitro-project=1.11.0
project.rel.org.vivoweb\:vitro-api=1.11.0
project.dev.org.vivoweb\:vitro-installer=1.11.1-SNAPSHOT
remoteTagging=true
scm.commentPrefix=[maven-release-plugin] 
project.dev.org.vivoweb\:vitro-installer-webapp=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:checkstyle=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:vitro-api=1.11.1-SNAPSHOT
project.rel.org.vivoweb\:vitro-dependencies=1.11.0
project.dev.org.vivoweb\:vitro-project=1.11.1-SNAPSHOT
scm.url=scm\:git\:git@github.com\:vivo-project/Vitro.git
scm.tagNameFormat=@{project.artifactId}-@{project.version}
project.rel.org.vivoweb\:vitro-installer-webapp=1.11.0
project.rel.org.vivoweb\:vitro-home=1.11.0
scm.tag=vitro-1.11.0
project.rel.org.vivoweb\:vitro-webapp=1.11.0
project.dev.org.vivoweb\:vitro-installer-home=1.11.1-SNAPSHOT
project.dev.org.vivoweb\:vitro-dependencies=1.11.1-SNAPSHOT
exec.snapshotReleasePluginAllowed=false
project.rel.org.vivoweb\:vitro-installer=1.11.0


Currently the remaining projects can start with this step.  While gpg.keyname isn't required if you have a global key setup it is recommended.  You must skip checkstyle during a deploy.

Code Block
mvn release:perform -DperformRelease -Dgoals=deploy -e -Darguments="-Dgpg.keyname=XXXXYYYYXXXXYYYY -Dcheckstyle.skip=true"


Note

As

Note

As before, your GPG passphrase may not be masked in terminal.

Expand
titleHave more than one GPG key. Click here to expand...

 If you have more than one personal key on your GPG keyring, you can specify the correct key by adding

Code Block
-Darguments=-Dgpg.keyname=<Your LONG FORM Key ID>

to the above mvn command.


...

Push Release Branch to develop and 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. 

  1. Changing from SNAPSHOT version to release version. Something like [maven-release-plugin] prepare release $REPO-$CURR
  2. 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.

...

Merge into 'develop' branch

Code Block
#For vivo and vitro the main branch is develop
#For#For vivo, vitro, vivo languages, vitro languages, jenatools, and orcid-api-client the main branch is master
#Needs to be completed for each project in release


git checkout develop
git pull
git checkout rel-${CURR}-RC
git rebase -i develop
git push origin develop

or

git checkout rel-${CURR}-RC
git checkout develop
git pull
git merge rel-${CURR}-RC
git push origin develop

Clean-up RC Tags

...