Bump ToolBase to 2.0.0-SNAPSHOT.403 to fix descriptor-set build-cache bug#80
Merged
Conversation
… bug `GenerateProtoTask` restored a stale, wrong-version `known_types` descriptor set from the shared Gradle build cache after a project version bump: the descriptor set file name embeds the Maven version but was not part of the task's cache key. Consumer builds then failed with `io.spine.type.UnknownTypeException` for foundational types at test runtime (observed in core-jvm PR #1645, version `.410 -> .411`). `DescriptorSetFilePlugin` is applied by the Compiler Gradle plugin and runs on the plugin/buildscript classpath, whose tool-base version is fixed by the Compiler's own pin -- not the consumer's project dependencies. The upstream fix (tool-base `502e3dfe`, first shipped in `2.0.0-SNAPSHOT.403`) keys the descriptor-set cache on the file name; it reaches consumers only by advancing the Compiler's pin. - ToolBase `.402 -> .403` (`version` and `dogfoodingVersion`). - Refresh other local Spine dependencies: Base `.421 -> .423`, Logging `.419 -> .422`, Validation `.446 -> .449`. - Bump `compilerVersion` `.060 -> .061`. - Regenerate dependency reports; update the `config` submodule. Time is intentionally held at `.242`: bumping it to `.244` introduced a `spine-time` version skew (the `params` module resolves it transitively at `.242`), pending an ecosystem-wide move. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Advances the Spine Compiler’s pinned ToolBase snapshot to 2.0.0-SNAPSHOT.403 so consumers pick up the upstream fix for GenerateProtoTask descriptor-set build-cache keying (preventing stale/wrong-version descriptor sets after a project version bump). The PR also aligns related local snapshot pins and regenerates dependency reports to reflect the updated resolved graph.
Changes:
- Bump Compiler version to
2.0.0-SNAPSHOT.061and refresh generated dependency docs accordingly. - Update local dependency pins: ToolBase
.402 → .403, Base.421 → .423, Logging.419 → .422, Validation.446 → .449. - Regenerate dependency reports (
docs/dependencies/*) to match the new resolution.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| version.gradle.kts | Bumps the published/compiler version to 2.0.0-SNAPSHOT.061. |
| docs/dependencies/pom.xml | Regenerated POM reflecting updated first-level dependency versions (ToolBase/Base/Logging/Validation) and compiler version. |
| docs/dependencies/dependencies.md | Regenerated license/dependency report for 2.0.0-SNAPSHOT.061 and updated resolved transitive versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt | Bumps Validation snapshot pin to .449. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt | Bumps ToolBase (and dogfooding) snapshot pin to .403 (cache fix delivery). |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt | Bumps Logging snapshot pin to .422. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt | Bumps Base snapshot pins (including buildscript) to .423. |
armiol
approved these changes
Jul 7, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #80 +/- ##
=========================================
Coverage 76.60% 76.60%
Complexity 687 687
=========================================
Files 205 205
Lines 4018 4018
Branches 400 400
=========================================
Hits 3078 3078
Misses 810 810
Partials 130 130 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
GenerateProtoTaskrestored a stale, wrong-versionknown_typesdescriptor set from the shared Gradle build cache after a project version bump: the descriptor-set file name embeds the Maven version, but that name was not part of the task's cache key. Consumer builds then failed at test runtime withio.spine.type.UnknownTypeExceptionfor foundational types (e.g.spine.core.CommandId) — observed in core-jvm PR #1645 (version.410 → .411), 74 failures across:core:testand:client:test.DescriptorSetFilePluginis applied by the Compiler Gradle plugin and runs on the plugin/buildscript classpath, whose tool-base version is fixed by the Compiler's own pin — not by the consumer's project dependencies. So even a consumer already pinning tool-base.403still generated descriptors with the unfixed.402code the Compiler dragged in. The upstream fix (tool-base502e3dfe, "Key the descriptor-set cache on the file name, not just the version", first shipped in2.0.0-SNAPSHOT.403) keys the cache on the descriptor-set file name; it reaches consumers only by advancing the Compiler's pin.Changes
.402 → .403(version+dogfoodingVersion) — the fix..421 → .423, Logging.419 → .422, Validation.446 → .449.compilerVersion.060 → .061.docs/dependencies/{dependencies.md,pom.xml}; float theconfigsubmodule.spine-timeheld at.242: bumping it to.244introduced a version skew (theparamsmodule resolves it transitively at.242), so it is left for a coordinated ecosystem move rather than forced.Verification
./gradlew buildis green; no"uses several versions"dependency-conflict warnings.Downstream
Once a Compiler carrying tool-base
.403+ is published, core-jvm bumps its Compiler pin and removes its temporaryworkAroundDescriptorSetCacheBug()(which disablesGenerateProtoTaskcaching to unblock PR #1645).🤖 Generated with Claude Code