Skip to content
This repository was archived by the owner on Jul 10, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .agents/tasks/relocate-source-code-directory-to-tool-base.md
Original file line number Diff line number Diff line change
@@ -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.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading