Skip to content

Decide: vendor single-module Maven poms through the suffixed-version jvm planner and retire the same-GAV <repository> wiring #973

Description

[agent] Filed by the scheduled architecture audit routine (ecosystems and formats). Register: discussion #560 register.

Kind: decision. Source: review Part 5.7; register E26. Child 2 of #971.

Question

Should vendor on a project whose root pom.xml declares no modules, and that has no Gradle build, use the v5 planner instead of the legacy same-GAV <repository> wiring? If so, what happens to projects already vendored the legacy way?

Options

Why it needs an owner

It changes what vendor writes for the most common Maven shape:

  • a new .mvn/maven.config;
  • a rewritten dependency <version> and a <dependencyManagement> pin;
  • .socket/vendor/maven2/… instead of .socket/vendor/maven/<uuid>/…;
  • the ledger ecosystem "jvm";
  • no vendor_maven_local_cache_shadow warning.

docs/ecosystems.md, CLI_CONTRACT.md and the Maven CI matrix would change with it.

Evidence (main @ 9c43dfc)

If A is chosen

#971 child 3:

  • detect returns a planner shape for Single;
  • delete vendor_maven_single, maven_prelude's legacy-only checks, the build_repo_edit writer, the comment-stripping declares_modules and local_cache_shadow_warning (about −600 production lines);
  • keep revert_repo_record for old entries.

That also closes #716, makes #622 a smaller routing fix, and removes the single-module half of #263 and #274.

Acceptance criteria for the follow-up

  • A single-module e2e (e2e_vendor_maven_build.rs) builds the patched jar with a warm ~/.m2 and with mirrorOf external:*.
  • A ledger holding a maven_pom_repository entry still reverts byte for byte, and its root is not re-planned until it is reverted.
  • Docs and contract rows are updated in the same PR.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent:claimedagent:triagedarch-auditFiled by a scheduled architecture audit routine (see the architecture review discussion)pm:mavenMavenpriority:p3refactorStructural change: duplicated code or logic, missing abstraction, layering, dead code

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions