GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||
GeezerVison is showing github.com — Fix Maven 4 implicit subprojects missed outside vendored (#1809) by mikolalysenko · Pull Request #1886 · SocketDev/socket-patch Conversation
|
| Caller | Test |
|---|---|
| Hosted rewriter | patch::redirect::tests::maven_4_implicit_subprojects_root_is_refused (also controls: no subproject, model 4.0.0, discovery off) |
| Hosted engine, disk and memory, plus stale pins | hosted::engine::tests::a_maven_4_implicit_reactor_root_is_refused |
| VEX | vex::discover::maven::tests::hosted_pin_in_a_maven_4_implicit_reactor_root_is_not_attested (same controls) |
| sbt ambiguity guard | vendor::jvm::sbt::tests::detect_routes_sbt_and_keeps_existing_backends (new implicit-root case, plus a lone-root control) |
MavenShape |
vendor::jvm::tests::a_maven_4_implicit_subprojects_root_is_a_reactor |
| Cache scope | crawlers::maven_scope::tests::maven_4_discovered_subprojects_seed_the_scope (discovery on and off) |
Run locally:
cargo fmt --all -- --check: cleancargo clippy --workspace --all-features -- -D warnings: cleancargo test --workspace --all-features --no-fail-fast: every Maven/JVM, hosted, VEX and crawler suite passes. 11 failures, all from the sandbox and none in code this PR touches: (a) write/unremovable-file tests that can't simulate a failure as root (copy_tree::relax_loop_must_not_traverse_symlinked_root, vlt_heal::an_unremovable_hidden_lock_keeps_every_store_entry, pypi_poetry::wire_write_failure_…, pypi_requirements::wire_failure_rolls_back_…, three in in_process_redirect, two in repair), which other agent PRs also report; (b) two e2e_bun_lockb tests that need the live patch API (patches-api.socket.dev), blocked by the sandbox proxy (tunnel error: unsuccessful)There is no local Maven 4 e2e. The CI real-Maven legs (e2e_redirect_maven_build, e2e_vendor_maven_build) run against this change.
Fixed:
maven_scope.rs.Not changed, deliberately:
sbt::legacy_pom_wired keeps declares_modules. It recognizes pre-v5 single-pom wiring, which read only the root pom and so could have wired a Maven 4 implicit root. Switching it to is_reactor_root would route such a legacy-wired root to sbt and orphan its <repository> wiring, which vendor --revert must unwind first.detect / detect_builds take a ListFn only for MavenShape, which nothing outside tests reads today. I kept it so Detected doesn't misreport an implicit reactor as Single. The extra listing happens only when the root pom is a discovering 4.1.0 pom.maven_scope reads a reactor pom a second time to check discovery. That cost is one small file read per reactor pom on the crawl path. Moving the flag into PomModel would mean changing the parser shared with the planner, so I left it out of this fix.https://claude.ai/code/session_011f9aeRdqEhwVwx91en466Q
Generated by Claude Code
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Assisted-by: Claude Code:claude-opus-5-5
A Maven 4 root (model 4.1.0, pom packaging, no <subprojects> list) builds every direct subdirectory holding a pom.xml. Only the vendored planner knew this. Hosted scan pinned just the root pom while a module kept its own version, VEX attested that pin as not_affected, the sbt ambiguity guard let such a root through, and the project scope of the Maven cache skipped the modules' dependencies. Every caller now asks one maven_reactor predicate that follows the planner's own discovery rule, including the discoverSubprojects opt-out in .mvn/maven.config. The hosted engine reads each subdirectory's pom.xml beside such a root so the rewriter can refuse it as a reactor. Fixes #1809 Assisted-by: Claude Code:claude-opus-5-5
Review follow-ups for the Maven 4 reactor fix. The hosted engine, VEX and the Maven cache scope now find discovered subprojects through the planner's own probe, so a .git directory or a directory named pom.xml never makes a root a reactor in one place but not another. A refused reactor root pins nothing, so the hosted confirmation probe no longer counts a suffixed version an older release left in it, or one a module pom names, as a redirected dependency. The CLI contract now describes Maven 4 discovered reactors. Refs #1809 Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
[burn-down agent] Labeled Ready for review at b57c4a5.
Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Final review briefWhat it does: Maven 4 builds every direct subdirectory that has a Risk: low to medium. The logic reuses the planner's existing predicate, and the Look here
Verified: I read the full diff. The rewriter, VEX and the planner all use the same probe and exclude Changes I made: none. Open questions:
Auto-merge is armed, so approving sends this straight to the merge queue. Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
[agent] Reviewed b57c4a52942339a4a379c1e4ebd970069d8883d5. Traced implicit Maven subprojects through crawler scope, hosted refusal, VEX and JVM build detection, including disabled discovery and nested POM confirmation. No major correctness issues found. Validation: source and regression-test review plus the available exact-head CI checks; no local test pass is claimed.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
[final reviewer] Auto-merge was armed and the PR was approved, green and mergeable, but GitHub had never put it in the merge queue. I disabled auto-merge and armed it again, and it went into the queue at once. Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Hosted Maven and VEX treat a Maven 4 implicit-subproject root as one pom
There was an error while loading. Please reload this page.