Skip to content

Commit 1475698

Browse files
committed
Document release process for 3.0.x
Issueh gh-2036
1 parent 34199ba commit 1475698

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed

RELEASE.adoc

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
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 `3.0.0-M1`, `3.0.0-RC1`, `3.0.4`
22+
23+
== 4. Update Antora Version
24+
25+
You will need to update the antora.yml version.
26+
27+
For milestone / release candidate releases you should follow this format:
28+
----
29+
version: '3.0.0-RC1'
30+
prerelease: 'true'
31+
display_version: '3.0.0-RC1'
32+
----
33+
34+
== 5. Build Locally
35+
36+
Run the build using
37+
38+
[source,bash]
39+
----
40+
$ ./gradlew check
41+
----
42+
43+
== 6. Push the Release Commit
44+
45+
Push the commit and GitHub actions will build and deploy the artifacts.
46+
Wait for the artifact to appear in https://repo1.maven.org/maven2/org/springframework/session/spring-session-core/
47+
48+
== 7. Tag the release
49+
50+
Tag the release and then push the tag
51+
52+
....
53+
git tag 3.0.0-RC1
54+
git push origin 3.0.0-RC1
55+
....
56+
57+
== 8. Update to Next Development Version
58+
59+
Update `gradle.properties` version to next `+SNAPSHOT+` version, update antora.yml and then push
60+
61+
== 9. Update version on project pages
62+
63+
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.
64+
65+
== 10. Update Release Notes on GitHub
66+
67+
Download
68+
https://github.com/spring-io/github-changelog-generator/releases/latest[the
69+
GitHub release notes generator]
70+
71+
* Generate the release notes
72+
73+
....
74+
java -jar github-changelog-generator.jar \
75+
--changelog.repository=spring-projects/spring-session \
76+
$MILESTONE release-notes
77+
....
78+
79+
Note 1: `+$MILESTONE+` is something like `+3.0.4+` or `+3.0.0-M1+`. +
80+
Note 2: This will create a file on your filesystem
81+
called `+release-notes+`.
82+
83+
* Copy the release notes to your clipboard (your mileage may vary with
84+
the following command)
85+
86+
....
87+
cat release-notes | xclip -selection clipboard
88+
....
89+
90+
* Create the
91+
https://github.com/spring-projects/spring-session/releases[release on
92+
GitHub], associate it with the tag, and paste the generated notes.
93+
94+
== 11. Close / Create Milestone
95+
96+
* In
97+
https://github.com/spring-projects/spring-session/milestones[GitHub
98+
Milestones], create a new milestone for the next release version.
99+
* Move any open issues from the existing milestone you just released to
100+
the new milestone.
101+
* Close the milestone for the release.
102+
103+
Note: Spring Session typically releases only one milestone (M1) and one release candidate (RC1).
104+
105+
== 12. Announce the release
106+
107+
* 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).
108+
109+
Note: Do not post on #spring-release or create a blog post. Those steps happen after the Spring Session BOM is released.
110+

0 commit comments

Comments
 (0)