|
| 1 | +== 1. Update Dependencies |
| 2 | + |
| 3 | +Dependencies are declared in `gradle/dependency-management.gradle`. |
| 4 | +Update Spring Framework, Spring Security and Spring Data at a minimum. |
| 5 | + |
| 6 | +Run all the checks: |
| 7 | + |
| 8 | +[source,bash] |
| 9 | +---- |
| 10 | +$ ./gradlew check |
| 11 | +---- |
| 12 | + |
| 13 | +Create separate issues for each dependency update, aside from test dependencies which can be combined into a single commit. |
| 14 | + |
| 15 | +== 2. Check All Issues are Closed |
| 16 | + |
| 17 | +You can manually check at https://github.com/spring-projects/spring-session/milestones |
| 18 | + |
| 19 | +== 3. Update Release Version |
| 20 | + |
| 21 | +Update the version number in `gradle.properties` for the release, for example `2.5.0-M1`, `2.5.0-RC1`, `2.5.5` |
| 22 | + |
| 23 | +== 4. Build Locally |
| 24 | + |
| 25 | +Run the build using |
| 26 | + |
| 27 | +[source,bash] |
| 28 | +---- |
| 29 | +$ ./gradlew check |
| 30 | +---- |
| 31 | + |
| 32 | +== 5. Push the Release Commit |
| 33 | + |
| 34 | +Push the commit and GitHub actions will build and deploy the artifacts. |
| 35 | +Wait for the artifact to appear in https://repo1.maven.org/maven2/org/springframework/session/spring-session-core/ |
| 36 | + |
| 37 | +== 6. Tag the release |
| 38 | + |
| 39 | +Tag the release and then push the tag |
| 40 | + |
| 41 | +.... |
| 42 | +git tag 2.5.6 |
| 43 | +git push origin 2.5.6 |
| 44 | +.... |
| 45 | + |
| 46 | +== 7. Update to Next Development Version |
| 47 | + |
| 48 | +Update `gradle.properties` version to next `+SNAPSHOT+` version and then push |
| 49 | + |
| 50 | +== 8. Update version on project pages |
| 51 | + |
| 52 | +Update the versions on https://spring.io/projects for Spring Session Core, Spring Session Data Redis, Spring Session JDBC, and Spring Session Hazelcast. |
| 53 | + |
| 54 | +== 9. Update Release Notes on GitHub |
| 55 | + |
| 56 | +Download |
| 57 | +https://github.com/spring-io/github-changelog-generator/releases/latest[the |
| 58 | +GitHub release notes generator] |
| 59 | + |
| 60 | +* Generate the release notes |
| 61 | + |
| 62 | +.... |
| 63 | +java -jar github-changelog-generator.jar \ |
| 64 | + --changelog.repository=spring-projects/spring-session \ |
| 65 | + $MILESTONE release-notes |
| 66 | +.... |
| 67 | + |
| 68 | +Note 1: `+$MILESTONE+` is something like `+2.5.1+` or `+2.5.0-M1+`. + |
| 69 | +Note 2: This will create a file on your filesystem |
| 70 | +called `+release-notes+`. |
| 71 | + |
| 72 | +* Copy the release notes to your clipboard (your mileage may vary with |
| 73 | +the following command) |
| 74 | + |
| 75 | +.... |
| 76 | +cat release-notes | xclip -selection clipboard |
| 77 | +.... |
| 78 | + |
| 79 | +* Create the |
| 80 | +https://github.com/spring-projects/spring-session/releases[release on |
| 81 | +GitHub], associate it with the tag, and paste the generated notes. |
| 82 | + |
| 83 | +== 10. Close / Create Milestone |
| 84 | + |
| 85 | +* In |
| 86 | +https://github.com/spring-projects/spring-session/milestones[GitHub |
| 87 | +Milestones], create a new milestone for the next release version |
| 88 | +* Move any open issues from the existing milestone you just released to |
| 89 | +the new milestone. |
| 90 | +* Close the milestone for the release. |
| 91 | + |
| 92 | +== 11. Announce the release |
| 93 | + |
| 94 | +* Announce via Slack on https://pivotal.slack.com/messages/spring-session[#spring-session], and tag any downstream Spring Session projects (e.g Spring Session for Apache Geode). |
| 95 | + |
| 96 | +Note: Do not post on #spring-release or create a blog post. Those steps happen after the Spring Session BOM is released. |
| 97 | + |
0 commit comments