Repository navigation
0.4.0
Breaking changes
codec-bom no longer inherits from codec-parent, and no longer re-exports Spring Boot's dependency management.
A child inherits its parent's dependencyManagement, and importing a BOM pulls in that BOM's effective dependencyManagement — after inheritance. Because codec-parent imports spring-boot-dependencies for its own build, codec-bom was re-exporting all of it.
Measured on 0.3.0:
| entries | |
|---|---|
exported by codec-bom |
1921 |
| Codec's own | 7 |
leaked from spring-boot-dependencies |
1914 |
Importing codec-bom therefore overrode your versions for JUnit, AssertJ, Jackson, Guava, Netty and much else — silently, and in a way that surfaced far from the BOM. One consumer hit a NoSuchMethodError at JUnit test discovery caused by a partially-downgraded JUnit, which resolves cleanly and fails only at runtime.
This affected 0.1.0, 0.2.0 and 0.3.0. The BOM now manages exactly the seven Codec artifacts.
If you import codec-bom, check whether any version you relied on was actually coming from it. Anything outside org.jwcarman.codec now needs its own pin — most likely your test stack, since Spring Boot's JUnit and AssertJ versions were the ones being leaked.
Fixed
codec-core's published description no longer claims auto-configuration, which moved tocodec-autoconfigurein 0.2.0.
Internal
- The publish workflow passes
-DprocessAllModules=truetoversions:set. A parentless BOM is skipped otherwise, which would publish it still carrying-SNAPSHOT. - The release tag is passed through
env:rather than interpolated into the shell command.