Skip to content

Add the core-jvm-gradle-plugin artifact of CoreJvm Compiler - #751

Open
alexander-yevsyukov wants to merge 4 commits into
masterfrom
add-core-jvm-gradle-plugin
Open

Add the core-jvm-gradle-plugin artifact of CoreJvm Compiler#751
alexander-yevsyukov wants to merge 4 commits into
masterfrom
add-core-jvm-gradle-plugin

Conversation

@alexander-yevsyukov

Copy link
Copy Markdown
Contributor

Since core-jvm-compiler 2.0.0-SNAPSHOT.090, the CoreJvm Gradle Plugin
lives in its own thin JAR artifact, core-jvm-gradle-plugin, and
the core-jvm-plugins fat 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 CoreJvmCompiler dependency
object:

  • gradlePluginArtifact and gradlePluginLib(version) — the new plugin
    artifact;
  • fatJarLib(version) — the explicit fat JAR reference;
  • pluginLib(version) stays for compatibility, delegating to
    fatJarLib(), with KDoc steering new code to the explicit functions.

Once dogfoodingVersion moves to 2.0.0-SNAPSHOT.090 or later,
the pluginLib property should switch to gradlePluginLib, as its KDoc
now explains.

See SpineEventEngine/core-jvm-compiler#111 for the module split.

🤖 Generated with Claude Code

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>
@alexander-yevsyukov alexander-yevsyukov self-assigned this Aug 20, 2026
@alexander-yevsyukov alexander-yevsyukov moved this to 🏗 In progress in v2.0 Aug 20, 2026
alexander-yevsyukov and others added 3 commits August 21, 2026 00:29
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>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread .idea/kotlinc.xml
<component name="KotlinJpsPluginSettings">
<option name="externalSystemId" value="Gradle" />
<option name="version" value="2.3.21" />
<option name="version" value="2.4.0" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

1 participant