Skip to content

Commit ee3ecf3

Browse files
committed
Add dependency promotion/demotion step to release checklist
1 parent 77ee463 commit ee3ecf3

File tree

1 file changed

+37
-19
lines changed

1 file changed

+37
-19
lines changed

doc/releasing.md

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,22 @@ Release candidate versions
66

77
1. Make sure release notes in `NEWS` are up to date.
88

9-
2. Run the tests one more time:
9+
2. Review the diff from the previous version for any changes to the public API,
10+
and adjust the upcoming version number accordingly.
11+
12+
If any implementation dependencies have been added to method signatures in
13+
the public API, including `throws` declarations, change these dependencies
14+
from `implementation` to `api` dependency declarations in the relevant
15+
Gradle build script. Conversely, remove or downgrade to `implementation` any
16+
dependencies no longer exposed in the public API.
17+
18+
3. Run the tests one more time:
1019

1120
```
1221
$ ./gradlew clean check
1322
```
1423
15-
3. Update the Java version in the [`release-verify-signatures`
24+
4. Update the Java version in the [`release-verify-signatures`
1625
workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
1726
1827
See the `openjdk version` line of output from `java -version`:
@@ -34,21 +43,21 @@ Release candidate versions
3443
3544
Commit this change, if any.
3645
37-
4. Tag the head commit with an `X.Y.Z-RCN` tag:
46+
5. Tag the head commit with an `X.Y.Z-RCN` tag:
3847
3948
```
4049
$ git tag -a -s 1.4.0-RC1 -m "Pre-release 1.4.0-RC1"
4150
```
4251
4352
No tag body needed.
4453
45-
5. Publish to Sonatype Nexus:
54+
6. Publish to Sonatype Nexus:
4655
4756
```
4857
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
4958
```
5059
51-
6. Push to GitHub.
60+
7. Push to GitHub.
5261
5362
If the pre-release makes significant changes to the project README, such
5463
that the README does not accurately reflect the latest non-pre-release
@@ -66,7 +75,7 @@ Release candidate versions
6675
$ git push origin main 1.4.0-RC1
6776
```
6877
69-
7. Make GitHub release.
78+
8. Make GitHub release.
7079
7180
- Use the new tag as the release tag.
7281
- Check the pre-release checkbox.
@@ -76,7 +85,7 @@ Release candidate versions
7685
- Note the JDK version shown by `java -version` in step 3.
7786
For example: `openjdk version "17.0.7" 2023-04-18`.
7887
79-
8. Check that the ["Reproducible binary"
88+
9. Check that the ["Reproducible binary"
8089
workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
8190
runs and succeeds.
8291
@@ -86,7 +95,16 @@ Release versions
8695
8796
1. Make sure release notes in `NEWS` are up to date.
8897
89-
2. Make a no-fast-forward merge from the last (non release candidate) release
98+
2. Review the diff from the previous version for any changes to the public API,
99+
and adjust the upcoming version number accordingly.
100+
101+
If any implementation dependencies have been added to method signatures in
102+
the public API, including `throws` declarations, change these dependencies
103+
from `implementation` to `api` dependency declarations in the relevant
104+
Gradle build script. Conversely, remove or downgrade to `implementation` any
105+
dependencies no longer exposed in the public API.
106+
107+
3. Make a no-fast-forward merge from the last (non release candidate) release
90108
to the commit to be released:
91109
92110
```
@@ -108,13 +126,13 @@ Release versions
108126
$ git branch -d release-1.4.0
109127
```
110128
111-
3. Remove the "(unreleased)" tag from `NEWS`.
129+
4. Remove the "(unreleased)" tag from `NEWS`.
112130
113-
4. Update the version in the dependency snippets in the README.
131+
5. Update the version in the dependency snippets in the README.
114132
115-
5. Update the version in JavaDoc links in the READMEs.
133+
6. Update the version in JavaDoc links in the READMEs.
116134
117-
6. Update the Java version in the [`release-verify-signatures`
135+
7. Update the Java version in the [`release-verify-signatures`
118136
workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
119137
120138
See the `openjdk version` line of output from `java -version`:
@@ -134,40 +152,40 @@ Release versions
134152
java: ["17.0.7"]
135153
```
136154
137-
7. Amend these changes into the merge commit:
155+
8. Amend these changes into the merge commit:
138156
139157
```
140158
$ git add NEWS README */README .github/workflows/release-verify-signatures.yml
141159
$ git commit --amend --reset-author
142160
```
143161
144-
8. Run the tests one more time:
162+
9. Run the tests one more time:
145163
146164
```
147165
$ ./gradlew clean check
148166
```
149167
150-
9. Tag the merge commit with an `X.Y.Z` tag:
168+
10. Tag the merge commit with an `X.Y.Z` tag:
151169
152170
```
153171
$ git tag -a -s 1.4.0 -m "Release 1.4.0"
154172
```
155173
156174
No tag body needed since that's included in the commit.
157175
158-
10. Publish to Sonatype Nexus:
176+
11. Publish to Sonatype Nexus:
159177
160178
```
161179
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
162180
```
163181
164-
11. Push to GitHub:
182+
12. Push to GitHub:
165183
166184
```
167185
$ git push origin main 1.4.0
168186
```
169187
170-
12. Make GitHub release.
188+
13. Make GitHub release.
171189
172190
- Use the new tag as the release tag.
173191
- Copy the release notes from `NEWS` into the GitHub release notes; reformat
@@ -176,6 +194,6 @@ Release versions
176194
- Note the JDK version shown by `java -version` in step 6.
177195
For example: `openjdk version "17.0.7" 2023-04-18`.
178196
179-
13. Check that the ["Reproducible binary"
197+
14. Check that the ["Reproducible binary"
180198
workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
181199
runs and succeeds.

0 commit comments

Comments
 (0)