Add the core-jvm-gradle-plugin artifact of CoreJvm Compiler - #751
Add the core-jvm-gradle-plugin artifact of CoreJvm Compiler#751alexander-yevsyukov wants to merge 4 commits into
core-jvm-gradle-plugin artifact of CoreJvm Compiler#751Conversation
Since `core-jvm-compiler` 2.0.0-SNAPSHOT.090, the CoreJvm Gradle Plugin lives in its own thin JAR artifact, and the `core-jvm-plugins` fat JAR carries only the Compiler plugins. Declare the new artifact in the `CoreJvmCompiler` dependency object, so that consumer repositories can refer to both artifacts by name. See SpineEventEngine/core-jvm-compiler#111 for the module split. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Both `version` and `dogfoodingVersion` move to `2.0.0-SNAPSHOT.090` — the first release providing the `core-jvm-gradle-plugin` artifact. The properties speaking retired artifacts or packaging details are gone rather than deprecated: `pluginLib` named an artifact that no longer exists, and the `fatJar` terminology exposed an implementation detail that may change without affecting consumers. The object now speaks in terms of roles: `gradlePlugin` (resolved with `dogfoodingVersion`) and `compilerPlugins` (resolved with `version`), each with a one-arg overload for explicit versions. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
IDEA rewrites `kotlinc.xml` on its own (JVM target, bundled Kotlin plugin version), so a tracked copy churns on every machine. The file stays on disk but is untracked here, and consumers get the same treatment on their next `./config/pull`: - `migrate` generalizes the `misc.xml` untracking and the preserve/restore around the `.idea` overlay into a loop over both IDE-managed files, so a consumer's own settings survive the pull and any committed copy is untracked. - `update-gitignore.sh` retires the `!.idea/kotlinc.xml` negation the baseline shipped until 2025, so legacy raw-copied `.gitignore`s stop re-including the file. The `retired_negations` list now reaches `awk` via `ENVIRON[]` — an `-v` assignment cannot carry the embedded newline a multi-entry list requires. - `test-update-gitignore.sh` covers the new negation in both merge paths; the new `test-migrate-ide-files.sh` pins `migrate`'s half end-to-end: untracked, on disk, ignored, consumer content preserved, `git add -A` proof, idempotent re-run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The plan, drafted in `core-jvm-compiler` after the 2026-08-19/20 Central consumption-limit incident, arrives with two decision records from its review here: - Phase 1: the Windows CI job runs only on pull requests, so no shared Gradle cache entry can exist for it and every Windows PR job faces Central cold. Workflow changes are deferred by decision — observe CI, re-open on the next Central-caused failure. - Phase 2: migrating the affected `ProjectBuilder` specs to TestKit was considered and set aside; the stub fixture remains the approach, with a per-test rule for choosing between the two. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a8f55a7e8a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <component name="KotlinJpsPluginSettings"> | ||
| <option name="externalSystemId" value="Gradle" /> | ||
| <option name="version" value="2.3.21" /> | ||
| <option name="version" value="2.4.0" /> |
There was a problem hiding this comment.
Remove kotlinc.xml from the index
The new .gitignore rule cannot affect a file that remains tracked, and this commit still includes .idea/kotlinc.xml in the index (git ls-files confirms it). Consequently, opening the config repository in a different IDE version can continue producing tracked compiler-setting churn—and may block or contaminate subsequent config pulls—despite the migration declaring this file project-local; delete it from the repository while leaving developers' ignored working copies intact.
AGENTS.md reference: AGENTS.md:L120-L122
Useful? React with 👍 / 👎.
Since
core-jvm-compiler2.0.0-SNAPSHOT.090, the CoreJvm Gradle Pluginlives in its own thin JAR artifact,
core-jvm-gradle-plugin, andthe
core-jvm-pluginsfat JAR carries only the Compiler plugins.The POM of the plugin artifact declares a runtime dependency on the fat
JAR, so consumers receive the same graph as before the split.
This PR declares the new artifact in the
CoreJvmCompilerdependencyobject:
gradlePluginArtifactandgradlePluginLib(version)— the new pluginartifact;
fatJarLib(version)— the explicit fat JAR reference;pluginLib(version)stays for compatibility, delegating tofatJarLib(), with KDoc steering new code to the explicit functions.Once
dogfoodingVersionmoves to 2.0.0-SNAPSHOT.090 or later,the
pluginLibproperty should switch togradlePluginLib, as its KDocnow explains.
See SpineEventEngine/core-jvm-compiler#111 for the module split.
🤖 Generated with Claude Code