Skip to content

ci: fix Scalpel shadow comparison accuracy - #24378

Merged
gnodet merged 1 commit into
apache:mainfrom
gnodet:optimize-scalpel-deepening
Jul 2, 2026
Merged

ci: fix Scalpel shadow comparison accuracy#24378
gnodet merged 1 commit into
apache:mainfrom
gnodet:optimize-scalpel-deepening

Conversation

@gnodet

@gnodet gnodet commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes the Scalpel shadow comparison to give accurate results:

  • "N vs 0" bug (from ci: run Scalpel shadow comparison for all PRs, add depth=50 step #24368): Comparison was against grep POM results only (0 for Java-only PRs). Now compares against the full reactor (file-path + grep + -amd expansion).
  • Exclusion list mismatch: The reactor passed to the comparison included meta/generated modules (catalog, jbang, docs, etc.) that are excluded from testing via EXCLUSION_LIST. Scalpel already filters these via skipTestsForDownstreamModules. This gave misleading results like "37 modules only current approach found" when those 37 aren't actually tested. Now filters reactor_ids through EXCLUSION_LIST before comparing — apples-to-apples.
  • Duplicate module names: Long module names like CSimple Maven Plugin (deprecated) had SUCCESS/FAILURE/SKIPPED attached. Added explicit stripping.

Also improves the shadow comparison output:

  • Shows set differences: modules only Scalpel found (⚠️) and modules only current approach found
  • One-line summary: Scalpel: N tested, M compile-only — current: X all tested

Claude Code on behalf of @gnodet

Test plan

  • CI comment on a PR with Java-only changes no longer shows "N vs 0"
  • Meta-modules (catalog, jbang, docs) don't appear in "Scalpel missed these"
  • No duplicate modules in "All tested modules" list

🤖 Generated with Claude Code

Two fixes:

1. Scalpel shadow comparison now compares against the full current
   detection (file-path + grep + -amd reactor), not just the grep
   POM results. Shows set differences: modules only Scalpel found
   (current missed) and vice versa. Summary line shows how many
   modules Scalpel would test vs compile-only, compared to current
   which tests all.

2. Fix duplicate entries in "All tested modules" list caused by
   long module names (e.g. "CSimple Maven Plugin (deprecated)")
   where Maven output has no dots between name and status, leaving
   "SUCCESS"/"FAILURE"/"SKIPPED" attached to the module name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet
gnodet requested review from oscerd July 2, 2026 09:31
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@gnodet
gnodet merged commit 4a2831d into apache:main Jul 2, 2026
3 checks passed
@gnodet gnodet changed the title ci: fix Scalpel shadow comparison and reactor list parsing ci: fix Scalpel shadow comparison accuracy Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants