From f548efb7f4e2cdb222586e24bea5c745c69259f6 Mon Sep 17 00:00:00 2001 From: Eleftheria Stein Date: Thu, 21 Apr 2022 11:46:13 +0200 Subject: [PATCH] Document release process for 2022.0.x branch Issue gh-203 --- RELEASE.adoc | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 RELEASE.adoc diff --git a/RELEASE.adoc b/RELEASE.adoc new file mode 100644 index 0000000..7590647 --- /dev/null +++ b/RELEASE.adoc @@ -0,0 +1,90 @@ +== 1. Update Dependencies + +Dependencies are declared in `gradle/dependency-management.gradle`. +Update the `coreVersion` to the corresponding version of `spring-session-core` and `dataGeodeVersion` to the corresponding version of `spring-session-data-geode`. + +Run all the checks: + +[source,bash] +---- +$ ./gradlew check +---- + +Create separate issues for each dependency update and push the changes. + +== 2. Run the test project + +Ensure that the most recent SNAPSHOT is working, by testing it in a sample project, for example https://github.com/eleftherias/session-bom-sample. + +== 3. Check All Issues are Closed + +You can manually check at https://github.com/spring-projects/spring-session/milestones + +== 4. Update Release Version + +Update the version number in `gradle.properties` for the release, for example `2021.2.0-RC1`, `2021.1.0`. + +== 5. Build Locally + +Run the build using + +[source,bash] +---- +$ ./gradlew check +---- + +== 6. Push the Release Commit + +Push the commit and Jenkins will build and deploy the artifacts. +Wait for the artifact to appear in https://repo1.maven.org/maven2/org/springframework/session/spring-session-bom/ + +== 7. Tag the release + +Tag the release and then push the tag + +.... +git tag 2021.2.0-RC1 +git push origin 2021.2.0-RC1 +.... + +== 8. Update to Next Development Version + +Update `gradle.properties` version to next `+SNAPSHOT+` version, update the dependencies in `dependency-management.gradle` to the next `+SNAPSHOT+` versions and then push. + +== 9. Update version on project pages + +Update the versions on https://spring.io/projects for Spring Session. +The reference documentation should point to the Spring Session Core reference documentation. + +== 10. Update Release Notes on GitHub + +This step should be skipped for patch releases (e.g 2.7.1). It only applies to pre-releases and GA releases. + +Create a new release notes section in the https://github.com/spring-projects/spring-session-bom/wiki[Wiki]. +Describe any breaking changes, and noteworthy enhancements. + +== 11. 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). + +== 12. Announce the release + +* Announce via Slack on +https://pivotal.slack.com/messages/spring-release[#spring-release], +including the keyword `+spring-session-announcing+` in the message. +Something like: + +.... +spring-session-announcing 2022.0.0 is available. +.... + +== 13. Create a blog post + +Create a https://spring.io/admin/blog[blog post], you can find an example https://spring.io/blog/2022/02/23/spring-session-2021-0-5-and-2021-1-2-released[here].