Versions Compared

Key

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

...

Code Block
titleVariable release number
RC_VERSION=1.11.02


Using the above variable, complete the below git commands for each module being released.   The modules to be released are shown in the VIVO modules release plan.   A new tab may need to be added for this release.   When the steps below are complete for a specific module, change the color to green, so that others know what's been done. 

NOTE: The value of RC_VERSION will vary for each release.

Code Block
git checkout <develop<master -or- maintenance-branch>
git pull
git push origin <develop<master -or- maintenance-branch>:rel-${RC_VERSION}-RC

...

Code Block
#!/bin/bash
# RC Script

RC_VERSION=1.11.02
RC_NUM=1

git checkout develop
git pull
git push origin develop:rel-${RC_VERSION}-RC


git checkout rel-${RC_VERSION}-RC
git tag -a "rel-${RC_VERSION}-RC-${RC_NUM}" -m "rel-${RC_VERSION}-RC-${RC_NUM}"
git push origin --tags


# Created Branch and Tag Examples
# (Branch) https://github.com/vivo-project/VIVO/tree/rel-1.11.02-RC
# (Tag) https://github.com/vivo-project/VIVO/tree/rel-1.11.02-RC-1
# (Branch) https://github.com/vivo-project/Vitro/tree/rel-1.11.02-RC
# (Tag) https://github.com/vivo-project/Vitro/tree/rel-1.11.02-RC-1



Some of the previous steps can be done directly into github interface as described in following tutorials:

...

No Format
ORG=vivo-project
REPO=VIVO
CURR=1.1011.01
NEXT=1.11.02-SNAPSHOT

Github Release

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

...

Code Block
titleVIVO - release.properties
linenumberstrue
#release configuration
projectVersionPolicyId=default
project.rel.org.vivoweb\:vivo-installer-home=1.11.01
project.dev.org.vivoweb\:vivo-home=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:vivo-webapp=1.11.12-SNAPSHOT
pushChanges=false
project.rel.org.vivoweb\:vivo-project=1.11.01
project.rel.org.vivoweb\:vivo-api=1.11.01
project.dev.org.vivoweb\:vivo-installer=1.11.12-SNAPSHOT
remoteTagging=true
scm.commentPrefix=[maven-release-plugin] 
project.dev.org.vivoweb\:vivo-installer-webapp=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:vivo-api=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:vivo-project=1.11.12-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.01
project.rel.org.vivoweb\:vivo-home=1.11.01
scm.tag=vivo-1.11.01
project.rel.org.vivoweb\:vivo-webapp=1.11.01
project.dev.org.vivoweb\:vivo-installer-home=1.11.12-SNAPSHOT
exec.snapshotReleasePluginAllowed=false
project.rel.org.vivoweb\:vivo-installer=1.11.01


Code Block
titleVitro - release.properties
linenumberstrue
#release configuration
projectVersionPolicyId=default
project.rel.org.vivoweb\:vitro-installer-home=1.11.01
project.rel.org.vivoweb\:checkstyle=1.11.01
project.dev.org.vivoweb\:vitro-home=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:vitro-webapp=1.11.12-SNAPSHOT
pushChanges=false
project.rel.org.vivoweb\:vitro-project=1.11.01
project.rel.org.vivoweb\:vitro-api=1.11.01
project.dev.org.vivoweb\:vitro-installer=1.11.12-SNAPSHOT
remoteTagging=true
scm.commentPrefix=[maven-release-plugin] 
project.dev.org.vivoweb\:vitro-installer-webapp=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:checkstyle=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:vitro-api=1.11.12-SNAPSHOT
project.rel.org.vivoweb\:vitro-dependencies=1.11.01
project.dev.org.vivoweb\:vitro-project=1.11.12-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.01
project.rel.org.vivoweb\:vitro-home=1.11.01
scm.tag=vitro-1.11.01
project.rel.org.vivoweb\:vitro-webapp=1.11.01
project.dev.org.vivoweb\:vitro-installer-home=1.11.12-SNAPSHOT
project.dev.org.vivoweb\:vitro-dependencies=1.11.12-SNAPSHOT
exec.snapshotReleasePluginAllowed=false
project.rel.org.vivoweb\:vitro-installer=1.11.01


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.

...

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.

...

Code Block
#For vivo and vitro the main branch is develop
#For 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 developmaster
git pull
git checkout rel-${CURR}-RC
git rebase -i developmaster
git push origin developmaster

or

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

Clean-up RC Tags

Code Block
git tag #view list of tags to verify it exists
git tag -d rel-${CURR}-RC-${RCNUM}
git push origin :refs/tags/rel-${CURR}-RC-${RCNUM}


#Examples

#For vivo, vitro, vivo languages, vitro languages
git tag #view list of tags to verify it exists
git tag -d rel-1.1011.01-RC-1
git push origin :refs/tags/rel-1.1011.01-RC-1

#For jenatools
git tag #view list of tags to verify it exists
git tag -d rel-1.2.0-RC-1
git push origin :refs/tags/rel-1.2.0-RC-1

#For orcid-api-client
git tag #view list of tags to verify
git tag -d rel-0.6.3-RC-1
git push origin :refs/tags/rel-0.6.3-RC-1

...