Skip to content

Release process

Mahmoud Ben Hassine edited this page Mar 19, 2024 · 3 revisions

Part 1: Prepare the release

  1. Update the main pom.xml with milestone/release versions of Spring snapshot dependencies and upgrade other dependencies if needed.
  2. Run a full build with ./mvnw clean install
  3. Commit and push the changes in pom.xml with a message like: Prepare release 0.1.0

Part 2: Perform the release

  1. Go to Github Actions: https://github.com/spring-projects-experimental/spring-batch-experimental/actions.
  2. Run the "Artifactory Milestone Release" workflow by providing the milestone version to release. This will build and deploy the milestone release to https://repo.spring.io/libs-milestone-local/org/springframework/batch
  3. Check uploaded jars in http://repo.spring.io/libs-milestone-local/org/springframework/batch

❗ Heads-up: The "Artifactory Milestone Release" workflow is designed to be idempotent (it has no git side effects). If something is wrong with the milestone release, the same workflow can be re-run with the same version and a new milestone will override the corrupted one in Artifactory. ❗

Part 3: Post-release tasks

The previous Github Action does not change the version in the code. The version change is done manually on purpose. At this point, the release should be available in Artifactory. It is now safe to change the version in the code and push it to the upstream repository. From the root directory of the project, run the following commands (change the version number accordingly):

$./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion=0.1.0
$git commit -a -m "Release version 0.1.0"
$git tag -a v0.1.0 -m "Release version 0.1.0"
$./mvnw versions:set -DgenerateBackupPoms=false -DnewVersion=0.2.0-SNAPSHOT
$git commit -a -m "Next development version"
$git push origin main
$git push origin v0.1.0
Clone this wiki locally