Skip to content

[DO NOT MERGE] test: Scalpel shadow — kafka-version 4.3.1→4.3.0#24335

Draft
gnodet wants to merge 6 commits into
apache:mainfrom
gnodet:test-scalpel-kafka
Draft

[DO NOT MERGE] test: Scalpel shadow — kafka-version 4.3.1→4.3.0#24335
gnodet wants to merge 6 commits into
apache:mainfrom
gnodet:test-scalpel-kafka

Conversation

@gnodet

@gnodet gnodet commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Test PR for validating the Scalpel shadow comparison in #22524.

Bumps kafka-version 4.3.1 → 4.3.0 to trigger Scalpel's managed dependency detection. Kafka is consumed via <dependencyManagement>, which grep-based detection misses entirely — Scalpel should find the affected modules.

Do not merge — close after CI validates the shadow comparison section.

Claude Code on behalf of @gnodet

gnodet and others added 4 commits June 26, 2026 13:10
Add a shadow comparison section to CI PR comments showing what
Maveniverse Scalpel's skip-tests mode would have tested — without
affecting actual test execution.

Changes:
- incremental-build.sh: configure Scalpel with skipTestsForDownstreamModules
  and fetchBaseBranch=false, add writeScalpelComparison() for collapsible
  PR comment section with failure reporting
- pr-build-main.yml / sonar-build.yml: add base branch fetch step for
  Scalpel's merge-base detection in shallow CI clones, restore checkout v7
- CI-ARCHITECTURE.md: document shadow comparison approach and configuration
- Scalpel upgraded to 0.3.7: fixes inflated affectedModules count for
  parent POM property changes (scalpel#39) and skipTestsForDownstreamModules
When a matrix build has one JDK failing and another cancelled, the
cancelled JDK's cleanup steps upload a ci-comment artifact without
the comment file, overwriting the failed JDK's artifact that had it.

Only upload the ci-comment artifact when incremental-test-comment.md
actually exists, preventing a cancelled build from clobbering a
completed build's comment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scalpel's auto-detection of GITHUB_BASE_REF via Maven system properties
(env.GITHUB_BASE_REF) is fragile — it can fail in CI rerun contexts or
with certain Maven wrapper configurations, causing the report to silently
not be generated.

Fix: always pass -Dscalpel.baseBranch=origin/${GITHUB_BASE_REF:-main}
explicitly. Also add a git merge-base pre-check and improved diagnostics
(tail of Scalpel log, broader grep) when the report is not found.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Instead of a fixed --depth=200 fetch that can miss the merge base
for long-lived or stale branches, try 200 → 1000 → unshallow until
git merge-base succeeds. Most PRs resolve at depth 200 (no extra
cost); only old branches need the deeper fetches.

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

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • parent

POM dependency changes: targeted tests included

Changed properties: kafka-version

Modules affected by dependency changes (3)
  • :camel-kafka
  • :camel-ibm-secrets-manager
  • :camel-debezium-common

🔬 Scalpel shadow comparison — compile: +43, test: +14

Maveniverse Scalpel detected 46 affected modules via effective POM comparison (vs 3 from grep-based detection).

Changed properties: kafka-version

Skip-tests mode would test 17 modules (3 direct + 14 downstream), skip tests for 29 (generated code, meta-modules)

Modules Scalpel would test (17)
  • camel-debezium-common
  • camel-debezium-db2
  • camel-debezium-mongodb
  • camel-debezium-mysql
  • camel-debezium-oracle
  • camel-debezium-postgres
  • camel-debezium-sqlserver
  • camel-ibm-secrets-manager
  • camel-jbang-mcp
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-kafka
  • camel-launcher-container
  • 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 (48 modules)
  • Camel :: All Components Sync point
  • 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 :: Debezium :: Common
  • Camel :: Debezium :: DB2
  • Camel :: Debezium :: MongoDB
  • Camel :: Debezium :: MySQL
  • Camel :: Debezium :: Oracle
  • Camel :: Debezium :: PostgreSQL
  • Camel :: Debezium :: SQL Server
  • Camel :: Docs
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: IBM :: Secrets Manager
  • 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 :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Kafka
  • Camel :: Kamelet Main
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: Parent
  • 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 and others added 2 commits June 30, 2026 09:31
Move all Scalpel-related output below a separator line at the end of
the CI comment, with a one-line diff summary showing what Scalpel
would add/remove vs the current grep-based detection (e.g.
"compile: +51, test: +22"). The top section now shows only what the
existing grep mechanism found, making it easy to see what each
approach contributes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet gnodet force-pushed the test-scalpel-kafka branch from ee5f9c0 to 33f7b6c Compare June 30, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment