|
| 1 | +== 1. Update Dependencies |
| 2 | + |
| 3 | +Dependencies are declared in `gradle/dependency-management.gradle`. |
| 4 | +Update the `coreVersion` to the corresponding version of `spring-session-core` and `dataGeodeVersion` to the corresponding version of `spring-session-data-geode`. |
| 5 | + |
| 6 | +Run all the checks: |
| 7 | + |
| 8 | +[source,bash] |
| 9 | +---- |
| 10 | +$ ./gradlew check |
| 11 | +---- |
| 12 | + |
| 13 | +Create separate issues for each dependency update and push the changes. |
| 14 | + |
| 15 | +== 2. Run the test project |
| 16 | + |
| 17 | +Ensure that the most recent SNAPSHOT is working, by testing it in a sample project, for example https://github.com/eleftherias/session-bom-sample. |
| 18 | + |
| 19 | +== 3. Check All Issues are Closed |
| 20 | + |
| 21 | +You can manually check at https://github.com/spring-projects/spring-session/milestones |
| 22 | + |
| 23 | +== 4. Update Release Version |
| 24 | + |
| 25 | +Update the version number in `gradle.properties` for the release, for example `2021.2.0-RC1`, `2021.1.0`. |
| 26 | + |
| 27 | +== 5. Build Locally |
| 28 | + |
| 29 | +Run the build using |
| 30 | + |
| 31 | +[source,bash] |
| 32 | +---- |
| 33 | +$ ./gradlew check |
| 34 | +---- |
| 35 | + |
| 36 | +== 6. Push the Release Commit |
| 37 | + |
| 38 | +Push the commit and Jenkins will build and deploy the artifacts. |
| 39 | +Wait for the artifact to appear in https://repo1.maven.org/maven2/org/springframework/session/spring-session-bom/ |
| 40 | + |
| 41 | +== 7. Tag the release |
| 42 | + |
| 43 | +Tag the release and then push the tag |
| 44 | + |
| 45 | +.... |
| 46 | +git tag 2021.2.0-RC1 |
| 47 | +git push origin 2021.2.0-RC1 |
| 48 | +.... |
| 49 | + |
| 50 | +== 8. Update to Next Development Version |
| 51 | + |
| 52 | +Update `gradle.properties` version to next `+SNAPSHOT+` version, update the dependencies in `dependency-management.gradle` to the next `+SNAPSHOT+` versions and then push. |
| 53 | + |
| 54 | +== 9. Update version on project pages |
| 55 | + |
| 56 | +Update the versions on https://spring.io/projects for Spring Session. |
| 57 | +The reference documentation should point to the Spring Session Core reference documentation. |
| 58 | + |
| 59 | +== 10. Update Release Notes on GitHub |
| 60 | + |
| 61 | +This step should be skipped for patch releases (e.g 2.7.1). It only applies to pre-releases and GA releases. |
| 62 | + |
| 63 | +Create a new release notes section in the https://github.com/spring-projects/spring-session-bom/wiki[Wiki]. |
| 64 | +Describe any breaking changes, and noteworthy enhancements. |
| 65 | + |
| 66 | +== 11. Close / Create Milestone |
| 67 | + |
| 68 | +* In |
| 69 | +https://github.com/spring-projects/spring-session/milestones[GitHub |
| 70 | +Milestones], create a new milestone for the next release version. |
| 71 | +* Move any open issues from the existing milestone you just released to |
| 72 | +the new milestone. |
| 73 | +* Close the milestone for the release. |
| 74 | + |
| 75 | +Note: Spring Session typically releases only one milestone (M1) and one release candidate (RC1). |
| 76 | + |
| 77 | +== 12. Announce the release |
| 78 | + |
| 79 | +* Announce via Slack on |
| 80 | +https://pivotal.slack.com/messages/spring-release[#spring-release], |
| 81 | +including the keyword `+spring-session-announcing+` in the message. |
| 82 | +Something like: |
| 83 | + |
| 84 | +.... |
| 85 | +spring-session-announcing 2022.0.0 is available. |
| 86 | +.... |
| 87 | + |
| 88 | +== 13. Create a blog post |
| 89 | + |
| 90 | +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]. |
0 commit comments