Skip to content

Commit af1a5d2

Browse files
committed
Document release process for 2.5.x
Issue gh-2036
1 parent 4a3dc3f commit af1a5d2

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed

RELEASE.adoc

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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

Comments
 (0)