gnodet opened a new pull request, #13232: URL: https://github.com/apache/maven/pull/13232
## Summary Fix #13230: make `install` and `deploy` depend on `verify` in the concurrent lifecycle DAG. ## Root Cause In the phase tree introduced for Maven 4, `INSTALL` and `DEPLOY` declared a dependency on `PACKAGE` only, not on `VERIFY`: ```java // Before (broken) phase(INSTALL, after(PACKAGE)), phase(DEPLOY, after(PACKAGE)) ``` This caused the concurrent builder (`-b concurrent`) to **silently skip the `VERIFY` phase** when running `mvn install`, because there was no declared edge between `INSTALL` and `VERIFY` in the DAG. The sequential builder was unaffected only by accident: its phase flattening happened to preserve the order, but this was not a semantic guarantee. ## Fix Change `INSTALL` and `DEPLOY` to declare `after(VERIFY)` instead of `after(PACKAGE)`: ```java // After (correct) phase(INSTALL, after(VERIFY)), phase(DEPLOY, after(VERIFY)) ``` `VERIFY` already depends transitively on `BUILD` (and therefore `PACKAGE`), so the full build order is preserved. This is also semantically correct: an artifact should not be installed or deployed before it has been verified. ## Future Work A follow-up for 4.1.0 will introduce a `--skip-phases` CLI option as a proper, plugin-agnostic replacement for ad-hoc conventions like `-DskipTests`. _Hermes Agent (Claude Sonnet 4.6) on behalf of Guillaume Nodet_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
