This document is intended to be used and kept up to date by the VIVO Release Manager. It details the steps necessary to perform an official release of VIVO.
As agreed by the Steering Group, VIVO follows the Semantic Versioning guidelines - http://semver.org/
To make sure release day goes smoothly, you should ensure that:
Vitro and VIVO root pom.xml already has the correct staging and snapshot repositories listed in the OSS parent's '<distributionManagement>' section. In order to deploy, you will need to add your Sonatype OSS username and password to your local ~/.m2/settings.xml
file. For example:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <profiles> <id>ossrh</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <gpg.keyname>YourKeyID</gpg.keyname> <gpg.passphrase>YourKeyPassphrase</gpg.passphrase> <gpg.defaultKeyring>false</gpg.defaultKeyring> <gpg.useagent>true</gpg.useagent> <gpg.lockmode>never</gpg.lockmode> <gpg.homedir>YourGPGDir</gpg.homedir> <gpg.publicKeyring>YourGPGDir/pubring.gpg</gpg.publicKeyring> <gpg.secretKeyring>YourGPGDir/secring.gpg</gpg.secretKeyring> </properties> </profiles> <servers> <!--Login info for Sonatype SnapShot repository--> <server> <id>ossrh</id> <username>YourSonatypeUsername</username> <password>YourSonatypePassword</password> </server> <server> <id>sonatype-nexus-snapshots</id> <username>YourSonatypeUsername</username> <password>YourSonatypePassword</password> </server> <server> <id>github</id> <username>your-github-id</username> <password>your-github-pwd</password> </server> </servers> </settings> |
If you don't yet have a ~/.m2/settings.xml
file, you should create one, and copy the full contents above (obviously make sure to put in your username and password, and GPG details).
hkp://pgp.mit.edu
, as this is the Key Server Sonatype uses for verification:gpg --keyserver hkp://pgp.mit.edu --send-keys [yourKeyID]
[yourKeyId]
can be found by running the following command and copying the alpha-numeric string after the "/" on the "pub" line
gpg --list-keys
mkdir -p ~/.ssh
ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
ssh-keygen -t rsa -C "user.email"
$ cat ~/.ssh/id_rsa.pub
and copy it.#!/bin/bash # RC define common variables Script export RC_TARGET_DIR=RC export ORG=vivo-project export PERSONAL_ACCESS_TOKEN=XXXXXXXX export BRANCH=main export RC_VERSION=1.14.0 export RC_VERSION_MINOR=1.14 export RC_NEXT_SNAPSHOT=1.14.1 RC_NUM=5 export Vitro_REPO=Vitro export Vitro_TAG=vitro export Vitro_RC_NUM=${RC_NUM} export VIVO_REPO=VIVO export VIVO_TAG=vivo export VIVO_RC_NUM=${RC_NUM} |
#!/bin/bash # RC define common variables Script export RC_TARGET_DIR=RC export ORG=vivo-project export PERSONAL_ACCESS_TOKEN=XXXXXXXX export BRANCH=main export RC_VERSION=1.14.0 export RC_VERSION_MINOR=1.14 export RC_NEXT_SNAPSHOT=1.14.1 RC_NUM=5 export Vitro_REPO=Vitro export Vitro_TAG=vitro export Vitro_RC_NUM=${RC_NUM} export VIVO_REPO=VIVO export VIVO_TAG=vivo export VIVO_RC_NUM=${RC_NUM} |
Click Staging Repositories in left navigation under Build Promotion which will open a new tab
Search for "vivoweb" in upper right search box (project will not have $REPO in title)
Click Staging Repositories in left navigation under Build Promotion which will open a new tab
Search for "vivoweb" in upper right search box (project will not have $REPO in title)
#!/bin/bash # RC define common variables Script export RC_TARGET_DIR=RC export ORG=vivo-project export PERSONAL_ACCESS_TOKEN=XXXXXXXX export BRANCH=main export RC_VERSION=1.14.0 export RC_VERSION_MINOR=1.14 export RC_NEXT_SNAPSHOT=1.14.1 RC_NUM=5 export Vitro_REPO=Vitro export Vitro_TAG=vitro export Vitro_RC_NUM=${RC_NUM} export VIVO_REPO=VIVO export VIVO_TAG=vivo export VIVO_RC_NUM=${RC_NUM} |
Let Dragan Ivanovic know that the release is complete and can be announced.
#Verify that your GPG key is in your ring gpg --list-secret-keys #If the key isn't listed import the private key your previously created gpg --import name-of-private-key.asc #List the keys again but in keyid LONG format gpg --list-secret-keys --keyid-format LONG #Take the keyid and setup git to use it as your global default. git config --global user.signingkey YYYYXXXXYYYYXXXX |