Skip to content

Add settings.gradle.kts; bump PalantirJavaFormat, ToolBase; extend JacksonV2 - #750

Merged
alexander-yevsyukov merged 3 commits into
masterfrom
add-settings-file
Aug 20, 2026
Merged

Add settings.gradle.kts; bump PalantirJavaFormat, ToolBase; extend JacksonV2#750
alexander-yevsyukov merged 3 commits into
masterfrom
add-settings-file

Conversation

@alexander-yevsyukov

@alexander-yevsyukov alexander-yevsyukov commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

1. Add settings.gradle.kts

This repository had no settings file, so Gradle derived the root project name from
the directory and kept searching parent directories for one. Checking config out as
a submodule of a superproject that has its own settings file — such as
SpineEventEngine/summit — made Gradle
bind this directory to that build and refuse to run:

Project directory '.../summit/config' is not part of the build defined by
settings file '.../summit/settings.gradle.kts'.

CI never saw this, because it checks the repository out standalone. But the build
could not be run at all from inside such a superproject, which is how the SDK
repositories are worked on together.

rootProject.name repeats the name Gradle previously derived from the project
directory, so nothing else about the build changes. config was the only Spine SDK
repository without a settings file of its own.

2. Bump PalantirJavaFormat -> 2.97.0

Was 2.91.0; 2.97.0 is the current <latest>/<release> on Maven Central.

The compiler repository had already bumped to 2.97.0 locally, which meant
./config/pull was silently rolling that value backward there. This removes
the cause.

3. Bump ToolBase -> 2.0.0-SNAPSHOT.421

Was 2.0.0-SNAPSHOT.420. .421 is published by
tool-base#190.

Consumer repositories migrating off the retired tool-base artifact need .421,
and had to re-pin it by hand after every ./config/pull while this repository still
shipped .420.

dogfoodingVersion stays at .410. The KDoc on ToolBase.lib keeps naming .420
— that records when the artifact stopped being published, which does not change.

4. Declare jackson-jr-objects and jackson-module-kotlin under JacksonV2

The IntelliJ Platform brings both artifacts on the Jackson 2.x line, and they clash
with the versions projects resolve. JacksonV2 declared neither, so consumers had to
force them through string literals repeating the coordinates at every call site
(five of them in core-jvm-compiler alone).

  • JacksonV2.Junior.objects mirrors Jackson.Junior.objects on the 2.x line.
  • JacksonV2.Module.kotlin mirrors Jackson.moduleKotlin.

Both are added to their objects' modules, so artifacts, artifact(module), and
forceArtifacts(...) pick them up and callers get the version applied for them
instead of interpolating it.

Verification

Run from inside a superproject whose own settings.gradle.kts is present — the exact
condition that used to fail:

  • ./gradlew clean detektBUILD SUCCESSFUL (this repo's CI command)
  • ./gradlew projectsRoot project 'config', unchanged
  • buildSrc buildBUILD SUCCESSFUL, :test and :check executed

🤖 Generated with Claude Code

This repository had no settings file, so Gradle derived the root project name
from the directory and searched parent directories for one. Checking `config`
out as a submodule of a superproject that has its own settings file -- such as
`SpineEventEngine/summit` -- made Gradle bind this directory to that build:

    Project directory '.../summit/config' is not part of the build defined by
    settings file '.../summit/settings.gradle.kts'.

CI was unaffected, since it checks the repository out standalone, but the build
could not be run from inside such a superproject.

`rootProject.name` repeats the name Gradle previously derived, so nothing else
about the build changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
alexander-yevsyukov and others added 2 commits August 19, 2026 19:37
 * `PalantirJavaFormat` 2.91.0 -> 2.97.0, the current release on Maven Central.
   The `compiler` repository had already bumped to 2.97.0 locally, so
   `./config/pull` was rolling that value backward there.

 * `ToolBase` 2.0.0-SNAPSHOT.420 -> .421, published by tool-base#190.
   Consumer repositories migrating off the retired `tool-base` artifact need
   `.421`, and had to re-pin it by hand after every pull while this repository
   still shipped `.420`.

`dogfoodingVersion` stays at `.410`, and the KDoc on `ToolBase.lib` keeps
naming `.420` -- that records when the artifact stopped being published, which
does not change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…onV2`

The IntelliJ Platform brings both artifacts on the Jackson 2.x line, and they
clash with the versions the project resolves. `JacksonV2` declared neither, so
consumers had to force them through string literals repeating the coordinates
at every call site.

 * `JacksonV2.Junior.objects` mirrors `Jackson.Junior.objects` on the 2.x line.
 * `JacksonV2.Module.kotlin` mirrors `Jackson.moduleKotlin`.

Both are added to their objects' `modules`, so `artifacts`, `artifact(module)`,
and `forceArtifacts(...)` pick them up and callers get the version applied for
them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@alexander-yevsyukov alexander-yevsyukov changed the title Add settings.gradle.kts Add settings.gradle.kts; bump PalantirJavaFormat, ToolBase; extend JacksonV2 Aug 19, 2026
alexander-yevsyukov added a commit to SpineEventEngine/core-jvm-compiler that referenced this pull request Aug 19, 2026
`jackson-jr-objects` and the 2.x `jackson-module-kotlin` come only from
the IntelliJ Platform, yet still clash with the versions we resolve. `JacksonV2`
declared neither, so both coordinates were repeated as string literals at five
call sites, each interpolating the version by hand.

`config` now declares them as `JacksonV2.Junior.objects` and
`JacksonV2.Module.kotlin` (SpineEventEngine/config#750). Take the updated
`JacksonV2` and use it:

 * Where the surrounding code already calls `JacksonV2.Module.forceArtifacts`,
   `jackson-module-kotlin` is covered by that call now that it belongs to
   `Module.modules`, and `Junior.forceArtifacts` covers `jackson-jr-objects`.
 * In the one block that forces no other Jackson object, both coordinates come
   from `artifact(module)`, which applies the version.

Also refresh the `pomProvidedModules` doc, which explained why `JacksonV2`
declared neither artifact.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@alexander-yevsyukov
alexander-yevsyukov merged commit 64baf69 into master Aug 20, 2026
2 checks passed
@alexander-yevsyukov
alexander-yevsyukov deleted the add-settings-file branch August 20, 2026 15:31
@github-project-automation github-project-automation Bot moved this from In Review to ✅ Done in v2.0 Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants