Skip to content

[DO NOT MERGE] test: Scalpel shadow — junit-jupiter 5.14.4→5.14.3#24273

Closed
gnodet wants to merge 9 commits into
apache:mainfrom
gnodet:test-scalpel-junit
Closed

[DO NOT MERGE] test: Scalpel shadow — junit-jupiter 5.14.4→5.14.3#24273
gnodet wants to merge 9 commits into
apache:mainfrom
gnodet:test-scalpel-junit

Conversation

@gnodet

@gnodet gnodet commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Scalpel shadow comparison validation — junit-jupiter-version

Temporary PR to validate PR #22524's Scalpel shadow comparison with a test-scoped managed dependency change.

Change: junit-jupiter-version 5.14.4 → 5.14.3 in parent/pom.xml

Expected result:

  • Grep: modules that reference ${junit-jupiter-version} directly
  • Scalpel: modules with test-scoped dependencies on JUnit Jupiter (Scalpel's source-set-aware propagation should limit this to modules that actually use junit-jupiter in their test classpath)

This PR should be closed without merging once the shadow comparison is validated.

Claude Code on behalf of @gnodet

gnodet and others added 9 commits June 25, 2026 04:42
Add a shadow comparison section to CI PR comments showing what Scalpel's
skip-tests mode would have tested, without affecting actual test execution.
This validates Scalpel's module detection across many PRs before switching
to Scalpel-driven test execution.

Changes:
- incremental-build.sh: switch from GitHub API diff to local git merge-base,
  configure Scalpel with skipTestsForDownstreamModules and fetchBaseBranch=false,
  add writeScalpelComparison() for collapsible PR comment section
- pr-build-main.yml / sonar-build.yml: add base branch fetch step for
  Scalpel's merge-base detection in shallow CI clones
- CI-ARCHITECTURE.md: document shadow comparison approach and configuration
The checkout action was accidentally downgraded from v7.0.0 to v6.0.2,
and persist-credentials: false was dropped from sonar-build.yml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ION_LIST

Restore fetchDiff() to use the GitHub API (unchanged from main) instead
of local git merge-base. The grep-based script has no dependency on local
git history — only Scalpel needs it. This eliminates regression risk for
the existing incremental build path.

Also derive skip_downstream from EXCLUSION_LIST via sed instead of
hardcoding a duplicate list that could silently diverge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When Scalpel fails (mvn validate error, missing report due to shallow
clone depth, or full-build trigger), surface the reason in the PR
comment's shadow comparison section instead of silently omitting it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scalpel 0.3.5 still includes ~600 uncategorized parent-inherited modules
in affectedModules (scalpel#39, regression from apache#30 fix). Filter jq
queries to only DIRECT and DOWNSTREAM categories, and compute the
summary count from the breakdown rather than the inflated total.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes inflated affectedModules count — parent-inherited modules that
don't use the changed dependency are no longer included (scalpel#39).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes inflated affectedModules count where parent POM property changes
(e.g. kafka-version) were reported as affecting all ~670 modules.
Also fixes skipTestsForDownstreamModules not taking effect.

See maveniverse/scalpel#39

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Validates Scalpel shadow comparison for a test-scoped managed dependency change.
Excludes .mvn/** from Scalpel diff (this PR inherits .mvn/extensions.xml changes).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

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.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • parent

POM dependency changes: targeted tests included

Changed properties: junit-jupiter-version

Changed managed dependencies: org.junit:junit-bom

Modules affected by dependency changes (42)
  • :apache-camel
  • :camel-allcomponents
  • :camel-archetype-api-component
  • :camel-archetype-dataformat
  • :camel-catalog
  • :camel-catalog-console
  • :camel-catalog-lucene
  • :camel-catalog-maven
  • :camel-catalog-suggest
  • :camel-componentdsl
  • :camel-csimple-maven-plugin
  • :camel-endpointdsl
  • :camel-endpointdsl-support
  • :camel-itest
  • :camel-jbang-core
  • :camel-jbang-it
  • :camel-jbang-main
  • :camel-jbang-mcp
  • :camel-jbang-plugin-edit
  • :camel-jbang-plugin-generate
  • :camel-jbang-plugin-kubernetes
  • :camel-jbang-plugin-route-parser
  • :camel-jbang-plugin-test
  • :camel-jbang-plugin-tui
  • :camel-jbang-plugin-validate
  • :camel-kamelet-main
  • :camel-launcher
  • :camel-launcher-container
  • :camel-report-maven-plugin
  • :camel-route-parser
  • :camel-shell
  • :camel-test-junit5
  • :camel-test-main-junit5
  • :camel-test-spring-junit5
  • :camel-yaml-dsl
  • :camel-yaml-dsl-deserializers
  • :camel-yaml-dsl-maven-plugin
  • :camel-yaml-dsl-validator
  • :camel-yaml-dsl-validator-maven-plugin
  • :coverage
  • :docs
  • :dummy-component

🔬 Detected via Maveniverse Scalpel effective POM comparison

🔬 Scalpel shadow comparison (skip-tests mode)

Scalpel skip-tests mode would test 13 modules (3 direct + 10 downstream)

29 downstream module(s) would have tests skipped (generated code, meta-modules)

Modules Scalpel would test (13)
  • camel-archetype-api-component
  • camel-archetype-dataformat
  • camel-jbang-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-launcher-container
  • camel-shell
  • camel-test-junit5
  • camel-test-main-junit5
  • camel-test-spring-junit5
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
Modules with tests skipped (29)
  • apache-camel
  • camel-allcomponents
  • camel-catalog
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • docs
  • dummy-component

ℹ️ Shadow mode — Scalpel observes but does not affect test execution. Learn more

All tested modules (44 modules)
  • Camel :: All Components Sync point
  • Camel :: Archetypes :: API Component
  • Camel :: Archetypes :: Data Format
  • Camel :: Assembly
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated)
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated) SUCCESS
  • Camel :: Catalog :: Camel Catalog
  • Camel :: Catalog :: Camel Report Maven Plugin
  • Camel :: Catalog :: Camel Route Parser
  • Camel :: Catalog :: Console
  • Camel :: Catalog :: Dummy Component
  • Camel :: Catalog :: Lucene (deprecated)
  • Camel :: Catalog :: Maven
  • Camel :: Catalog :: Suggest
  • Camel :: Component DSL
  • Camel :: Coverage
  • Camel :: Docs
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: Integration Tests
  • Camel :: JBang :: Core
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Main
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Kamelet Main
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: Parent
  • Camel :: Shell
  • Camel :: Test :: JUnit5
  • Camel :: Test :: Main :: JUnit5
  • Camel :: Test :: Spring :: JUnit5
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin

⚙️ View full build and test results

@gnodet

gnodet commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

Closing — junit-jupiter-version is a near-dead property (only used by camel-test-junit5). Replacing with a junit6-jupiter-version test PR which goes through the BOM and is more representative.

Claude Code on behalf of @gnodet

@gnodet gnodet closed this Jun 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant