Skip to content

feat(manifest): give each JVM build project its own id and facts component - #1591

Merged
Jeppe Fredsgaard Blaabjerg (jfblaa) merged 3 commits into
jfblaa/facts-build-rootfrom
jfblaa/facts-project-ids
Oct 8, 2026
Merged

Jeppe Fredsgaard Blaabjerg (jfblaa) merged 3 commits into
jfblaa/facts-build-rootfrom
jfblaa/facts-project-ids

Conversation

@jfblaa

@jfblaa Jeppe Fredsgaard Blaabjerg (jfblaa) commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

LLM Description written by Claude Code:claude-opus-5-5

Third step of the #1587 stack: every build project gets an identity of its own in the facts file, so projects that share a coordinate or a directory stay apart.

  • projects[].id is the build tool's unique project identifier: Maven GAV, Gradle project path, sbt project id. The Maven extension keys modules by GAV, so two modules in one directory (<module>x/a.xml</module>, <module>x/b.xml</module>) are no longer merged.
  • projects[].manifestFiles lists each project's own build files.
  • A dependency on one of the build's own projects is that project's component, with the same id. It is linked through each tool's own resolution (Gradle's project identifier, Maven's reactor GAV, sbt's dependsOn). Gradle :a:util and :b:util, both ex:util:1, no longer collapse into one component.
  • The compute-artifacts sidecar keys paths and classpaths by id internally. Its serialized shape is unchanged apart from the new project fields.

Coana compatibility: can merge independently. Released Coana (15.12.2) drops the unknown project fields, keys classpaths by subprojectDir, and keys a sibling component with no ext as jar, so it reads this output as before. Coana reads the ids from coana-tech/coana-package-manager#2547 on.

Stack: #1589 → #1590 → this → #1587

🤖 Generated with Claude Code

…onent

projects[].id is the build tool's unique project identifier (Maven GAV,
Gradle project path, sbt project id) and projects[].manifestFiles lists the
project's build files. A dependency on one of the build's own projects is
that project's component, sharing its id, so projects sharing a coordinate
or a directory stay apart. The compute-artifacts sidecar keys paths and
classpaths by id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@cursor cursor 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.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue.

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 3cbc05c. Configure here.

Comment thread src/commands/manifest/scripts/sidecar.mts
@BarrensZeppelin
Oskar Haarklou Veileborg (BarrensZeppelin) added this pull request to stack #1592 October 8, 2026 10:38
Comment thread CHANGELOG.md Outdated
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jfblaa
Jeppe Fredsgaard Blaabjerg (jfblaa) merged commit b779708 into v1.x Oct 8, 2026
16 checks passed
@jfblaa
Jeppe Fredsgaard Blaabjerg (jfblaa) deleted the jfblaa/facts-project-ids branch October 8, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants