Rebuild with refreshed dependencies - #328
Conversation
TEMPORARY consumer-copy edits: CoreJvmCompiler .092 and the Compiler dogfooding floor .069, so the build script and the plugin classpath share one generation. Superseded by the `config` pin bump once it publishes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Force the kotlinx pair, Caffeine, and the Protobuf runtime on the build script and in the module conventions: floor artifacts request the pre-refresh versions, tripping `failOnVersionConflict()`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Force the Time artifacts: the refreshed compiler pins the current Time while floor artifacts still request the previous one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Restore the CoreJvm Compiler floor to its published version. That repository is built after this one, so its floor must name an artifact the registry already serves. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The published CoreJvm Compiler floor requests the previous patch of both Jackson generations, which `failOnVersionConflict()` cannot settle. Align them by resolution rule rather than by `force`: the conflict surfaces on the plugin-managed `spineCompiler` classpath, which honours rules but not forces, so the existing `forceArtifacts` calls never reach it. `jackson-annotations` is excluded because it carries its own version line; forcing it to the 2.x value would request an artifact that does not exist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Pin `jackson-annotations` to its own version line rather than excluding it. Excluding left it the one Jackson artifact with no version management on the `spineCompiler` classpath, since `force` does not reach there either. - Read the group identifiers from the dependency objects. The rule exists because Jackson changed its group between generations, so spelling the group as a literal beside a version taken from the object invites exactly the drift the objects prevent. - Give the substitution a `because(...)`, so a resolution report traces back to the CoreJvm Compiler floor rather than saying only "selected by rule". - Drop a duplicated `Time.lib` from a single `force(...)` call and put `Time.javaExtensions` beside the entry it belongs with. - Record why this block carries no `isDokka` guard: verified that adding one fails `dokkaGenerate`, because Dokka requests an `io.spine:spine-base` version that is no longer published and these forces rewrite it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
🟢 Approval recommended
Changes are consistent dependency/version refreshes plus targeted, well-scoped resolutionStrategy adjustments, with no dangling references found for the removed AppEngine pin.
Pull request overview
Rebuilds validation against the refreshed Spine dependency baseline by bumping pinned versions and adjusting Gradle resolution rules to keep transitive dependency graphs consistent (notably for compiler/Dokka classpaths).
Changes:
- Bumped the project version (
2.0.0-SNAPSHOT.463→2.0.0-SNAPSHOT.464) and refreshed published dependency report metadata. - Advanced numerous pinned dependency versions in
buildSrc(Spine, Protobuf, Kotlin/KotlinX, Jackson, gRPC, PMD, etc.). - Updated Gradle dependency resolution/forcing rules to better align KotlinX (BOM + AtomicFU), Protobuf runtime, Jackson generations, and Time artifacts across configurations (including Dokka-related paths).
File summaries
| File | Description |
|---|---|
| version.gradle.kts | Bumps the library publish version to 2.0.0-SNAPSHOT.464. |
| docs/dependencies/pom.xml | Regenerates dependency report POM with refreshed versions. |
| buildSrc/src/main/kotlin/module.gradle.kts | Strengthens dependency alignment/forcing (Jackson rule alignment; forces Coroutines BOM, AtomicFU, Protobuf runtime, Time Java extensions; Dokka-related rationale). |
| buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt | Updates Kotest version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt | Updates JUnit/JUnit Platform version pins. |
| buildSrc/src/main/kotlin/io/spine/dependency/storage/PostgreSql.kt | Updates PostgreSQL JDBC driver version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/storage/MySql.kt | Updates MySQL JDBC driver version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt | Updates Validation artifacts version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt | Updates ToolBase version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt | Updates Spine Time version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt | Updates ProtoTap version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt | Updates Spine Logging version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt | Updates Core JVM compiler plugin/test versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt | Updates Core JVM library version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt | Updates compiler fallback versions used by build tooling. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt | Updates Spine Change version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt | Updates Spine Base Types version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt | Updates Spine Base version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Roaster.kt | Updates Roaster version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Protobuf.kt | Updates Protobuf version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Plexus.kt | Updates Plexus Utils version and adjusts comment to match 4.x usage. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Okio.kt | Updates Okio version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Netty.kt | Updates Netty version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Kotlin.kt | Updates Kotlin runtime/embeddable version pins and clarifies embedded compiler meaning. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/JacksonV2.kt | Updates Jackson 2.x BOM/version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Jackson.kt | Updates Jackson 3.x version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/HttpClient.kt | Updates Google HTTP Client version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Guava.kt | Updates Guava version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Grpc.kt | Updates gRPC BOM/version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/GoogleApis.kt | Updates Google Auth Library version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Firebase.kt | Updates Firebase Admin SDK version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/CommonsLogging.kt | Updates Commons Logging version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/CommonsCodec.kt | Updates Commons Codec version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/AppEngine.kt | Removes AppEngine dependency pin (no longer used). |
| buildSrc/src/main/kotlin/io/spine/dependency/kotlinx/Serialization.kt | Updates KotlinX Serialization version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/kotlinx/Coroutines.kt | Updates KotlinX Coroutines BOM/version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/kotlinx/AtomicFu.kt | Updates AtomicFU version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/build/Pmd.kt | Updates PMD version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/build/Ksp.kt | Updates KSP version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/build/JSpecify.kt | Updates JSpecify version pin and copyright year. |
| buildSrc/src/main/kotlin/io/spine/dependency/build/ErrorProne.kt | Updates ErrorProne Gradle plugin version pin. |
| buildSrc/src/main/kotlin/io/spine/dependency/build/CheckerFramework.kt | Updates Checker Framework annotations version pin. |
| buildSrc/build.gradle.kts | Updates buildSrc tool/plugin versions (grgit, Kotlin embedded, Guava, ErrorProne plugin, shadow, junit/kotest, zip4j, etc.). |
| build.gradle.kts | Extends buildscript forcing to include Coroutines BOM, AtomicFU, and Caffeine to avoid pre-refresh transitive floors. |
Review details
- Files reviewed: 44/46 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #328 +/- ##
=========================================
Coverage 92.63% 92.63%
Complexity 363 363
=========================================
Files 84 84
Lines 2090 2090
Branches 157 157
=========================================
Hits 1936 1936
Misses 110 110
Partials 44 44 🚀 New features to boost your workflow:
|
`because(...)` annotates the version selection, and surfaces in `dependencyInsight` as the reason a coordinate resolved the way it did. It carried the mechanism instead -- that this classpath honours rules rather than forces -- which answers a question the reader of that report is not asking, and which the surrounding comment already explains. State the reason the versions need aligning at all. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
It performs a broad dependency refresh with build-wide resolution-strategy changes that can have wide-ranging effects and warrants final human verification.
Review details
- Files reviewed: 44/46 changed files
- Comments generated: 0 new
- Review effort level: Lite
Summary
Automated cascade wave: rebuild against the refreshed dependency baseline.
Part of a cross-repository wave driven from
summit(seesummit/docs/rollout/rebuild.md); this PR opened only after every dependencyversion pinned here was verified present in the public registry.
Commits
./config/pull) — floated sharedtooling and the config-distributed build files (absent when config was
already current).
io.spine.dependency.localconstantsadvanced to the wave's upstream versions (may appear twice after a drift
refresh).
wave's coordinated target.
docs/dependencies/regenerated by the cleanbuild.
mechanical source fixes; review this commit with extra care.
Verification
./gradlew clean build dokkaGenerategreen locally against the wave'sartifacts (mavenLocal until upstream publication, the registry afterwards).
pre-prreviewers ran at the exact HEAD of this PR (sentinel-gated).europe-maven.pkg.dev/spine-event-enginemetadata beforegh pr create.