dependabot[bot] opened a new pull request, #9167: URL: https://github.com/apache/camel-quarkus/pull/9167
Bumps [eu.maveniverse.maven.scalpel:extension](https://github.com/maveniverse/scalpel) from 0.3.10 to 0.4.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/maveniverse/scalpel/releases">eu.maveniverse.maven.scalpel:extension's releases</a>.</em></p> <blockquote> <h2>Scalpel 0.4.0</h2> <h2>What's Changed</h2> <h2>⚠️ Breaking Changes</h2> <ul> <li><strong>Java 17 is now required.</strong> The minimum Java version has been raised from 8 to 17 (<code>maven.compiler.release</code> bump <a href="https://redirect.github.com/maveniverse/scalpel/issues/87">#87</a>). Projects still running on Java 8–16 must stay on 0.3.x.</li> </ul> <h2>🌟 Highlights</h2> <p>0.4.0 is a major milestone — this is effectively a 0.3.x → 0.4.0 rewrite in terms of scope. A short tour of what's new:</p> <p><strong>Shadow mode</strong> (<code>-Dscalpel.mode=shadow</code>) runs Scalpel silently alongside full builds to measure how many modules it would have skipped and detect false negatives before you trust it in CI. Pair it with <strong><code>verifyFullBuild</code></strong> (<code>-Dscalpel.verifyFullBuild=true</code>) for periodic correctness verification that fails the build if any module Scalpel would have skipped actually fails — naming the module, its skip reason, and a stable <code>decisionId</code> for correlation.</p> <p><strong>Explain mode</strong> (<code>-Dscalpel.explain=true</code>) adds per-module decision evidence to the report: each affected module gets an <code>evidence</code> array naming the exact file, property, dependency, or graph edge that put it in the build set.</p> <p><strong>Effective-POM managed dependency tracking</strong> (<a href="https://redirect.github.com/maveniverse/scalpel/issues/145">#145</a>): Scalpel now uses effective POM models to detect managed dependency changes propagated through parent or import BOMs — previously silent, now correctly triggering rebuilds.</p> <p><strong>Fine-grained POM change filtering</strong> (<code>scalpel.excludeChanges</code> / <code>scalpel.includeChanges</code>): glob patterns over a normalised change-path scheme (<code>properties/<name></code>, <code>dependencies/<ga></code>, …). Volatile properties (<code>build.timestamp</code>, <code>project.build.outputTimestamp</code>) are excluded by default.</p> <p><strong>Report schema v2 + stability contract</strong>: consolidated schema with a forward-compatibility policy, bidirectional drift guard in CI, CycloneDX SBOM on release.</p> <p><strong>Comprehensive performance overhaul</strong>: DFS reactor traversal replaced with precomputed BFS (<a href="https://redirect.github.com/maveniverse/scalpel/issues/173">#173</a>), linear module scan replaced with hash-based lookup (<a href="https://redirect.github.com/maveniverse/scalpel/issues/171">#171</a>), O(S²×T×D) test-jar fixpoint replaced with O(M×D) worklist BFS (<a href="https://redirect.github.com/maveniverse/scalpel/issues/168">#168</a>), filtered-resource scan now single-read with cross-parent memoization (<a href="https://redirect.github.com/maveniverse/scalpel/issues/169">#169</a>), git blob reads size-capped (<a href="https://redirect.github.com/maveniverse/scalpel/issues/155">#155</a>), regex patterns cached (<a href="https://redirect.github.com/maveniverse/scalpel/issues/153">#153</a>).</p> <p><strong>Cross-platform CI</strong>: Windows test coverage added, all failures fixed; Maven 4 CI lane added.</p> <hr /> <h2>⚙️ New Features & Enhancements</h2> <ul> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/124">#124</a>: centralise path filtering into a single PathFilters type (<a href="https://redirect.github.com/maveniverse/scalpel/issues/176">#176</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/101">#101</a>: periodic full-build verification and a stable decisionId (<a href="https://redirect.github.com/maveniverse/scalpel/issues/177">#177</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/125">#125</a>: extract single-responsibility collaborators from ScalpelLifecycleParticipant (<a href="https://redirect.github.com/maveniverse/scalpel/issues/174">#174</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>test: bidirectional schema drift guard (emitted fields vs schema properties) (<a href="https://redirect.github.com/maveniverse/scalpel/issues/157">#157</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/99">#99</a>: phase timing and operation-count instrumentation (<a href="https://redirect.github.com/maveniverse/scalpel/issues/158">#158</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/93">#93</a>: explain mode with per-module decision evidence (<a href="https://redirect.github.com/maveniverse/scalpel/issues/142">#142</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/91">#91</a>: report skipped modules with reasons (<a href="https://redirect.github.com/maveniverse/scalpel/issues/139">#139</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/90">#90</a>: warn and report changed POMs that match no reactor project (<a href="https://redirect.github.com/maveniverse/scalpel/issues/138">#138</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>fix: validate scalpel config strictly and warn on unknown keys (<a href="https://redirect.github.com/maveniverse/scalpel/issues/67">#67</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>test: add GitChangeDetector coverage (rename, delete, untracked, fetch, merge-base, readFile) (<a href="https://redirect.github.com/maveniverse/scalpel/issues/63">#63</a>) <a href="https://github.com/paoloantinori"><code>@paoloantinori</code></a></li> <li>chore: add multi-level dependency graph tests for DFS walker (<a href="https://redirect.github.com/maveniverse/scalpel/issues/61">#61</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>chore: align report schema with forward-compatibility policy (<a href="https://redirect.github.com/maveniverse/scalpel/issues/60">#60</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>chore: broaden fetchBranch catch to align with failSafe pattern (<a href="https://redirect.github.com/maveniverse/scalpel/issues/59">#59</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> </ul> <h2>🐛 Bug Fixes</h2> <ul> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/116">#116</a>: replace per-project DFS with precomputed BFS traversals (<a href="https://redirect.github.com/maveniverse/scalpel/issues/173">#173</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>Fix Windows CI test failures in ChangeFilter and ReactorFirstModelResolver (<a href="https://redirect.github.com/maveniverse/scalpel/issues/180">#180</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/112">#112</a>: optimize filtered-resource property scanning (<a href="https://redirect.github.com/maveniverse/scalpel/issues/167">#167</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/148">#148</a>: include/exclude glob patterns for effective model comparison (<a href="https://redirect.github.com/maveniverse/scalpel/issues/175">#175</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> <li>Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/113">#113</a>: replace linear module scan with hash-based lookup (<a href="https://redirect.github.com/maveniverse/scalpel/issues/171">#171</a>) <a href="https://github.com/gnodet"><code>@gnodet</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/maveniverse/scalpel/commit/208b876df47686629f3467972006db2ecbd9323b"><code>208b876</code></a> docs: fix Java 8→17, update README version, expand GIB migration guide for 0....</li> <li><a href="https://github.com/maveniverse/scalpel/commit/aa6d1cb6b84d32dcc1be54c1afd883d33a7dac35"><code>aa6d1cb</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/124">#124</a>: centralise path filtering into a single PathFilters type (<a href="https://redirect.github.com/maveniverse/scalpel/issues/176">#176</a>)</li> <li><a href="https://github.com/maveniverse/scalpel/commit/fe0ae1bdcf1452f9943d8914dff2fb20f45822a8"><code>fe0ae1b</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/101">#101</a>: periodic full-build verification and a stable decisionId (<a href="https://redirect.github.com/maveniverse/scalpel/issues/177">#177</a>)</li> <li><a href="https://github.com/maveniverse/scalpel/commit/59e23475ef621aca11fed264b178a2e46d322145"><code>59e2347</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/116">#116</a>: replace per-project DFS with precomputed BFS traversals</li> <li><a href="https://github.com/maveniverse/scalpel/commit/ece74a19127ed71aa4cd3f9258c4178e79428c03"><code>ece74a1</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/125">#125</a>: extract single-responsibility collaborators from ScalpelLifecyclePa...</li> <li><a href="https://github.com/maveniverse/scalpel/commit/16324f244e699148be64a090b16758f5d7b27ee8"><code>16324f2</code></a> Fix Windows CI test failures in ChangeFilter and ReactorFirstModelResolver (#...</li> <li><a href="https://github.com/maveniverse/scalpel/commit/0b13e628c9dc3f851b56bbdcef0f782cf07f4f1e"><code>0b13e62</code></a> test: parse the skip-tests-downstream-exclusion-report IT instead of brace-sl...</li> <li><a href="https://github.com/maveniverse/scalpel/commit/a30a9f50637617986e52d71f973f1e5f9e3e2774"><code>a30a9f5</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/106">#106</a>: cross-platform CI and Windows test fixes (<a href="https://redirect.github.com/maveniverse/scalpel/issues/172">#172</a>)</li> <li><a href="https://github.com/maveniverse/scalpel/commit/958d2571327c54cf9fa174a2f333eabcb61d4270"><code>958d257</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/112">#112</a>: optimize filtered-resource property scanning (<a href="https://redirect.github.com/maveniverse/scalpel/issues/167">#167</a>)</li> <li><a href="https://github.com/maveniverse/scalpel/commit/0a32bce397ad64890af95f1888741c3eb6e6844a"><code>0a32bce</code></a> Fix <a href="https://redirect.github.com/maveniverse/scalpel/issues/148">#148</a>: include/exclude glob patterns for effective model comparison (<a href="https://redirect.github.com/maveniverse/scalpel/issues/175">#175</a>)</li> <li>Additional commits viewable in <a href="https://github.com/maveniverse/scalpel/compare/0.3.10...0.4.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
