From 9ac62ee167fb09e8525b9c91bcc5fb54ff6ee776 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Thu, 4 Jun 2026 17:19:37 +0100 Subject: [PATCH 1/2] Point `SourceCodeDirectory` import at its new `tool-base` location MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `SourceCodeDirectory` moved from `io.spine.code.fs` (in the published `spine-base` artifact) to `io.spine.tools.fs` in `tool-base`, where its only consumers live. Update the 9 importing files accordingly. BLOCKED — does not compile yet. mc-js is on an old dependency baseline (spine-base 2.0.0-SNAPSHOT.195, spine-tool-base .192, legacy `io.spine.internal.dependency` layout, config v1). The moved class only exists in spine-base .400 / tool-base .390 (new `io.spine.dependency` layout, with the `spine-` artifact prefix dropped for the tools group). Compiling this requires first modernizing mc-js — and its model-compiler / mc-java dependencies — to those versions. Tracked as a separate project. Co-Authored-By: Claude Opus 4.8 --- .../java/io/spine/tools/mc/js/code/index/CreateParsers.java | 2 +- .../java/io/spine/tools/mc/js/code/index/GenerateIndexFile.java | 2 +- .../io/spine/tools/mc/js/code/step/AppendTypeUrlGetter.java | 2 +- .../main/java/io/spine/tools/mc/js/code/step/CodeGenStep.java | 2 +- .../tools/mc/js/code/step/CompiledProtoBelongsToModule.java | 2 +- mc-js/src/main/java/io/spine/tools/mc/js/fs/FileWriter.java | 2 +- .../java/io/spine/tools/mc/js/code/given/TestCodeGenStep.java | 2 +- .../io/spine/tools/mc/js/code/index/GenerateIndexFileTest.java | 2 +- .../java/io/spine/tools/mc/js/code/step/CodeGenStepTest.java | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mc-js/src/main/java/io/spine/tools/mc/js/code/index/CreateParsers.java b/mc-js/src/main/java/io/spine/tools/mc/js/code/index/CreateParsers.java index 7ec97f4..30f2380 100644 --- a/mc-js/src/main/java/io/spine/tools/mc/js/code/index/CreateParsers.java +++ b/mc-js/src/main/java/io/spine/tools/mc/js/code/index/CreateParsers.java @@ -30,10 +30,10 @@ import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableList; import com.google.protobuf.Descriptors.FileDescriptor; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileDescriptors; import io.spine.code.proto.FileSet; import io.spine.code.proto.TypeSet; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.fs.FileName; import io.spine.tools.mc.js.code.CodeWriter; import io.spine.tools.mc.js.code.step.CodeGenStep; diff --git a/mc-js/src/main/java/io/spine/tools/mc/js/code/index/GenerateIndexFile.java b/mc-js/src/main/java/io/spine/tools/mc/js/code/index/GenerateIndexFile.java index c09e240..ecde446 100644 --- a/mc-js/src/main/java/io/spine/tools/mc/js/code/index/GenerateIndexFile.java +++ b/mc-js/src/main/java/io/spine/tools/mc/js/code/index/GenerateIndexFile.java @@ -27,9 +27,9 @@ package io.spine.tools.mc.js.code.index; import com.google.common.annotations.VisibleForTesting; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileSet; import io.spine.code.proto.TypeSet; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.fs.FileName; import io.spine.tools.mc.js.code.CodeWriter; import io.spine.tools.mc.js.code.step.CodeGenStep; diff --git a/mc-js/src/main/java/io/spine/tools/mc/js/code/step/AppendTypeUrlGetter.java b/mc-js/src/main/java/io/spine/tools/mc/js/code/step/AppendTypeUrlGetter.java index aa69570..bda3f02 100644 --- a/mc-js/src/main/java/io/spine/tools/mc/js/code/step/AppendTypeUrlGetter.java +++ b/mc-js/src/main/java/io/spine/tools/mc/js/code/step/AppendTypeUrlGetter.java @@ -28,10 +28,10 @@ import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.Descriptors.FileDescriptor; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileSet; import io.spine.code.proto.TypeSet; import io.spine.tools.code.Line; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.code.MethodReference; import io.spine.tools.js.code.TypeName; import io.spine.tools.mc.js.code.CodeWriter; diff --git a/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CodeGenStep.java b/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CodeGenStep.java index 1e6db82..0e12007 100644 --- a/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CodeGenStep.java +++ b/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CodeGenStep.java @@ -26,8 +26,8 @@ package io.spine.tools.mc.js.code.step; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileSet; +import io.spine.tools.fs.SourceCodeDirectory; import static com.google.common.base.Preconditions.checkNotNull; diff --git a/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CompiledProtoBelongsToModule.java b/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CompiledProtoBelongsToModule.java index c3fb5f3..0edae18 100644 --- a/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CompiledProtoBelongsToModule.java +++ b/mc-js/src/main/java/io/spine/tools/mc/js/code/step/CompiledProtoBelongsToModule.java @@ -26,8 +26,8 @@ package io.spine.tools.mc.js.code.step; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.SourceFile; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.fs.FileName; import io.spine.tools.js.fs.JsFiles; diff --git a/mc-js/src/main/java/io/spine/tools/mc/js/fs/FileWriter.java b/mc-js/src/main/java/io/spine/tools/mc/js/fs/FileWriter.java index 1c99546..3a0024f 100644 --- a/mc-js/src/main/java/io/spine/tools/mc/js/fs/FileWriter.java +++ b/mc-js/src/main/java/io/spine/tools/mc/js/fs/FileWriter.java @@ -28,7 +28,7 @@ import com.google.common.base.Charsets; import com.google.protobuf.Descriptors.FileDescriptor; -import io.spine.code.fs.SourceCodeDirectory; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.fs.FileName; import io.spine.tools.mc.js.code.CodeWriter; diff --git a/mc-js/src/test/java/io/spine/tools/mc/js/code/given/TestCodeGenStep.java b/mc-js/src/test/java/io/spine/tools/mc/js/code/given/TestCodeGenStep.java index d665d6b..6b2332c 100644 --- a/mc-js/src/test/java/io/spine/tools/mc/js/code/given/TestCodeGenStep.java +++ b/mc-js/src/test/java/io/spine/tools/mc/js/code/given/TestCodeGenStep.java @@ -26,8 +26,8 @@ package io.spine.tools.mc.js.code.given; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileSet; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.mc.js.code.step.CodeGenStep; import javax.annotation.Nullable; diff --git a/mc-js/src/test/java/io/spine/tools/mc/js/code/index/GenerateIndexFileTest.java b/mc-js/src/test/java/io/spine/tools/mc/js/code/index/GenerateIndexFileTest.java index 58b6a8e..2a0cba3 100644 --- a/mc-js/src/test/java/io/spine/tools/mc/js/code/index/GenerateIndexFileTest.java +++ b/mc-js/src/test/java/io/spine/tools/mc/js/code/index/GenerateIndexFileTest.java @@ -27,8 +27,8 @@ package io.spine.tools.mc.js.code.index; import com.google.protobuf.Descriptors.FileDescriptor; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileSet; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.fs.FileName; import io.spine.tools.js.fs.JsFiles; import io.spine.tools.mc.js.code.CodeWriter; diff --git a/mc-js/src/test/java/io/spine/tools/mc/js/code/step/CodeGenStepTest.java b/mc-js/src/test/java/io/spine/tools/mc/js/code/step/CodeGenStepTest.java index d1f2911..82b483f 100644 --- a/mc-js/src/test/java/io/spine/tools/mc/js/code/step/CodeGenStepTest.java +++ b/mc-js/src/test/java/io/spine/tools/mc/js/code/step/CodeGenStepTest.java @@ -27,9 +27,9 @@ package io.spine.tools.mc.js.code.step; import com.google.common.collect.ImmutableSet; -import io.spine.code.fs.SourceCodeDirectory; import io.spine.code.proto.FileDescriptors; import io.spine.code.proto.FileSet; +import io.spine.tools.fs.SourceCodeDirectory; import io.spine.tools.js.fs.DefaultJsPaths; import io.spine.tools.mc.js.code.given.GivenProject; import io.spine.tools.mc.js.code.given.TestCodeGenStep; From c1e50c2f2407b26957fbb16541127437b8316300 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Thu, 4 Jun 2026 17:27:57 +0100 Subject: [PATCH 2/2] Add task note for the `SourceCodeDirectory` relocation Document the mc-js side of the upstream move of `SourceCodeDirectory` to `tool-base`: the committed (but currently blocked) import rewrite, why it does not compile yet, and the prerequisite chain to unblock it. Co-Authored-By: Claude Opus 4.8 --- ...cate-source-code-directory-to-tool-base.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .agents/tasks/relocate-source-code-directory-to-tool-base.md diff --git a/.agents/tasks/relocate-source-code-directory-to-tool-base.md b/.agents/tasks/relocate-source-code-directory-to-tool-base.md new file mode 100644 index 0000000..09357c6 --- /dev/null +++ b/.agents/tasks/relocate-source-code-directory-to-tool-base.md @@ -0,0 +1,70 @@ +--- +slug: relocate-source-code-directory-to-tool-base +branch: relocate-source-code-directory-to-tool-base +owner: claude +status: blocked +started: 2026-06-04 +--- + +## Goal + +Follow the upstream relocation of `SourceCodeDirectory` (and +`AbstractDirectory`) out of the published `spine-base` artifact into +`tool-base`. In `mc-js` this means re-pointing the import +`io.spine.code.fs.SourceCodeDirectory` → +`io.spine.tools.fs.SourceCodeDirectory` in the 9 files that use it. + +## Status — BLOCKED + +The 9-file import rewrite is **committed on this branch** but **does not +compile yet**, and won't until `mc-js` is modernized to the new +dependency baseline. + +Rewritten + committed (import FQN + import order): +- `mc-js/.../code/index/CreateParsers.java` +- `mc-js/.../code/index/GenerateIndexFile.java` +- `mc-js/.../code/step/AppendTypeUrlGetter.java` +- `mc-js/.../code/step/CodeGenStep.java` +- `mc-js/.../code/step/CompiledProtoBelongsToModule.java` +- `mc-js/.../fs/FileWriter.java` +- `mc-js/.../code/given/TestCodeGenStep.java` (test) +- `mc-js/.../code/index/GenerateIndexFileTest.java` (test) +- `mc-js/.../code/step/CodeGenStepTest.java` (test) + +## Why it is blocked + +`mc-js` (master and feature branches) is on the legacy +`io.spine.internal.dependency.Spine` baseline: + +- `spine-base` `2.0.0-SNAPSHOT.195`, `spine-tool-base` `.192`, + `spine-model-compiler` + `spine-mc-java-plugins` `.175`. +- `config` submodule on the **v1** line. + +The moved class only exists in `spine-base 2.0.0-SNAPSHOT.400` / +`tool-base 2.0.0-SNAPSHOT.390`, which: + +- use the new `io.spine.dependency` layout, **and** +- **drop the `spine-` prefix** for the tools group + (`spine-tool-base` → `tool-base`, `spine-plugin-base` → `plugin-base`). + +`mc-js` is built **on top of** `model-compiler` / `mc-java`, so the +upgrade cascades — a version bump alone cannot resolve it. + +## Prerequisite chain to unblock (separate, multi-repo project) + +1. Modernize and publish `model-compiler` and `mc-java` to `spine-base` + `.400`. +2. Migrate `mc-js`'s `config` submodule (v1 → current) and `buildSrc` + dependency layout to `io.spine.dependency`. +3. Bump `mc-js` coordinates to `spine-base .400` / `tool-base .390` + (note the artifact renames) and reconcile the base API drift across + ~200 snapshot versions. +4. The committed import rewrite then compiles → `./gradlew build`. + +## Notes + +- `tool-base 2.0.0-SNAPSHOT.390` is already published to Maven Local with + the moved classes (`io/spine/tools/fs/{AbstractDirectory, + SourceCodeDirectory}.class`). +- Upstream move (delete from `base`, add to `tool-base`) is tracked in the + `base-libraries` repo.