Skip to content

feat: Implement path and tag filtering#86

Merged
jmongard merged 1 commit into
jmongard:masterfrom
juan-rojas-affirm:feature/monorepo-path-filter
Apr 18, 2026
Merged

feat: Implement path and tag filtering#86
jmongard merged 1 commit into
jmongard:masterfrom
juan-rojas-affirm:feature/monorepo-path-filter

Conversation

@juan-rojas-affirm
Copy link
Copy Markdown
Contributor

@juan-rojas-affirm juan-rojas-affirm commented Apr 16, 2026

Aims to resolve #64.

Adds pathFilter setting and makes releaseTagNameFormat bidirectional
to support independent versioning of subprojects in a monorepo.

pathFilter

When set, only commits touching that directory count toward version bumps and changelog.

  • Uses JGit PathFilter + ANY_DIFF so tree comparisons are correct.
  • Commits outside the filter are still traversed (so release tags in their ancestry are found), but:
    • marked as ignored
    • skipped during version accumulation

releaseTagNameFormat as read filter

The static prefix before %s (e.g. "lib-v" from "lib-v%s") is used to filter which tags are read.

  • Prevents cross-subproject tag pollution.

Bounded filter RevWalk

The path-filter pre-scan stops at the last version boundary (tagged commits + release-message commits) instead of walking the full history.

  • getTags() is computed once and shared between:
    • VersionFinder
    • getHeadCommit

@juan-rojas-affirm juan-rojas-affirm marked this pull request as ready for review April 16, 2026 22:15
@jmongard jmongard merged commit db8add4 into jmongard:master Apr 18, 2026
1 check passed
@jmongard
Copy link
Copy Markdown
Owner

Thank you for implementing the feature :-)

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.

Proposal: Support monorepos

2 participants