Skip to content

chore(ci): replace grep-based POM detection with Scalpel#7

Draft
gnodet wants to merge 1 commit intomainfrom
ci-scalpel-integration
Draft

chore(ci): replace grep-based POM detection with Scalpel#7
gnodet wants to merge 1 commit intomainfrom
ci-scalpel-integration

Conversation

@gnodet
Copy link
Copy Markdown
Owner

@gnodet gnodet commented Mar 27, 2026

Summary

Follow-up to PR #6 (CI rationalization). Replaces the grep-based POM dependency analysis with Maveniverse Scalpel for accurate change detection.

  • Scalpel uses Maven model comparison instead of text grep
  • Detects changed properties, managed dependencies, managed plugins, and property indirection
  • Eliminates known limitations (managed deps without explicit <version>, plugin version changes, BOM imports)

Depends on PR #6 being merged first.

Test plan

  • Dispatch workflow_dispatch with CI-only change (no POM files) → Scalpel should NOT run
  • Dispatch workflow_dispatch with POM-changing PR → Scalpel should detect affected modules

Replace the grep-based POM dependency analysis (extractPomDiff,
detectChangedProperties, findAffectedModules, analyzePomDependencies)
with Maveniverse Scalpel, a Maven extension that uses model comparison
for accurate change detection.

Scalpel handles:
- Changed properties (old/new <properties> comparison)
- Managed dependencies (<dependencyManagement> changes)
- Managed plugins (<pluginManagement> changes)
- Property indirection (e.g. ${spring.version} in managed deps)

This eliminates the known limitations of the grep approach:
- Managed deps without explicit <version> are now detected
- Plugin version changes are now detected
- BOM import changes are now detected

Scalpel is cloned from GitHub and built during CI. It runs as a Maven
core extension in report mode during mvn validate, outputting a JSON
report without modifying the reactor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

ℹ️ CI did not run targeted module tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant