Migrate off the retired tool-base artifact - #20
Merged
Conversation
Float the shared `config` submodule and refresh the files it distributes. No dependency version moved backwards: every changed constant under `buildSrc/src/main/kotlin/io/spine/dependency/` advanced.
The `io.spine.tools:tool-base` module was retired by tool-base#189 and its contents split across focused modules. `CodeGeneratorRequestWriter` moved from `io.spine.tools.code.proto` to `io.spine.tools.proto.code`, which is published as `io.spine.tools:proto-code`. Also pin `ToolBase.version` to `2.0.0-SNAPSHOT.421`, one ahead of what `config` currently ships.
Only one legacy coordinate is still substituted, and the split modules are declared in `ToolBase` rather than all being forced here.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #20 +/- ##
=========================================
Coverage 14.40% 14.40%
Complexity 9 9
=========================================
Files 5 5
Lines 118 118
Branches 6 6
=========================================
Hits 17 17
Misses 101 101 🚀 New features to boost your workflow:
|
armiol
approved these changes
Aug 19, 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.
Migrates ProtoTap off the retired
io.spine.tools:tool-baseartifact onto thefocused modules that replaced it.
tool-base#189 split the
monolithic
tool-basemodule intofs,code,archive,kotlin-code,java-code,proto-code, andclassic-codegen, and retired theio.spine.tools:tool-baseartifact. ProtoTap used exactly one symbol from it.Imports migrated
io.spine.tools.code.proto.CodeGeneratorRequestWriterio.spine.tools.proto.code.CodeGeneratorRequestWriterprotoc-plugin/src/main/kotlin/io/spine/tools/prototap/protoc/Plugin.ktA repository-wide sweep for the other breaking changes in the split
(
io.spine.tools.OsFamily,io.spine.tools.{div, resolve, toAbsoluteFile, isProtoSource},io.spine.tools.StandardTypes,io.spine.tools.type,Method(MethodSpec),io.spine.tools.java.code.{classSpec, constructorSpec, methodSpec, codeBlock},Generated.dir/SourceRoot.subDir) found no otheroccurrences — ProtoTap does not use any of them.
Dependency constants swapped
protoc-plugin/build.gradle.kts—implementation(ToolBase.lib)→implementation(ToolBase.protoCode).buildSrc/src/main/kotlin/module.gradle.ktsforce(...)list:ToolBase.lib→ToolBase.code,ToolBase.fs,ToolBase.protoCode.substitute(module("io.spine.tools:spine-tool-base")).using(module(ToolBase.lib)).The legacy 1.x coordinate has no successor now that the monolith is gone, and
substituting it onto an artifact that is never published would turn a dormant
rule into a hard resolution failure. Verified that nothing pulls
tool-baseor
spine-tool-basetransitively::protoc-plugin,:gradle-plugin, and:apiruntimeClasspathare all clean.grep -rn "ToolBase\.lib\|io\.spine\.tools:tool-base\|spine-tool-base"over therepository now matches only the explanatory comment in
module.gradle.kts.ToolBasepinned to2.0.0-SNAPSHOT.421./config/pullshipsToolBase.version = "2.0.0-SNAPSHOT.420". This branchdeliberately moves it forward to
2.0.0-SNAPSHOT.421inbuildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt, so the repo'scopy intentionally diverges from
configuntilconfigcatches up. All twelvetool-basemodules used here resolve at.421from the Artifact Registry.No dependency version moved backwards as a result of the
configfloat — everychanged constant under
buildSrc/src/main/kotlin/io/spine/dependency/advanced.Verification
./gradlew cleanthen./gradlew build— SUCCESS (6 tests, 6 passed)../gradlew dokkaGenerate— SUCCESS.docs/dependencies/pom.xmlnow recordsio.spine.tools:proto-code:2.0.0-SNAPSHOT.421and no longer mentions
tool-base.0.16.0→0.17.0, migratingby extra(...)toextra.set(...).spine-code-review,kotlin-engineer,review-docs— all APPROVE.dependency-auditconfirmed no version rollback; its remaining findings concernconfig-distributed files (Validation.kt,Compiler.kt,JacksonV2.kt) thatare out of scope for a consumer repo per
AGENTS.md § Code review.Part of the Tier 1 tool-base split migration.
🤖 Generated with Claude Code