Main release
- Make sure that all pull requests required for the release are merged.
- Pull all changes and create a new branch from the master with the name `tmp-release-vX.Y.Z`, where X.Y.Z - a new version of the module
- Use versions-maven-plugin to update module dependencies in pom.xml (only stable versions, without snapshot, betta, alfa, etc.).
Run mvn clean verify to check that new dependencies versions do not affect functionality.
- Commit changes with the commit message 'Update dependencies'.
Update NEWS with changes that are included in the release (use the template below).
- Add information about the release in RELEASE.md file.
- Commit changes with the commit message 'Update NEWS'.
- Run
mvn release:branch
or use the built-in IDE Maven plugin to create a release branch.- The branch name should be in the format
release/vX.Y
- The new development version should be
X.Y+1.0-SNAPSHOT.
- The branch name should be in the format
- Push created commits to the repository and create a pull request. Wait for the review of your PR and merge it.
- Checkout the
release/vX.Y
release branch. Then runmvn clean release:prepare
or use the built-in Maven plugin to prepare the release.- Release version - X.Y.0
- Release tag - vX.Y.0
- New version - vX.Y.1-SNAPSHOT
- Push the release branch and the tag to the repository.
- Go to Jenkins https://jenkins-aws.indexdata.com/job/folio-org/job/<module-name>/view/tags/ and run the pipeline for the new tag.
- After the pipeline job is successfully finished you can create a release on GitHub.
- Notify the community in the release channel about the release.
- Close the release ticket:
- Set Fix Version = X.Y.0 (if it does not exist ask SM or TL to create it)
- Set Release
- Set Fix Version to all tickets that were included in the release.
- Release version in Jira and preapre new versions
Bugfix/Hotfix Release
- Make sure that all pull requests required for the release are merged.
- Checkout to release/vX.Y branch.
- Create a new branch with the name `tmp-release-vX.Y.Z`, where X.Y.Z - a new version of the module
- Cherry-Pick required commits.
Run mvn clean verify to check that all tests are passed.
Update NEWS with changes that are included in the release (use the template below).
- Commit changes with the commit message 'Update NEWS'.
- Run
mvn release:clean release:prepare
or use the built-in Maven plugin to prepare the release. (Usemvn release:clean -DskipTests -Darguments=-DskipTests release:prepare
in case of some problems with local maven tests run)- Release version - X.Y.Z
- Release tag - vX.Y.Z
- New version - vX.Y.Z+1-SNAPSHOT
- Push the branch and the tag to the repository and create a pull request. Wait for the review of your PR and merge it.
- Go to Jenkins https://jenkins-aws.indexdata.com/job/folio-org/job/<module-name>/view/tags/ and run the pipeline for the new tag.
- After the pipeline job is successfully finished you can create a release on GitHub.
- Notify the community in the release channel about the release.
- Close the release ticket:
- Set Fix Version = X.Y.Z (if it does not exist ask SM or TL to create it)
- Set Release
- Set Fix Version to all tickets that were included in the release.
- Release version in Jira and preapre new versions