Release Process of Providence

The stages done to make a release.

Making a SNAPSHOT release

Snapshot releases can be made directly from the master branch.

  • Run # mvn clean deploy from master at the desired commit.

Making a version release

Proper releases are done with a branch cut.

Check for dependency updates

Run the maven versions plugin to see what has been updated of dependencies and plugins. See if updates should be done. Usually it's better to depend on newer versions, as you may drag in older versions into other projects that misses features or has specific bugs.

mvn -Pall versions:display-dependency-updates
mvn -Pall versions:display-plugin-updates

Making the release cut.

# Do the maven release:
mvn -Pall -DskipTests=true -Darguments="-DskipTests=true -T 1C" release:prepare
mvn -Plib -DskipTests=true -Darguments="-DskipTests=true -T 1C" release:perform
mvn -Pall release:clean
git fetch origin

If the artifacts found at the Nexus Repository Manager are correct, you're ready to make the release. If not a git hard rollback is needed (to remove release version, tag and commits). First make the actual binary release:

# And upload these files to github release, then upload to bintray with:
./upload-bintray.sh
# And follow links to publish new artifacts.

Then update and release the gradle plugin. You may need to wait 20+ minutes for the maven indices to be updates with the providence release before you can do this step:

  • Go to providence-gradle-plugin repository.
  • Update version in gradle.properties and in the README.md file.
# in the providence-gradle-plugin repository:
./gradlew clean test publishPlugins

Now the release is complete.