Skip to content

Fixes #13135, ensure completude of the reactor summary but privilege failures to be last to stay human efficient - #13167

Merged
gnodet merged 1 commit into
apache:maven-4.0.xfrom
gnodet:backport/13136-to-4.0.x
Sep 18, 2026
Merged

gnodet merged 1 commit into
apache:maven-4.0.xfrom
gnodet:backport/13136-to-4.0.x

Conversation

@gnodet

@gnodet gnodet commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Backport of #13136 to the maven-4.0.x branch.

Cherry-pick of 88f7c71, applied cleanly with no conflicts.

…ilege failures to be last to stay human efficient

Ensure the reactor summary stays complete so we see all built modules and not just the one(s) failing, while keeping failures last for human readability.
@gnodet gnodet added the bug Something isn't working label Sep 17, 2026
@gnodet gnodet added this to the 4.0.0-rc-7 milestone Sep 17, 2026

@gnodet-bot gnodet-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean backport of #13136 to maven-4.0.x. Cherry-pick applied without conflicts, both compat and impl implementations are correctly updated, and the test suite covers the new grouping behavior thoroughly.

Checked:

  • Correctness: Grouping logic (0=SKIPPED/UNKNOWN, 1=SUCCESS, 2=FAILURE) is consistent across both ExecutionEventLogger implementations. The shared StringBuilder is reset via setLength(0) after each entry and the three group calls are sequential/single-threaded — no aliasing hazard.
  • Behavior change — logger.error() for FAILURE lines: FAILURE module entries and BUILD FAILURE now route to error level. The IT in MavenITmng7967ArtifactHandlerLanguageTest is correctly updated to match [ERROR] BUILD FAILURE. No other IT checks for [INFO] BUILD FAILURE (confirmed via grep across the full its/ tree).
  • ... separator removal: The old separator was a lossy UX approximation; the new grouped display is strictly better — skipped modules are always shown first, then successes, then failures. Tests are correctly updated to drop the "..." InOrder expectations.
  • New tests: Two new test cases cover the previously untested scenario where modules are skipped alongside a build failure (one via hasExceptions() without a BuildFailure in the reactor summary, one via explicit BuildFailure). Both pass the new logger.error() assertions.
  • Static analysis: No new ast-grep or semgrep findings introduced by this PR. The synchronized block flagged by ast-grep is pre-existing and correctly uses volatile.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

@gnodet
gnodet merged commit eda0aeb into apache:maven-4.0.x Sep 18, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants