@@ -15,14 +15,15 @@ Release candidate versions
1515 Gradle build script. Conversely, remove or downgrade to ` implementation ` any
1616 dependencies no longer exposed in the public API.
1717
18+ Add ` @since ` tags to the JavaDoc for new features.
19+
1820 3 . Run the tests one more time:
1921
2022 ```
2123 $ ./gradlew clean check
2224 ```
2325
24- 4. Update the Java version in the [`release-verify-signatures`
25- workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
26+ 4. Update the Java version in the [`release-verify-signatures` workflow][workflow-release-src].
2627
2728 See the `openjdk version` line of output from `java -version`:
2829
@@ -44,39 +45,55 @@ Release candidate versions
4445 Check that this version is available in GitHub Actions. Commit this change,
4546 if any.
4647
47- 5. Tag the head commit with an `X.Y.Z-RCN` tag:
48+ 5. Push the branch to GitHub.
49+
50+ If the pre-release makes significant changes to the project README, such
51+ that the README does not accurately reflect the latest non-pre-release
52+ version, push the changes on a separate release branch:
4853
4954 ```
50- $ git tag -a -s 1.4.0-RC1 -m "Pre-release 1.4.0-RC1"
55+ $ git checkout -b release-1.4.0
56+ $ git push origin release-1.4.0
5157 ```
5258
53- No tag body needed.
59+ If the README still accurately reflects the latest non-pre-release version,
60+ you can simply push to main instead:
5461
55- 6. Publish to Sonatype Nexus:
62+ ```
63+ $ git push origin main
64+ ```
65+
66+ 6. Wait for the ["build" workflow][workflow-build] to finish.
67+ Download the `artifact-checksums-java17-temurin` artifact,
68+ unpack it and verify that the artifact checksums match artifacts built locally:
5669
5770 ```
58- $ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
71+ $ unzip artifact-checksums-java17-temurin.zip
72+ $ VERSION=0.1.0-SNAPSHOT ./gradlew primaryPublishJar
73+ $ sha256sum -c java-webauthn-server-artifacts.sha256sum
5974 ```
6075
61- 7. Push to GitHub.
76+ 7. Tag the head commit with an `X.Y.Z-RCN` tag:
6277
63- If the pre-release makes significant changes to the project README, such
64- that the README does not accurately reflect the latest non-pre-release
65- version, push the changes on a separate release branch:
78+ ```
79+ $ git tag -a -s 1.4.0-RC1 -m "Pre-release 1.4.0-RC1"
80+ ```
81+
82+ No tag body needed.
83+
84+ 8. Publish to Sonatype Nexus:
6685
6786 ```
68- $ git checkout -b release-1.4.0
69- $ git push origin release-1.4.0 1.4.0-RC1
87+ $ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
7088 ```
7189
72- If the README still accurately reflects the latest non-pre-release version,
73- you can simply push to main instead:
90+ 9. Push the tag to GitHub:
7491
7592 ```
76- $ git push origin main 1.4.0-RC1
93+ $ git push origin 1.4.0-RC1
7794 ```
7895
79- 8 . Make GitHub release.
96+ 10 . Make GitHub release.
8097
8198 - Use the new tag as the release tag.
8299 - Check the pre-release checkbox.
@@ -86,9 +103,7 @@ Release candidate versions
86103 - Note the JDK version shown by `java -version` in step 3.
87104 For example: `openjdk version "17.0.7" 2023-04-18`.
88105
89- 9. Check that the ["Reproducible binary"
90- workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
91- runs and succeeds.
106+ 11. Check that the ["Reproducible binary" workflow][workflow-release] runs and succeeds.
92107
93108
94109Release versions
@@ -105,6 +120,8 @@ Release versions
105120 Gradle build script. Conversely, remove or downgrade to `implementation` any
106121 dependencies no longer exposed in the public API.
107122
123+ Add `@since` tags to the JavaDoc for new features.
124+
108125 3. Make a no-fast-forward merge from the last (non release candidate) release
109126 to the commit to be released:
110127
@@ -133,8 +150,7 @@ Release versions
133150
134151 6. Update the version in JavaDoc links in the READMEs.
135152
136- 7. Update the Java version in the [`release-verify-signatures`
137- workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
153+ 7. Update the Java version in the [`release-verify-signatures` workflow][workflow-release-src].
138154
139155 See the `openjdk version` line of output from `java -version`:
140156
@@ -168,27 +184,43 @@ Release versions
168184 $ ./gradlew clean check
169185 ```
170186
171- 10. Tag the merge commit with an `X.Y.Z` tag:
187+ 10. Push the branch to GitHub:
188+
189+ ```
190+ $ git push origin main
191+ ```
192+
193+ 11. Wait for the ["build" workflow][workflow-build] to finish.
194+ Download the `artifact-checksums-java17-temurin` artifact,
195+ unpack it and verify that the artifact checksums match artifacts built locally:
196+
197+ ```
198+ $ unzip artifact-checksums-java17-temurin.zip
199+ $ VERSION=0.1.0-SNAPSHOT ./gradlew primaryPublishJar
200+ $ sha256sum -c java-webauthn-server-artifacts.sha256sum
201+ ```
202+
203+ 12. Tag the merge commit with an `X.Y.Z` tag:
172204
173205 ```
174206 $ git tag -a -s 1.4.0 -m "Release 1.4.0"
175207 ```
176208
177209 No tag body needed since that's included in the commit.
178210
179- 11 . Publish to Sonatype Nexus:
211+ 12 . Publish to Sonatype Nexus:
180212
181213 ```
182214 $ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
183215 ```
184216
185- 12 . Push to GitHub:
217+ 13 . Push the tag to GitHub:
186218
187219 ```
188- $ git push origin main 1.4.0
220+ $ git push origin 1.4.0
189221 ```
190222
191- 13 . Make GitHub release.
223+ 14 . Make GitHub release.
192224
193225 - Use the new tag as the release tag.
194226 - Copy the release notes from `NEWS` into the GitHub release notes; reformat
@@ -197,6 +229,9 @@ Release versions
197229 - Note the JDK version shown by `java -version` in step 6.
198230 For example: `openjdk version "17.0.7" 2023-04-18`.
199231
200- 14. Check that the ["Reproducible binary"
201- workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
202- runs and succeeds.
232+ 15. Check that the ["Reproducible binary" workflow][workflow-release] runs and succeeds.
233+
234+
235+ [workflow-build]: https://github.com/Yubico/java-webauthn-server/actions/workflows/build.yml
236+ [workflow-release]: https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml
237+ [workflow-release-src]: https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42
0 commit comments