Skip to content

[DO NOT MERGE] test: Scalpel shadow — jackson2 2.22.0→2.21.2#24336

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

[DO NOT MERGE] test: Scalpel shadow — jackson2 2.22.0→2.21.2#24336
gnodet wants to merge 6 commits into
apache:mainfrom
gnodet:test-scalpel-jackson

Conversation

@gnodet

@gnodet gnodet commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

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

Bumps jackson2-version 2.22.0 → 2.21.2 to trigger Scalpel's managed dependency detection. Jackson is widely used via BOM import — Scalpel should find ~157 affected modules vs grep's ~6.

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: jackson2-version

Modules affected by dependency changes (6)
  • :camel-cxf-spring-rest
  • :camel-rest-openapi
  • :camel-pqc
  • :camel-telemetry-dev
  • :camel-langchain4j-chat
  • :camel-docling

🔬 Scalpel shadow comparison — compile: +51, test: +22

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

Changed properties: jackson2-version

Changed managed dependencies: com.fasterxml.jackson:jackson-bom

Skip-tests mode would test 28 modules (7 direct + 21 downstream), skip tests for 29 (generated code, meta-modules)

Modules Scalpel would test (28)
  • camel-a2a
  • camel-cxf-spring-rest
  • camel-docling
  • camel-jbang-mcp
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-jsonpath
  • camel-knative-http
  • camel-langchain4j-agent
  • camel-langchain4j-chat
  • camel-langchain4j-tools
  • camel-launcher-container
  • camel-micrometer-prometheus
  • camel-oauth
  • camel-observability-services
  • camel-openai
  • camel-openapi-validator
  • camel-platform-http-main
  • camel-platform-http-vertx
  • camel-pqc
  • camel-rest-openapi
  • camel-telemetry-dev
  • camel-test-infra-all
  • camel-test-infra-openai-mock
  • 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 (59 modules)
  • Camel :: AI :: A2A
  • Camel :: AI :: Docling
  • Camel :: AI :: LangChain4j :: Agent
  • Camel :: AI :: LangChain4j :: Chat
  • Camel :: AI :: LangChain4j :: Tools
  • Camel :: AI :: OpenAI
  • Camel :: All Components Sync point
  • Camel :: Assembly
  • Camel :: CXF :: REST :: Spring
  • 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 :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JSon Path
  • Camel :: Kamelet Main
  • Camel :: Knative HTTP
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: Micrometer :: Prometheus
  • Camel :: OAuth
  • Camel :: Observability Services
  • Camel :: OpenAPI :: Validator
  • Camel :: PQC
  • Camel :: Parent
  • Camel :: Platform HTTP :: Main
  • Camel :: Platform HTTP :: Vert.x
  • Camel :: REST OpenApi
  • Camel :: Telemetry :: Dev
  • Camel :: Test Infra :: All test services
  • Camel :: Test Infra :: OpenAI Mock
  • 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-jackson branch from 502b203 to 4c29a89 Compare June 30, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment