- 
                Notifications
    
You must be signed in to change notification settings  - Fork 224
 
Release Process
        Artur Souza edited this page Oct 3, 2023 
        ·
        42 revisions
      
    - Latest build in 
masterbranch- maven pom version includes 
-SNAPSHOTsuffix - Push snapshot package to nexus repository
 
 - maven pom version includes 
 - Release Candidate build in 
release-X.Ybranch- maven pom version includes 
X.Y.Z-rc-Wsuffix - tagging 
vX.Y.Z-rc-Wtriggers build to publishX.Y.Z-rc-Wto nexus snapshot repository 
 - maven pom version includes 
 - Release build in 
release-X.Ybranch- maven pom version MUST NOT have any suffix
 - tagging 
vX.Y.Ztriggers build to publishX.Y.Zto nexus central repository 
 
- Optionally, release a beta version.
 
# Set the two environment variables below.
export DAPR_JAVA_SDK_RELEASE="X.Y.Z-beta"
export DAPR_JAVA_SDK_RC_COUNT="1" #Incremented count like 1, 2, 3, etc..
export DAPR_JAVA_SDK_RELEASE_BRANCH="release-${DAPR_JAVA_SDK_RELEASE}"
export DAPR_JAVA_SDK_VERSION="${DAPR_JAVA_SDK_RELEASE}-${DAPR_JAVA_SDK_RC_COUNT}"
git checkout -b $DAPR_JAVA_SDK_RELEASE_BRANCH
git fetch upstream
git reset --hard upstream/master
./scripts/update_sdk_version.sh
git commit -s -m "Release $DAPR_JAVA_SDK_VERSION" -a
git push upstream $DAPR_JAVA_SDK_RELEASE_BRANCH
git tag v$DAPR_JAVA_SDK_VERSION
git push upstream --tags
- 
Update the
build.yamlandvalidate.yamlwith the latest dapr runtime and CLI RCs. - 
Create
release-X.Ybranch and push 
# Set the three environment variables below.
export DAPR_JAVA_SDK_RELEASE="X.Y"
export DAPR_JAVA_SDK_PATCH_VERSION="0" #Incremented count like 0, 1, 2, 3, etc..
export DAPR_JAVA_SDK_RC_COUNT="1" #Incremented count like 1, 2, 3, etc..
export DAPR_JAVA_SDK_RELEASE_BRANCH="release-${DAPR_JAVA_SDK_RELEASE}"
export DAPR_JAVA_SDK_VERSION="${DAPR_JAVA_SDK_RELEASE}.${DAPR_JAVA_SDK_PATCH_VERSION}-rc-${DAPR_JAVA_SDK_RC_COUNT}"
git checkout -b $DAPR_JAVA_SDK_RELEASE_BRANCH
git fetch upstream
git reset --hard upstream/master
./scripts/update_sdk_version.sh
git commit -s -m "Release $DAPR_JAVA_SDK_VERSION" -a
git push upstream $DAPR_JAVA_SDK_RELEASE_BRANCH
- Tag RC version (vX.Y.Z-rc-W)
 
git tag v$DAPR_JAVA_SDK_VERSION
git push upstream v$DAPR_JAVA_SDK_VERSION
- Prepare next release: Update version in master branch. Where 
NisY+1. 
# Set the two environment variables below.
export DAPR_JAVA_SDK_NEXT_RELEASE="X.N"
export DAPR_JAVA_SDK_NEXT_PATCH_VERSION="0" #Incremented count like 0, 1, 2, 3, etc..
export DAPR_JAVA_SDK_NEXT_VERSION="${DAPR_JAVA_SDK_NEXT_RELEASE}.${DAPR_JAVA_SDK_NEXT_PATCH_VERSION}-SNAPSHOT"
git checkout -b next-release-${DAPR_JAVA_SDK_NEXT_VERSION}
git fetch upstream
git reset --hard upstream/master
./scripts/update_sdk_version.sh
git commit -s -m "Upgrade the version to ${DAPR_JAVA_SDK_NEXT_VERSION}" -a
git push origin next-release-${DAPR_JAVA_SDK_NEXT_VERSION}
- 
Prepare next release: Create PR from
next-release-*branch tomasterbranch - 
GitHub Actions will build and publish RC pkgs to Nexus OSS repository
 - 
Test RC builds.
 - 
In case of bugs, generate new RCs repeating steps 2 and 3.
 
Once the RC is good and we are OK to release, proceed.
- Remove RC suffix:
 
export DAPR_JAVA_SDK_VERSION="${DAPR_JAVA_SDK_RELEASE}.${DAPR_JAVA_SDK_PATCH_VERSION}"
git checkout $DAPR_JAVA_SDK_RELEASE_BRANCH
git fetch upstream
git reset --hard upstream/$DAPR_JAVA_SDK_RELEASE_BRANCH
./scripts/update_sdk_version.sh
- Push the change to 
release-X.Yand release. 
git commit -s -m "Upgrade version to $DAPR_JAVA_SDK_VERSION" -a
git push upstream $DAPR_JAVA_SDK_RELEASE_BRANCH
- Update README.md and Javadocs website
 
./scripts/update_docs.sh $DAPR_JAVA_SDK_VERSION
# MAKE SURE YOUR WORKING DIR IS CLEAN
git add -A
git commit -s -m "Generate updated javadocs for $DAPR_JAVA_SDK_VERSION" -a
git push upstream $DAPR_JAVA_SDK_RELEASE_BRANCH
- Release
 
git tag v${DAPR_JAVA_SDK_VERSION}
git push upstream v${DAPR_JAVA_SDK_VERSION}
- Update the live Javadocs website:
 
git checkout -b update_javadocs_$DAPR_JAVA_SDK_RELEASE_BRANCH
git reset --hard upstream/master
git cherry-pick $DAPR_JAVA_SDK_RELEASE_BRANCH
git push origin update_javadocs_$DAPR_JAVA_SDK_RELEASE_BRANCH
# Create PR into master and merge it.
- CI will release final build to central repository. Verify.
 
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
 - Release branch: release-X.Y
 - Next release: X.Y.Z-SNAPSHOT
 - RC and beta counts start with 1.
 
Because the SDK version is in the pom.xml file, we DO NOT merge release back into master branch.