Remove the proto-descriptor build-cache workaround (#200) - #201
Merged
Conversation
A standalone `generatePom` (run without the Checkstyle/PMD/test tasks in the task graph) had dropped the build-tool dependencies — Checkstyle, PMD, JUnit BOM and the Kotlin build tools — from `docs/dependencies/pom.xml`. Regenerate from a full configuration so the aggregated report matches the one on `master`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Removes the Gradle build-cache opt-out for Protobuf descriptor generation now that the upstream tooling fix is adopted, while also refreshing local Spine dependency versions and tightening version-increment verification behavior for CI and local Maven Local publishing workflows.
Changes:
- Bump project version to
2.0.0-SNAPSHOT.213and refresh dependency reports. - Adopt
tool-base 2.0.0-SNAPSHOT.402(plus related Spine dependency bumps) and remove theexcludeProtoDescriptorsFromBuildCache()workaround frombuild.gradle.kts. - Extend
IncrementGuardwiring/logic so version increment verification runs beforecheckand before Maven Local publishes (when applicable), with tests updated accordingly.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
version.gradle.kts |
Bumps the published project version to 2.0.0-SNAPSHOT.213. |
build.gradle.kts |
Removes the Protobuf descriptor build-cache opt-out workaround from subproject configuration. |
docs/dependencies/pom.xml |
Regenerates the aggregated dependency POM to reflect updated versions/deps. |
docs/dependencies/dependencies.md |
Regenerates the dependency/license report with updated versions and timestamps. |
buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt |
Updates tool-base version constants to .402. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt |
Updates spine-base version constants to .421. |
buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt |
Updates core-jvm-plugins version constants to .080. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/IncrementGuard.kt |
Adjusts when/how version-increment verification is executed and wires it into publish/check task paths. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/IncrementGuardTest.kt |
Adds/extends coverage for the new IncrementGuard decision logic and task wiring. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #201 +/- ##
=========================================
Coverage 90.76% 90.76%
Complexity 466 466
=========================================
Files 62 62
Lines 1625 1625
Branches 90 90
=========================================
Hits 1475 1475
Misses 121 121
Partials 29 29 🚀 New features to boost your workflow:
|
armiol
approved these changes
Jun 26, 2026
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
Removes the temporary
excludeProtoDescriptorsFromBuildCache()workaround now that the upstream root cause is fixed, together with the dependency refresh that adopts the fix.tool-base2.0.0-SNAPSHOT.401 → .402, which includes tool-base#184 — "Fix descriptor set generation when the project version changes" — the fix for the root cause tool-base#183.excludeProtoDescriptorsFromBuildCache()helper and its call frombuild.gradle.kts; thegenerateProto/generateTestProto/generateTestFixturesPrototasks are cacheable again..420 → .421, CoreJvm.380 → .381, CoreJvmCompiler.079 → .080.2.0.0-SNAPSHOT.212 → .213and regenerate the dependency reports.Why
excludeProtoDescriptorsFromBuildCache()opted the descriptor-generating tasks out of the Gradle build cache because their version-named descriptor set (*.desc+desc.ref, backingio.spine.type.KnownTypes) could be restored stale from the cache after a version bump — the build-cache key omitted the project version — making the runtime fail withio.spine.type.UnknownTypeException.That root cause is fixed upstream (tool-base#183, via tool-base#184) and the fix is now adopted here through
tool-base 2.0.0-SNAPSHOT.402, so the workaround is no longer needed.Closes #200.
Verification
A full
./gradlew clean build --build-cache— with the build cache enabled, i.e. the exact scenario the workaround guarded against — completed with 0 test failures and 0UnknownTypeException, including the:datastoreTestcontainers tests that exerciseKnownTypes. The dependency reports (docs/dependencies/pom.xml,dependencies.md) were regenerated from a full configuration so they match the canonical report onmaster.