Repository navigation
Rebuild with refreshed dependencies - #14
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`./config/pull` overlays `buildSrc` with `cp -R`, which never deletes files that `config` stopped shipping, so this repository kept 8 such files: an old `LicenseReport.kt` and the JaCoCo-era `report/coverage/*`. Coverage is now configured through Kover by the `jvm-module` convention. Each removed file is a byte-for-byte copy of a version `config` once shipped at the same path and has since deleted. This repository has no `buildSrc` files of its own, so nothing it owns is affected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Re-stamp the copyright header with the CodeMatters profile; the version is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Force `Coroutines.bom` in `module.gradle.kts`: `spine-reflect` 2.0.0-SNAPSHOT.200, reached through `logging`, still requests 1.10.2 against the 1.11.0 baseline. - Force Flogger in `build.gradle.kts`: the previous `base-testlib` release reaches the test classpath through `Logging.testLib` and brings Flogger 0.7.4 against the 0.9 pin. - Replace `@NullableDecl` in `LogTruth` with JSpecify's `@Nullable`: the `checker-compat-qual` artifact arrived only with Flogger 0.7.4. - Drop the trailing `;` from the `@InlineMe` replacement in `LogTruth`, which the newer Error Prone rejects. - Register `cleanGenerated` with `register<Delete>(...)` instead of the `by registering` delegate, deprecated for removal in Gradle 10. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fix the direction of the `testlib` and `logging` mutual dependency, and describe `LoggingTest`, `@MuteLogging`, and the deprecated `LogTruth` overloads precisely. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pull `config@8fddc6f1`: Gradle 9.8.1 and `Reflect` 2.0.0-SNAPSHOT.201. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The previous `base-testlib` release reaches the test classpath through the `module-testing` convention (`TestLib.lib`), not through `Logging.testLib`. Also reflow two paragraphs. Co-Authored-By: Claude Opus 5.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. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #14 +/- ##
============================================
+ Coverage 63.67% 64.06% +0.39%
- Complexity 112 113 +1
============================================
Files 26 26
Lines 512 512
Branches 20 20
============================================
+ Hits 326 328 +2
+ Misses 177 176 -1
+ Partials 9 8 -1 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟢 Approved
The repository-owned migration changes are consistent, and the Ubuntu, Windows, reporting, security, and coverage checks pass.
0 open findings
What changed in this PR
Updates TestLib to the current shared configuration and dependency baseline while retaining compatibility with the previous published TestLib artifact.
Changes:
- Upgrades Gradle/config dependencies and version to
2.0.0-SNAPSHOT.214. - Resolves Coroutines/Flogger conflicts and updates nullability and Gradle APIs.
- Applies CodeMatters licensing and regenerates project/dependency documentation.
| File | Description |
|---|---|
.gitmodules, config |
Updates shared configuration and agent submodules. |
build.gradle.kts |
Forces compatible Flogger dependencies. |
buildSrc/src/main/kotlin/module.gradle.kts |
Forces the Coroutines BOM and modernizes task registration. |
version.gradle.kts |
Bumps the publication version and updates extra-property syntax. |
src/main/java/io/spine/testing/logging/LogTruth.java |
Migrates nullability and fixes @InlineMe replacement syntax. |
docs/project.md |
Documents TestLib’s role and architecture. |
docs/dependencies/{dependencies.md,pom.xml} |
Regenerates dependency and POM reports. |
settings.gradle.kts, detekt/detekt-baseline.xml |
Applies the new copyright profile. |
src/main/**, src/test/** |
Re-stamps project-owned source and test headers. |
| Config-managed files | Refreshes shared build tooling, workflows, IDE settings, and agent guidance; excluded from repository-local review per policy. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
`reflect`, `testlib`, and `money` are caught up (SpineEventEngine/reflect#14, SpineEventEngine/testlib#14, SpineEventEngine/money#32), so their first `config/pull` is no longer a migration. Excluding them by default would let them fall behind again. Drop the default exclusion and update the rollout text: the single-repository wave example no longer needs `--include`, and the `retarget` prerequisite is stated for every repository. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Fix the `require_java` crash when `JAVA_HOME` is unset
Under `set -euo pipefail`, probing `${JAVA_HOME:-/nonexistent}/bin/java`
failed the pipeline and aborted the script with exit 127 and no message,
before the JDK 17 fallback could run. Tolerate the failed probe so the
fallback runs and the existing "no JDK found" error stays the only failure.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Add `settings.gradle.kts` naming the root project `summit`
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Describe `documentation` as the spine.io documentation area
`documentation` is the documentation area of the spine.io site, not only
a Spine 1.x project. Correct the note in the graph template and the reason
`plan` prints for excluding the repository, and regenerate
`docs/dependency-graph.md`, which also brings it in line with the template's
current formatting.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Add the Gradle wrapper
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update the IDEA inspection profile
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Add the `tool-base` split migration plan
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update submodule pointers
Record the commits currently checked out:
- `agents`, `base-libraries`, `config`, `core-jvm-compiler`, `gcloud-jvm`,
and `jdbc-storage`: their `master` tips.
- `core-jvm`: a commit on its `claude/*` branches, not yet on `master`.
- `reflect`: the head of the open straggler catch-up PR
(SpineEventEngine/reflect#14, branch `cascade-refresh-219fef6`).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Bump Gradle -> `9.8.1`
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Archive the completed wave's task files
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Record detekt's `Configuration.setVisible` deprecation as third-party
Gradle 9.8 reports `Configuration.setVisible(boolean)` as deprecated. The call
comes from the detekt Gradle plugin, like the `ReportingExtension.file` warning
already listed, so no Spine repository can fix it in its own code.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Keep `cascade plan` from overwriting an archived wave
`plan` wrote the new manifest through `manifest_path`, which falls back to
`archive/` when no active manifest exists. Planning a wave whose slug matched
an archived one therefore overwrote the archived manifest. Successive
single-repo waves against the same `config` commit share a slug, so this hit
the straggler catch-up when `testlib` followed `reflect`.
Write the manifest to the top level explicitly, refuse a slug whose wave is
already archived, and add `--slug-suffix <word>` to give such a wave its own
name. Document the one-repository-at-a-time recipe in `rebuild.md`.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update the `config` submodule pointer
Record `config` at the merge of SpineEventEngine/config#784, which bumps Gradle to 9.8.1 and closes the `reflect` catch-up wave.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
* Update cascade state
* Archive the completed wave's task files
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update the `testlib` submodule pointer
Record `testlib` at the merge of SpineEventEngine/testlib#14, its straggler catch-up.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
* Update the `config` submodule pointer
Record `config` at the merge of SpineEventEngine/config#785, which closes the `testlib` catch-up wave.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update shared agent tooling and config (./config/pull)
Pull `config@3409e7dd`. Keep `summit`'s own `.claude/settings.json`: the shared
copy would drop its `git push --force` deny rules, its `git commit` and
`./cascade` allowances, and the `git tag` ask rule.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update submodule pointers
Record the `master` tips of `agents`, `core-jvm`, `core-jvm-compiler`,
`delivery-server`, `dokka-tools`, `money` (with the merged straggler catch-up,
SpineEventEngine/money#32), and `reflect` (moved off its merged wave branch).
`tool-base` stays as it is: its checkout is on a feature branch of a separate task.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update cascade state
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Archive the completed wave's task files
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update the `tool-base` submodule pointer
Record `tool-base` at the merge of SpineEventEngine/tool-base#193, which stops `GeneratedSourcePlugin` from invoking `Task.project` at execution time.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Show repeated `--exclude` in the single-repository wave example
Each `--exclude` takes one repository, so a space-separated list after a single `--exclude` stops `plan` with its usage message. Repeat the option in the example and say so in the prose; also note that the shared-name case applies to `refresh` waves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Stop excluding the former stragglers from `refresh` waves
`reflect`, `testlib`, and `money` are caught up (SpineEventEngine/reflect#14,
SpineEventEngine/testlib#14, SpineEventEngine/money#32), so their first
`config/pull` is no longer a migration. Excluding them by default would let
them fall behind again. Drop the default exclusion and update the rollout
text: the single-repository wave example no longer needs `--include`, and the
`retarget` prerequisite is stated for every repository.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Update submodule pointers
Record the current `master` tips of `core-jvm` and `core-jvm-compiler`, which advanced after the previous pointer update.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Catches
testlibup to the current sharedconfigbaseline (config@8fddc6f1,which includes Gradle 9.8.1 and
Reflect2.0.0-SNAPSHOT.201). The repository lastpulled
configin April 2026, about 720 commits behind, so this is a migrationrather than a routine refresh. Part of the straggler
catch-up driven from
summit(docs/rollout/rebuild.md, wavecascade-refresh-219fef6-testlib), following SpineEventEngine/reflect#14.The version moves to
2.0.0-SNAPSHOT.214, and the repository switches to theCodeMatters copyright profile.
Commits
./config/pull), twice: themigration to
config@219fef6d, then a second pull ofconfig@8fddc6f1afterBump Gradle ->
9.8.1, Reflect ->2.0.0-SNAPSHOT.201config#784 merged (Gradle 9.8.1,Reflect.201).2.0.0-SNAPSHOT.214: also migratesversion.gradle.ktsfrom the deprecated
by extra(...)toextra.set(...).buildSrcfiles:./config/pulloverlaysbuildSrcwithcp -R, which never deletes filesconfigstopped shipping. The 8 removedfiles (an old
LicenseReport.ktand the JaCoCo-erareport/coverage/*) areunedited copies of files
configonce shipped and has since deleted.headers to CodeMatters profile: re-stamps the 65 project-owned files, headers
only. A second
Bump versioncommit re-stamps the header ofversion.gradle.kts; the version policy requires that subject for any changeto the file.
Coroutines.bomand Flogger: the previousbase-testlibrelease,which the
module-testingconvention puts on the test classpath(
TestLib.lib), still requests Coroutines 1.10.2 and Flogger 0.7.4 againstthe 1.11.0 and 0.9 baselines. (The commit message attributes the Flogger
one to
Logging.testLib; that attribution is wrong, the fix is not.);@NullableDeclinLogTruthwith JSpecify's@Nullable, becausechecker-compat-qualarrived only with Flogger 0.7.4;;from the@InlineMereplacement, which the newerError Prone rejects;
cleanGeneratedwithregister<Delete>(...)instead of theby registeringdelegate, deprecated for removal in Gradle 10.docs/project.md: fills in the templatethe pull seeded; two follow-up commits correct it after review.
// Reason:comment.docs/dependencies/regenerated by the build.Verification
./gradlew clean build dokkaGeneratepasses; 106/106 tests.warnings in project sources.
tool-base'sGeneratedSourcePlugincallsTask.projectat execution time(
generateTestProto); it needs a fix intool-base. The other twodeprecations come from the Gradle Doctor and detekt plugins.
pre-prpassed at this PR's HEAD, withspine-code-review,kotlin-engineer,and
review-docsall approving.2.0.0-SNAPSHOT.214is published to Maven Local.🤖 Generated with Claude Code