Skip to content

Release Process

Artur Souza edited this page Mar 10, 2020 · 40 revisions

Release by GitHub Actions

  1. Latest build in master branch
    • maven pom version includes -SNAPSHOT suffix
    • Push snapshot package to nexus repository
  2. Release Candidate build in release-X.Y branch
    • maven pom version includes X.Y.Z-rc-W suffix
    • tagging vX.Y.Z-rc-W triggers build to publish X.Y.Z-rc-W to nexus snapshot repository
  3. Release build in release-X.Y branch
    • maven pom version MUST NOT have any suffix
    • tagging vX.Y.Z triggers build to publish X.Y.Z to nexus central repository

Release steps

  1. Optionally, release a beta version.
git checkout -b release-X.Y.Z-beta

mvn versions:set -DnewVersion=X.Y.Z-beta-Z
mvn versions:commit

# Change dapr.sdk.version in sdk-tests/pom.xml to point to X.Y.Z-beta-Z manually or use the command below:
sed -i 's/<dapr.sdk.version>.*<\/dapr.sdk.version>/<dapr.sdk.version>X.Y.Z-beta-Z<\/dapr.sdk.version>/g' sdk-tests/pom.xml

git commit -m "Release X.Y.Z-beta-Z" -a
git push origin release-X.Y.Z-beta
git tag vX.Y.Z-beta-Z
git push origin --tags
  1. Create release-X.Y branch and push
git checkout -b release-X.Y

mvn versions:set -DnewVersion=X.Y.Z-rc-W
mvn versions:commit

# Change dapr.sdk.version in sdk-tests/pom.xml to point to X.Y.Z-rc-W manually or use the command below:
sed -i 's/<dapr.sdk.version>.*<\/dapr.sdk.version>/<dapr.sdk.version>X.Y.Z-rc-W<\/dapr.sdk.version>/g' sdk-tests/pom.xml

git commit -m "Release X.Y.Z-rc-W" -a
git push origin release-X.Y

  1. Tag RC version (vX.Y.Z-rc-W)
git tag vX.Y.Z-rc-W
git push origin --tags
  1. Prepare next release: Update version in master branch
git checkout master
git pull
git checkout -b next-release
mvn versions:set -DnewVersion=X.Y.Z-SNAPSHOT
mvn versions:commit

# Change dapr.sdk.version in sdk-tests/pom.xml to point to X.Y.Z-rc-W manually or use the command below:
sed -i 's/<dapr.sdk.version>.*<\/dapr.sdk.version>/<dapr.sdk.version>X.Y.Z-SNAPSHOT<\/dapr.sdk.version>/g' sdk-tests/pom.xml

git commit -m "Upgrade the version to X.Y.Z-SNAPSHOT" -a
git push origin next-release
  1. Prepare next release: Create PR from next-release branch to master branch

  2. GitHub Actions will build and publish RC pkgs to Nexus OSS repository

  3. Test RC builds and fix the bugs

  4. Repeat from step 4 to step 6 until all bugs are fixed.

  5. Remove suffix by using mvn command

mvn versions:set -DnewVersion=X.Y.Z
# Change dapr.sdk.version in sdk-tests/pom.xml to point to X.Y.Z-rc-W manually or use the command below:
sed -i 's/<dapr.sdk.version>.*<\/dapr.sdk.version>/<dapr.sdk.version>X.Y.Z<\/dapr.sdk.version>/g' sdk-tests/pom.xml
mvn versions:commit
  1. Push the change to release-X.Y
git commit -m "Release X.Y.Z" -a
git push origin release-X.Y
  1. Update Javadocs website
git rm -rf docs
mvn clean install
mvn site-deploy
git commit -m "Generate updated javadocs" -a
git push origin release-X.Y
git checkout master
git pull
git checkout -b update_javadocs
git cherry-pick release-X.Y
git push origin update_javadocs
# Create PR into master and merge it.
  1. Create version tag and push it
git checkout release-X.Y
git tag vX.Y.Z
git push origin --tags
  1. CI will release final build to central repository

Version naming:

Naming convention is inspired by the one used in JUnit

  • Preview prior to a release candidate (optional): X.Y.Z-beta-W
  • Release candidate: X.Y.Z-rc-W
  • Release: X.Y.Z
Clone this wiki locally