Skip to content

Commit 1359dd9

Browse files
committed
Merge branch 'release-2.5'
2 parents a149b6e + a3698be commit 1359dd9

File tree

27 files changed

+281
-191
lines changed

27 files changed

+281
-191
lines changed

Diff for: .github/workflows/coverage.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
branches:
77
- main
88
- dependabot/gradle/info.solidsoft.gradle.pitest-gradle-pitest-plugin-*
9+
- 'release-*'
910

1011
jobs:
1112
test:
@@ -64,15 +65,15 @@ jobs:
6465
prev-mutations-file: prev-mutations.xml
6566

6667
- name: Create coverage badge
68+
if: ${{ github.ref == 'refs/heads/main' }}
6769
# This creates a file that defines a [Shields.io endpoint badge](https://shields.io/endpoint)
6870
# which we can then include in the project README.
6971
uses: ./.github/actions/pit-results-badge
70-
if: github.ref_name == 'main'
7172
with:
7273
output-file: build/gh-pages/coverage-badge.json
7374

7475
- name: Push to GitHub Pages
75-
if: github.ref_name == 'main'
76+
if: ${{ github.ref == 'refs/heads/main' }}
7677
run: |
7778
git config user.name github-actions
7879
git config user.email [email protected]

Diff for: NEWS

+8
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ New features:
5353
version increase.
5454

5555

56+
== Version 2.5.1 ==
57+
58+
Changes:
59+
60+
* Dropped dependency on COSE-Java.
61+
* Fixed incompatibility with Jackson version 2.17.0-rc1.
62+
63+
5664
== Version 2.5.0 ==
5765

5866
`webauthn-server-core`:

Diff for: README

+55-55
Large diffs are not rendered by default.

