[ 
https://issues.apache.org/jira/browse/CAMEL-24587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18110586#comment-18110586
 ] 

Federico Mariani commented on CAMEL-24587:
------------------------------------------

Hi [~gnodet] please double check it

> CI: PR incremental build tests the whole project when a core module changes 
> (Scalpel modules bypass the 50-module threshold)
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24587
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24587
>             Project: Camel
>          Issue Type: Bug
>          Components: ci
>            Reporter: Federico Mariani
>            Assignee: Federico Mariani
>            Priority: Major
>              Labels: ci, github-actions
>             Fix For: 4.23.0
>
>
> h3. Problem
> Since [PR #24368|https://github.com/apache/camel/pull/24368] (commit 
> 71be477c97f5, 2026-07-02) the PR "Build and test" workflow runs Maveniverse 
> Scalpel for *every* PR. The PR description and the comment in 
> {{.github/actions/incremental-build/incremental-build.sh}} say Scalpel runs 
> in "shadow mode" and "does not affect actual test execution".
> It does. The script unions {{scalpel_module_ids}} into {{dep_module_ids}}, 
> which goes straight into the {{-pl}} list handed to Maven. The 50-module 
> threshold ({{maxNumberOfTestableProjects}}) and the {{EXCLUSION_LIST}} only 
> apply to the {{-amd}} expansion of file-path modules, so they never trigger 
> for this path.
> Result: any PR that touches a module with many dependents (anything under 
> {{core/}}) tests every downstream module, including {{camel-allcomponents}}, 
> {{camel-itest}}, {{camel-jbang-it}} and the whole components tree, on both 
> JDK matrix entries.
> h3. Evidence
> [PR #26024|https://github.com/apache/camel/pull/26024] changes 3 files 
> ({{core/camel-support}}, {{components/camel-jetty}}, docs):
> * Scalpel report: 588 affected modules (3 DIRECT, 559 DOWNSTREAM tested, 26 
> DOWNSTREAM skipped)
> * Job log prints {{Too many dependent modules (588 > 50), testing only the 
> affected modules}} and then runs {{mvnd install -pl <589 modules>}}
> * Test phase: 47 min (JDK 17, failed on unrelated infra), reactor of 589 
> modules
> Other recent PRs touching {{core/}} show the same pattern:
> ||PR||Modules tested||Test phase per JDK||
> |#26022|589|1h 51m|
> |#26018|~590|~2h|
> |#26011|~590|~2h|
> |#25731|~590|~2h|
> |#26007 (no core change)|9|~25 min|
> The PR comment contradicts itself: it says "Dependent modules were not tested 
> because the total number of affected modules exceeded the threshold (50)" and 
> then lists ~620 modules in the reactor section. The "Scalpel shadow 
> comparison" reports "current: 561 all tested" and cannot detect the 
> discrepancy because "current" already contains Scalpel's set.
> h3. Proposed fix
> Apply the dependent-module threshold to the dependency-detected set as well:
> * After merging grep and Scalpel results, count the modules. If the count 
> exceeds {{maxNumberOfTestableProjects}} and the PR does not carry the 
> {{incremental-test-dependents}} label, test only the changed modules.
> * Report the skipped count in the PR comment so the behaviour is visible.
> * Fix the "shadow mode" wording in the script and in 
> {{.github/CI-ARCHITECTURE.md}}.
> Refinement to consider (keeps coverage for wide dependency bumps): exempt 
> Scalpel's {{DIRECT}} modules from the cap and apply it only to {{DOWNSTREAM}} 
> ones. Recent Dependabot bumps of {{parent/pom.xml}} affect 0-36 modules and 
> are below the threshold either way; a Jackson or Spring bump would exceed it.
> Note: the {{incremental-test-dependents}} label has been used on exactly one 
> PR (#22140, March 2026). The unmerged branch {{ci/scalpel-only-detection}} 
> keeps the same behaviour unless the threshold is applied to Scalpel output.
> h3. Related
> * CAMEL-24290 (CI under heavy load)
> * CAMEL-23565 (skip Scalpel for root pom.xml changes)
> _Drafted by Claude Code on behalf of Croway_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to