Follow-up to #222 (implemented in #751). ferrflow diff <package> <from>..<to> currently lists every commit between the two tags — the raw git range. For a single-package repo that's exactly right, but in a monorepo it includes commits that only touched other packages, so the commit list, breaking-change list, and generated changelog are a superset of what actually went into <package>.
Proposed: when a package is named (or the repo is a monorepo), filter the range's commits to those that touched the package's path (and sharedPaths), the same way compute_plan scopes commits per package. That makes diff's changelog match the changelog ferrflow release would actually generate for that package.
Notes: needs a per-commit changed-files check across the range (each commit vs its parent), then a path match against the package. The plumbing overlaps with the per-package planning path.
Follow-up to #222 (implemented in #751).
ferrflow diff <package> <from>..<to>currently lists every commit between the two tags — the raw git range. For a single-package repo that's exactly right, but in a monorepo it includes commits that only touched other packages, so the commit list, breaking-change list, and generated changelog are a superset of what actually went into<package>.Proposed: when a package is named (or the repo is a monorepo), filter the range's commits to those that touched the package's
path(andsharedPaths), the same waycompute_planscopes commits per package. That makesdiff's changelog match the changelogferrflow releasewould actually generate for that package.Notes: needs a per-commit changed-files check across the range (each commit vs its parent), then a path match against the package. The plumbing overlaps with the per-package planning path.