This repository has been archived by the owner on May 31, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 144
Release Process
Josh Cummings edited this page Aug 10, 2020
·
3 revisions
NOTE: This release process uses the spring-build-conventions Gradle plug-in.
- Update dependencies
- Update release version
- Build Locally
- Push the release commit
- Tag the release
- Update to next development version
- Update Release Notes on GitHub
- Close / Create Milestone
- Dependencies are declared in
gradle/dependency-management.gradle
- Update Spring Framework and Spring Data at a minimum
- Then find dependencies that need updating by running the
update-dependencies.sh
script:
./scripts/update-dependencies.sh
Prerequisites: The build
directory has to exist to store the file build/updates.txt
. This directory gets created when a new build is run, but is not present on a fresh git clone.
- Update the version number in
gradle.properties
for the release, for example,2.4.0-M1
,2.4.0-RC1
,2.3.0.RELEASE
- Run the build locally with:
./gradlew check
- Push the release commit and Jenkins will build and deploy the artifacts
- If you are pushing to Maven Central, then you can get notified when it's uploaded by running the following:
./scripts/release/wait-for-done.sh 2.3.0.RELEASE
- Tag the release and then push the tag
git tag 2.4.0-RC1
git push origin 2.4.0-RC1
- Update release version to next
-SNAPSHOT
version and then push
- Download the GitHub release notes generator
wget https://github.com/spring-io/github-release-notes-generator/releases/download/v0.0.2/github-release-notes-generator.jar
- Generate the release notes
java -jar github-release-notes-generator.jar \
--releasenotes.github.organization=spring-projects \
--releasenotes.github.repository=spring-security-oauth2-boot \
$MILESTONE release-notes
Note that $MILESTONE
is something like 2.2.1
or 2.4.0-M1
. This will create a file on your filesystem called release-notes
.
- Copy the release notes to your clipboard (your mileage may vary with the following command)
cat release-notes | xclip -selection clipboard
- Create the release on GitHub, associate it with the tag, and paste the generated notes
- In GitHub Milestones, create a new milestone for the next release version
- Move any open issues from the existing milestone you just released to the new milestone
- Close the milestone for the release.