Skip to content
Permalink
Browse files

doc (#323): document release process.

  • Loading branch information...
iocanel committed Aug 26, 2019
1 parent 8e44847 commit b17bc1f10fcb3165be8713cfa920985d1b78166a
Showing with 63 additions and 0 deletions.
  1. +63 −0 release-guidelines.md
@@ -0,0 +1,63 @@
# Release Guidelines

The project is a typical maven project that is released using the `maven-release-plugin`.

## Preparation

The project is released via sonatype.
A sonatype account is required and the account needs to be added to https://issues.sonatype.org/browse/OSSRH-49341.

The credentials of that account need to be configured inside the local settings.xml (usually under ~/.m2/settings.xml).
The id of the repository is `oss-sonatype-staging`. So a matching server entry in the settings xml is required:


<server>
<id>oss-sonatype-staging</id>
<username>your_username</username>
<password>your_password</password>
</server>

## Manual approach

As all maven projects, this project can be manually released with a command sequence, like:

mvn release:clean release:prepare -Prelease -DpushChanges=false -Dtag=<release version>
mvn release:perform -Prelease -DconnectionUrl=scm:git:file://`pwd`/.git -DreleaseVersion=<release_version> -Dtag=<release_version>


After these steps are performed:

- log in to https://oss.sonatype.org
- find the staging repository
- click `close`
- click `release`


Finally, you need to push commits and tags.

git push origin
git push --tags origin


## Automated approach

To automatically release the project, a release script is provided.
The script is meant to perfrom all the steps above, including detecting the next release version (next micro release), closing and releasing repositories.

To use the script simply run:

./release.sh

To bump the major or minor version:

./release.sh --release-version 0.X.0 --dev-version 0.X-SNAPSHOT

Note, that release and dev versions can be set individually, its just that we normalize SNAPSHOT to the major version point, to avoid constantly changing the dev version (and thus reducing potential scm conflicts).


## Cleanup

Whenever, the major version is changed, its a good idea, to also set the dev version of all modules that are not included in the release profile (e.g. examples and incubator modules).


mvn versions:set -DnewVersion=0.7-SNAPSHOT -Pwith-examples -Pwith-incubator

0 comments on commit b17bc1f

Please sign in to comment.
You can’t perform that action at this time.