== 1. Update Dependencies Dependencies are declared in `gradle/libs.versions.toml`. They are updated by Dependabot, make sure that there is no Dependabot PR open, the versions are correct and that the build passes. Run all the checks: [source,bash] ---- $ ./gradlew check ---- == 2. Check All Issues are Closed You can manually check at https://github.com/spring-projects/spring-session/milestones == 3. Update Release Version Update the version number in `gradle.properties` for the release, for example `3.0.0-M1`, `3.0.0-RC1`, `3.0.4` == 4. Build Locally Run the build using [source,bash] ---- $ ./gradlew check ---- == 5. Push the Release Commit Push the commit and GitHub actions will build and deploy the artifacts. Wait for the artifact to appear in https://repo1.maven.org/maven2/org/springframework/session/spring-session-core/ == 6. Tag the release Tag the release and then push the tag .... git tag 3.0.0-RC1 git push origin 3.0.0-RC1 .... == 7. Update to Next Development Version Update `gradle.properties` version to next `+SNAPSHOT+` version. == 8. Update version on project pages Update the versions on https://spring.io/projects for Spring Session Core, Spring Session Data Redis, Spring Session JDBC, Spring Session Hazelcast, and Spring Session MongoDB. == 9. Update Release Notes on GitHub Download https://github.com/spring-io/github-changelog-generator/releases/latest[the GitHub release notes generator] * Generate the release notes .... java -jar github-changelog-generator.jar \ --changelog.repository=spring-projects/spring-session \ $MILESTONE release-notes .... Note 1: `+$MILESTONE+` is something like `+3.0.4+` or `+3.0.0-M1+`. + Note 2: 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 https://github.com/spring-projects/spring-session/releases[release on GitHub], associate it with the tag, and paste the generated notes. == 10. Close / Create Milestone * In https://github.com/spring-projects/spring-session/milestones[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. Note: Spring Session typically releases only one milestone (M1) and one release candidate (RC1). == 11. Announce the release * Announce via Slack on `#spring-release`, including the keyword `+spring-session-announcing+` in the message. Something like: .... spring-session-announcing 3.2.0 is available. ....