Repository navigation
Drop the force on the unpublished tool-base artifact - #56
Conversation
`config` no longer declares `io.spine.dependency.local.ToolBase.lib`: the all-in-one `io.spine.tools:tool-base` artifact stopped being published as of `2.0.0-SNAPSHOT.420`, and the constant was removed from `ToolBase` in SpineEventEngine/config@2570f27e. The root build script still referenced it in the `force(...)` list, so it no longer compiles against `config` at `master`. The entry was vestigial. `force(...)` only pins a version for an artifact that actually appears in a resolved graph; it never adds one. `base-types` resolves no `io.spine.tools:tool-base` at all, and nothing can depend on an artifact that is no longer published, so the line is removed rather than replaced. The focused modules the list already forces -- `gradlePluginApi`, `jvmTools`, `pluginBase`, `protobufSetupPlugins` and `psiJava` -- cover what `tool-base` was split into. Every remaining constant in the list exists both in the `buildSrc` currently vendored here and in `config` at `master`, so the build script compiles against either. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Artifact Registry already holds `2.0.0-SNAPSHOT.225`, which is also the version `master` declares, so the next free number is `.226`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Regenerated by `./gradlew build`. Besides the version line, the diff carries drift that `master`'s committed report had already accumulated: `poko-annotations` 0.17.1, `sarif4k` 0.6.0 and `kotlinx-serialization-core` and `-json` 1.4.1 appear, `kotlin-stdlib` moves 2.1.21 -> 2.2.20, and the stale `kotlin-stdlib-common`/`-jdk7`/`-jdk8` 1.8.20 and `kotlinx-coroutines-core`/`-core-jvm` 1.7.3 entries drop out. None of that follows from this branch. Regenerating the reports at `master` with no source change at all reproduces exactly the same drift, so it is the committed report that was stale. 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.
🟢 Approved
The removal is narrowly scoped, version metadata is consistent, and no blocking issues were identified.
No open issues 🎉
What changed in this PR
Removes the obsolete ToolBase.lib force entry so base-types remains compatible with the updated shared build configuration.
Changes:
- Removes the unpublished artifact’s version constraint.
- Advances the snapshot version from
.225to.226. - Refreshes dependency reports and publication metadata.
| File | Description |
|---|---|
| version.gradle.kts | Sets the publication version to .226. |
| docs/dependencies/pom.xml | Aligns the documented project version. |
| docs/dependencies/dependencies.md | Refreshes dependency and license information. |
| build.gradle.kts | Removes the obsolete ToolBase.lib reference. |
Review effort: Balanced
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #56 +/- ##
=========================================
Coverage 94.18% 94.18%
Complexity 76 76
=========================================
Files 13 13
Lines 275 275
Branches 26 26
=========================================
Hits 259 259
Misses 12 12
Partials 4 4 🚀 New features to boost your workflow:
|
base-typesatmasterno longer compiled againstconfigatmaster. Itsroot
build.gradle.ktsreferencedio.spine.dependency.local.ToolBase.lib,which
configno longer declares, so the build script failed withUnresolved reference 'lib'.This was found by the
buildDependantstask inconfig, which had just beenrepaired in SpineEventEngine/config#805 and could finally reach its consumers.
Which side was wrong
config's side was deliberate, so the fix belongs here.ToolBase.libwasremoved by SpineEventEngine/config@2570f27e, whose message says so outright:
The constant had been marked
@Deprecatedwith a migration note before it wasdropped, and the surviving
ToolBaseKDoc still records that the all-in-oneio.spine.tools:tool-baseartifact stopped being published as of2.0.0-SNAPSHOT.420, its contents having been split across focused modules.The change
One line deleted from the
force(...)list in the root build script.Nothing replaces it, because the entry was dead.
force(...)inside aresolutionStrategyonly pins a version for a modulethat is already in the graph; it never adds one. And the version it pinned did
not exist: in the
buildSrcvendored here,ToolBase.versionis2.0.0-SNAPSHOT.421, while the highesttool-baseever published is2.0.0-SNAPSHOT.410. So hadtool-basebeen in any graph this force appliedto, resolution on
masterwould already fail with "could not findtool-base:421".
masteris green, so the entry was unreachable, and deletingit can only turn a latent failure into a successful resolution.
No focused module is added in its place. Forcing a module that is not in a
graph does nothing, and none of
archive,code,fs,java-code,kotlin-codeorproto-codeshows up in the resolved reports; adding themwould pin modules with no demonstrated version conflict. The focused modules
the list already forces —
gradlePluginApi,jvmTools,pluginBase,protobufSetupPluginsandpsiJava— cover whattool-basewas split into.The deleted line was also the last consumer of a
@Deprecatedconstant in thebuildSrccurrently vendored here, so the configuration phase loses adeprecation warning as well.
Every remaining constant in that list exists both in the vendored
buildSrcand in
configatmaster, so the build script now compiles against either.The change does not require pulling the new
configfirst.Verification
Reproduced and confirmed with
config's own integration task rather than byhand —
./gradlew clean buildDependants, run from aconfigworktree at the#805 branch, which clones each consumer and overlays the local
config:basebase-typesUnresolved reference 'lib'core-jvm./gradlew buildalso passes here against the vendoredbuildSrc.About the dependency reports
Besides the version line, the regenerated reports carry drift that
masterhadalready accumulated:
poko-annotations,sarif4kandkotlinx-serialization-core/-jsonappear as root artifacts whose-jvmsiblings were already listed at the same versions, and the stale
kotlin-stdlib-common/-jdk7/-jdk81.8.20andkotlinx-coroutines-core/-core-jvm1.7.3entries drop out.Two things worth not chasing:
kotlin-stdlib2.1.21->2.2.20line is not an upgrade. Both arenon-maximal transitive rows; the highest
kotlin-stdlibin the report stays2.4.10, matchingKotlin.runtimeVersion. No artifact's maximum versiondecreased.
kotlin-stdliblicense string changing from "The Apache License, Version2.0" to "Apache-2.0" comes from upstream POM metadata and is cosmetic.
None of it follows from this branch. Regenerating the reports at
masterwithno source change at all reproduces exactly the same drift, so it is the
committed report that was stale.
Version
2.0.0-SNAPSHOT.225->.226. Note that.225is both whatmasterdeclaredand what Artifact Registry already holds, so
.224would have collided with apublished snapshot.
Not fixed here:
core-jvmWith this branch in place,
buildDependantsgets pastbase-typesand thenfails in
core-jvm'sserver-otel/build.gradle.ktsonUnresolved reference 'OpenTelemetryKotlin'.That is the mirror image of this problem, not the same one.
confighas neverdeclared
OpenTelemetryKotlin—git log -S"OpenTelemetryKotlin"over the wholeconfigrepository returns nothing. The file exists only incore-jvm's owncopied
buildSrc, added bycore-jvm@e46a9a04("Draftserver-otelmodule")and never upstreamed, so replacing
buildSrcwholesale makes it disappear.It needs its own change in
configor incore-jvm, and is left out of this PRdeliberately.
🤖 Generated with Claude Code