111 lines
3.1 KiB
Plaintext
111 lines
3.1 KiB
Plaintext
== 1. Update Dependencies
|
|
|
|
Dependencies are declared in `gradle/dependency-management.gradle`.
|
|
Update Spring Framework, Spring Security and Spring Data at a minimum.
|
|
|
|
Run all the checks:
|
|
|
|
[source,bash]
|
|
----
|
|
$ ./gradlew check
|
|
----
|
|
|
|
Create separate issues for each dependency update, aside from test dependencies which can be combined into a single commit.
|
|
|
|
== 2. Check All Issues are Closed
|
|
|
|
You can manually check at https://github.com/spring-projects/spring-session/milestones
|
|
|
|
== 3. Update Release Version
|
|
|
|
Update the version number in `gradle.properties` for the release, for example `2.7.0-M1`, `2.7.0-RC1`, `2.7.3`
|
|
|
|
== 4. Update Antora Version
|
|
|
|
You will need to update the antora.yml version.
|
|
|
|
For milestone / release candidate releases you should follow this format:
|
|
----
|
|
version: '2.7.0-RC1'
|
|
prerelease: 'true'
|
|
display_version: '2.7.0-RC1'
|
|
----
|
|
|
|
== 5. Build Locally
|
|
|
|
Run the build using
|
|
|
|
[source,bash]
|
|
----
|
|
$ ./gradlew check
|
|
----
|
|
|
|
== 6. Push the Release Commit
|
|
|
|
Push the commit and GitHub actions will build and deploy the artifacts.
|
|
Wait for the artifact to appear in https://repo1.maven.org/maven2/org/springframework/session/spring-session-core/
|
|
|
|
== 7. Tag the release
|
|
|
|
Tag the release and then push the tag
|
|
|
|
....
|
|
git tag 2.7.0-RC1
|
|
git push origin 2.7.0-RC1
|
|
....
|
|
|
|
== 8. Update to Next Development Version
|
|
|
|
Update `gradle.properties` version to next `+SNAPSHOT+` version, update antora.yml and then push
|
|
|
|
== 9. Update version on project pages
|
|
|
|
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.
|
|
|
|
== 10. Update Release Notes on GitHub
|
|
|
|
Download
|
|
https://github.com/spring-io/github-changelog-generator/releases/latest[the
|
|
GitHub release notes generator]
|
|
|
|
* Generate the release notes
|
|
|
|
....
|
|
java -jar github-changelog-generator.jar \
|
|
--changelog.repository=spring-projects/spring-session \
|
|
$MILESTONE release-notes
|
|
....
|
|
|
|
Note 1: `+$MILESTONE+` is something like `+2.7.1+` or `+2.7.0-M1+`. +
|
|
Note 2: This will create a file on your filesystem
|
|
called `+release-notes+`.
|
|
|
|
* Copy the release notes to your clipboard (your mileage may vary with
|
|
the following command)
|
|
|
|
....
|
|
cat release-notes | xclip -selection clipboard
|
|
....
|
|
|
|
* Create the
|
|
https://github.com/spring-projects/spring-session/releases[release on
|
|
GitHub], associate it with the tag, and paste the generated notes.
|
|
|
|
== 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-session[#spring-session], and tag any downstream Spring Session projects (e.g Spring Session for Apache Geode).
|
|
|
|
Note: Do not post on #spring-release or create a blog post. Those steps happen after the Spring Session BOM is released.
|
|
|