ascheman commented on PR #12236: URL: https://github.com/apache/maven/pull/12236#issuecomment-4997224388
**Real-world adopter feedback — tested apache/plc4x against a current 4.0.x SNAPSHOT (pre-RC-6).** Posting here since this backport first ships with RC-6. The fail-fast works as designed: PLC4X's parent POM (model 4.1.0, using `<subprojects>` and build `<sources>` — the latter on this PR's non-strippable list) now stops the very first reactor module on `install`, where rc-5 "succeeded" but silently installed a model-4.1.0 consumer POM — exactly the #11772 poison. Root-module matrix: | Maven | `mvn -N install` | |---|---| | 4.0.0-rc-5 | SUCCESS (but consumer POM stays 4.1.0) | | 4.0.x-SNAPSHOT | fail-fast ✔ | | 4.0.x-SNAPSHOT + `maven.consumer.pom.flatten=true` | SUCCESS | With the flatten property in `.mvn/maven.config` we then ran a full A/B (identical sources, separate local repos, tests on): **rc-5 and the SNAPSHOT are behaviorally identical** — 113 modules, 4058/4058 tests green on both, identical installed file lists (156), identical consumer-POM model distribution per artifact (28× self-contained 4.0.0, 1× 4.0.0 with parent, 2× 4.1.0 with parent for the pom-packaged aggregators). So the fail-fast is the only rc-5 → RC-6 behavior change here, and the suggested remedy is safe on both versions. Three observations that may be worth acting on before RC-6: 1. **Release notes**: our Maven 4 adoption registry currently tracks ~70–85 GitHub projects declaring the 4.1.0 model ([report](https://aschemaven.github.io/maven-simple-reports/maven4-adoption.html)). Every one of them that installs/deploys a parent POM with non-strippable 4.1.0 features will hard-fail on RC-6 upgrade. A release-notes callout with the three remedies from the error message would soften the landing considerably. 2. **The error text slightly over-promises for pom packaging**: option 1 says enabling flattening will "produce a self-contained **4.0.0** consumer POM", but with flattening enabled the pom-packaged project's *own* consumer POM is still published as model 4.1.0 with `<parent>` and `<subprojects>` (identically on rc-5, so not a regression). Children are correctly flattened and no longer reference it — but *direct* consumers inheriting from such a parent would still hit #11772-style breakage. If "handles what it can" is the intended semantics, maybe adjust the error text and document the residual limitation. 3. As a data point for how adopters need to react: PLC4X is now prepared via apache/plc4x#2647 (one line in `.mvn/maven.config`, verified against rc-5 and the SNAPSHOT). Happy to re-run this against RC-6 staging when it's cut. -- 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]