Diff for: build.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ dependencies {
3434
constraints {
3535
api(constraintLibs.bundles.jackson)
3636
api(constraintLibs.cbor)
37-
api(constraintLibs.cose)
3837
api(constraintLibs.guava)
3938
api(constraintLibs.httpclient5)
4039
api(constraintLibs.slf4j)

Diff for: doc/releasing.md

+37-19
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`:
@@ -35,21 +44,21 @@ Release candidate versions
3544
Check that this version is available in GitHub Actions. Commit this change,
3645
if any.
3746
38-
4. Tag the head commit with an `X.Y.Z-RCN` tag:
47+
5. Tag the head commit with an `X.Y.Z-RCN` tag:
3948
4049
```
4150
$ git tag -a -s 1.4.0-RC1 -m "Pre-release 1.4.0-RC1"
4251
```
4352
4453
No tag body needed.
4554
46-
5. Publish to Sonatype Nexus:
55+
6. Publish to Sonatype Nexus:
4756
4857
```
4958
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
5059
```
5160
52-
6. Push to GitHub.
61+
7. Push to GitHub.
5362
5463
If the pre-release makes significant changes to the project README, such
5564
that the README does not accurately reflect the latest non-pre-release
@@ -67,7 +76,7 @@ Release candidate versions
6776
$ git push origin main 1.4.0-RC1
6877
```
6978
70-
7. Make GitHub release.
79+
8. Make GitHub release.
7180
7281
- Use the new tag as the release tag.
7382
- Check the pre-release checkbox.
@@ -77,7 +86,7 @@ Release candidate versions
7786
- Note the JDK version shown by `java -version` in step 3.
7887
For example: `openjdk version "17.0.7" 2023-04-18`.
7988
80-
8. Check that the ["Reproducible binary"
89+
9. Check that the ["Reproducible binary"
8190
workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
8291
runs and succeeds.
8392
@@ -87,7 +96,16 @@ Release versions
8796
8897
1. Make sure release notes in `NEWS` are up to date.
8998
90-
2. Make a no-fast-forward merge from the last (non release candidate) release
99+
2. Review the diff from the previous version for any changes to the public API,
100+
and adjust the upcoming version number accordingly.
101+
102+
If any implementation dependencies have been added to method signatures in
103+
the public API, including `throws` declarations, change these dependencies
104+
from `implementation` to `api` dependency declarations in the relevant
105+
Gradle build script. Conversely, remove or downgrade to `implementation` any
106+
dependencies no longer exposed in the public API.
107+
108+
3. Make a no-fast-forward merge from the last (non release candidate) release
91109
to the commit to be released:
92110
93111
```
@@ -109,13 +127,13 @@ Release versions
109127
$ git branch -d release-1.4.0
110128
```
111129
112-
3. Remove the "(unreleased)" tag from `NEWS`.
130+
4. Remove the "(unreleased)" tag from `NEWS`.
113131
114-
4. Update the version in the dependency snippets in the README.
132+
5. Update the version in the dependency snippets in the README.
115133
116-
5. Update the version in JavaDoc links in the READMEs.
134+
6. Update the version in JavaDoc links in the READMEs.
117135
118-
6. Update the Java version in the [`release-verify-signatures`
136+
7. Update the Java version in the [`release-verify-signatures`
119137
workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
120138
121139
See the `openjdk version` line of output from `java -version`:
@@ -137,40 +155,40 @@ Release versions
137155
138156
Check that this version is available in GitHub Actions.
139157
140-
7. Amend these changes into the merge commit:
158+
8. Amend these changes into the merge commit:
141159
142160
```
143161
$ git add NEWS README */README .github/workflows/release-verify-signatures.yml
144162
$ git commit --amend --reset-author
145163
```
146164
147-
8. Run the tests one more time:
165+
9. Run the tests one more time:
148166
149167
```
150168
$ ./gradlew clean check
151169
```
152170
153-
9. Tag the merge commit with an `X.Y.Z` tag:
171+
10. Tag the merge commit with an `X.Y.Z` tag:
154172
155173
```
156174
$ git tag -a -s 1.4.0 -m "Release 1.4.0"
157175
```
158176
159177
No tag body needed since that's included in the commit.
160178
161-
10. Publish to Sonatype Nexus:
179+
11. Publish to Sonatype Nexus:
162180
163181
```
164182
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
165183
```
166184
167-
11. Push to GitHub:
185+
12. Push to GitHub:
168186
169187
```
170188
$ git push origin main 1.4.0
171189
```
172190
173-
12. Make GitHub release.
191+
13. Make GitHub release.
174192
175193
- Use the new tag as the release tag.
176194
- Copy the release notes from `NEWS` into the GitHub release notes; reformat
@@ -179,6 +197,6 @@ Release versions
179197
- Note the JDK version shown by `java -version` in step 6.
180198
For example: `openjdk version "17.0.7" 2023-04-18`.
181199
182-
13. Check that the ["Reproducible binary"
200+
14. Check that the ["Reproducible binary"
183201
workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
184202
runs and succeeds.

Diff for: settings.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ dependencyResolutionManagement {
1515
versionCatalogs {
1616
create("constraintLibs") {
1717
library("cbor", "com.upokecenter:cbor:[4.5.1,5)")
18-
library("cose", "com.augustcellars.cose:cose-java:[1.0.0,2)")
1918
library("guava", "com.google.guava:guava:[24.1.1,33)")
2019
library("httpclient5", "org.apache.httpcomponents.client5:httpclient5:[5.0.0,6)")
2120
library("slf4j", "org.slf4j:slf4j-api:[1.7.25,3)")

Diff for: test-dependent-projects/java-dep-webauthn-server-core-and-bouncycastle/build.gradle.kts

-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ dependencies {
1212
testImplementation("junit:junit:4.12")
1313
testImplementation("org.mockito:mockito-core:[2.27.0,3)")
1414

15-
// Runtime-only internal dependency of webauthn-server-core
16-
testImplementation("com.augustcellars.cose:cose-java:[1.0.0,2)")
17-
1815
// Transitive dependencies from coreTestOutput
1916
testImplementation("org.scala-lang:scala-library:[2.13.1,3)")
2017
}

Diff for: test-dependent-projects/java-dep-webauthn-server-core-and-bouncycastle/src/test/java/com/yubico/webauthn/BouncyCastleProviderPresenceTest.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.junit.Assert.assertTrue;
44

5-
import COSE.CoseException;
65
import com.yubico.webauthn.data.AttestationObject;
76
import com.yubico.webauthn.data.RelyingPartyIdentity;
87
import java.io.IOException;
@@ -72,7 +71,7 @@ public void bouncyCastleProviderIsNotLoadedAfterInstantiatingRelyingParty() {
7271

7372
@Test
7473
public void bouncyCastleProviderIsNotLoadedAfterAttemptingToLoadEddsaKey()
75-
throws IOException, CoseException, InvalidKeySpecException {
74+
throws IOException, InvalidKeySpecException {
7675
try {
7776
WebAuthnCodecs.importCosePublicKey(
7877
new AttestationObject(
@@ -92,7 +91,7 @@ public void bouncyCastleProviderIsNotLoadedAfterAttemptingToLoadEddsaKey()
9291

9392
@Test(expected = NoSuchAlgorithmException.class)
9493
public void doesNotFallBackToBouncyCastleAutomatically()
95-
throws IOException, CoseException, InvalidKeySpecException, NoSuchAlgorithmException {
94+
throws IOException, InvalidKeySpecException, NoSuchAlgorithmException {
9695
for (Provider prov : Security.getProviders()) {
9796
Security.removeProvider(prov.getName());
9897
}

Diff for: test-dependent-projects/java-dep-webauthn-server-core-and-bouncycastle/src/test/java/com/yubico/webauthn/CryptoAlgorithmsTest.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertTrue;
55

6-
import COSE.CoseException;
76
import com.yubico.webauthn.data.AttestationObject;
87
import com.yubico.webauthn.data.RelyingPartyIdentity;
98
import java.io.IOException;
@@ -47,7 +46,7 @@ public void tearDown() {
4746

4847
@Test
4948
public void importRsa()
50-
throws IOException, CoseException, NoSuchAlgorithmException, InvalidKeySpecException {
49+
throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
5150
PublicKey key =
5251
WebAuthnCodecs.importCosePublicKey(
5352
new AttestationObject(
@@ -61,7 +60,7 @@ public void importRsa()
6160

6261
@Test
6362
public void importEcdsa()
64-
throws IOException, CoseException, NoSuchAlgorithmException, InvalidKeySpecException {
63+
throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
6564
PublicKey key =
6665
WebAuthnCodecs.importCosePublicKey(
6766
new AttestationObject(
@@ -75,7 +74,7 @@ public void importEcdsa()
7574

7675
@Test
7776
public void importEddsa()
78-
throws IOException, CoseException, NoSuchAlgorithmException, InvalidKeySpecException {
77+
throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
7978
PublicKey key =
8079
WebAuthnCodecs.importCosePublicKey(
8180
new AttestationObject(

Diff for: test-dependent-projects/java-dep-webauthn-server-core/build.gradle.kts

-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ dependencies {
1111
testImplementation("junit:junit:4.12")
1212
testImplementation("org.mockito:mockito-core:[2.27.0,3)")
1313

14-
// Runtime-only internal dependency of webauthn-server-core
15-
testImplementation("com.augustcellars.cose:cose-java:[1.0.0,2)")
16-
1714
// Transitive dependencies from coreTestOutput
1815
testImplementation("org.scala-lang:scala-library:[2.13.1,3)")
1916
}

Diff for: test-dependent-projects/java-dep-webauthn-server-core/src/test/java/com/yubico/webauthn/BouncyCastleProviderPresenceTest.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.junit.Assert.assertTrue;
44

5-
import COSE.CoseException;
65
import com.yubico.webauthn.data.AttestationObject;
76
import com.yubico.webauthn.data.RelyingPartyIdentity;
87
import java.io.IOException;
@@ -51,7 +50,7 @@ public void bouncyCastleProviderIsNotLoadedAfterInstantiatingRelyingParty() {
5150

5251
@Test
5352
public void bouncyCastleProviderIsNotLoadedAfterAttemptingToLoadEddsaKey()
54-
throws IOException, CoseException, InvalidKeySpecException {
53+
throws IOException, InvalidKeySpecException {
5554
try {
5655
WebAuthnCodecs.importCosePublicKey(
5756
new AttestationObject(

Diff for: test-dependent-projects/java-dep-webauthn-server-core/src/test/java/com/yubico/webauthn/CryptoAlgorithmsTest.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.junit.Assert.assertEquals;
44

5-
import COSE.CoseException;
65
import com.yubico.webauthn.data.AttestationObject;
76
import com.yubico.webauthn.data.RelyingPartyIdentity;
87
import java.io.IOException;
@@ -45,7 +44,7 @@ public void tearDown() {
4544

4645
@Test
4746
public void importRsa()
48-
throws IOException, CoseException, NoSuchAlgorithmException, InvalidKeySpecException {
47+
throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
4948
PublicKey key =
5049
WebAuthnCodecs.importCosePublicKey(
5150
new AttestationObject(
@@ -59,7 +58,7 @@ public void importRsa()
5958

6059
@Test
6160
public void importEcdsa()
62-
throws IOException, CoseException, NoSuchAlgorithmException, InvalidKeySpecException {
61+
throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
6362
PublicKey key =
6463
WebAuthnCodecs.importCosePublicKey(
6564
new AttestationObject(

0 commit comments

Comments
 (0)