Skip to content

chore: ci - Scalpel ignores root-level files that do not affect the build - #29636

Merged
davsclaus merged 1 commit into
mainfrom
ci-scalpel-exclude-root-files
Nov 11, 2026
Merged

davsclaus merged 1 commit into
mainfrom
ci-scalpel-exclude-root-files

Conversation

@davsclaus

Copy link
Copy Markdown
Contributor

Description

Prepares the Scalpel 0.5.0 bump (#29611).

In Scalpel 0.5.0 a changed root-level file that no module owns (for example CLAUDE.md) triggers a full build (maveniverse/scalpel#229, ModuleMapper), even with our empty -Dscalpel.fullBuildTriggers=. incremental-build.sh reads fullBuildTriggered as a Scalpel failure and drops Scalpel's module list. A PR that touches CLAUDE.md alongside a POM change would then lose the downstream modules that Scalpel found.

This PR adds the root-level files that do not affect the build to -Dscalpel.excludePaths, next to .github/**:
AGENTS.md, CLAUDE.md, CONTRIBUTING.md, README.md, SECURITY.md, KEYS, LICENSE.txt, NOTICE.txt, doap.rdf, Jenkinsfile*, .asf.yaml, .gitattributes, .gitignore, .gitmodules, .sdkmanrc, jbang-catalog.json.

  • mvnw, mvnw.cmd and pom.xml are left out on purpose, so a change to them still triggers a full build.
  • Scalpel turns a pattern without a / into {p,**/p}, so these names also match inside modules, for example dsl/camel-jbang/camel-jbang-core/CLAUDE.md. That only hides the file from Scalpel: the file-path step of the script still adds the module of such a file to the build.
  • I checked the patterns with Java's glob: PathMatcher, the way Scalpel 0.5.0's PathFilters builds them:
    • excluded: CLAUDE.md, Jenkinsfile.jdk26, .github/workflows/x.yml;
    • kept: pom.xml, mvnw, parent/pom.xml, .mvn/extensions.xml and module sources.

CI-ARCHITECTURE.md documents the setting.

🤖 Generated with Claude Code

https://claude.ai/code/session_016Y4dDiMc7mxmdVoQiGSMh8

…uild

Since Scalpel 0.5.0 (#29611) a changed root-level file that no module owns
triggers a full build, even with an empty fullBuildTriggers, and
incremental-build.sh then drops Scalpel's module list. Add the root-level
doc and repository files (CLAUDE.md, AGENTS.md, README.md, Jenkinsfile*, ...)
to -Dscalpel.excludePaths. mvnw, mvnw.cmd and pom.xml still trigger a full build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus davsclaus added this to the 4.24.0 milestone Nov 11, 2026
@davsclaus davsclaus self-assigned this Nov 11, 2026
@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 added the docs label Nov 11, 2026
@davsclaus davsclaus added the task label Nov 11, 2026
@davsclaus
davsclaus merged commit 976a8ec into main Nov 11, 2026
5 checks passed
@davsclaus
davsclaus deleted the ci-scalpel-exclude-root-files branch November 11, 2026 14:00
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