gnodet opened a new pull request, #13231:
URL: https://github.com/apache/maven/pull/13231

   ## 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.
   
   _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]

Reply via email to