chore(husky): let turbo say which packages a push affects - #1789
Conversation
turbo.jsonc declares scripts/**, the root manifest and the lockfile as global inputs, so a root script a workspace compiles reaches that workspace's typecheck through the hash and not through any package directory. --affected reads that model directly, dependents included, where a filter derived from directories could not.
|
Warning Review limit reachedNext included review available in 8 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
PR title fails Conventional Commits checkExamples of valid titles:
|
What
Follow-up to #1781, which merged before its last revision could be pushed: that revision was refused by its own hook while
mainwas red, which is the rule working.The blocking typecheck verdict now comes from turbo's own
--affected(withTURBO_SCM_BASE=origin/main, merge-base semantics) rather than from filters derived from directories. The difference that matters:turbo.jsoncdeclaresscripts/**, the root manifest and the lockfile as global inputs, becauseapps/playground's typecheck compilesscripts/dev-doctor.mjsand a lockfile bump changes what every package compiles against. A directory-derived filter cannot see that a root script reaches a workspace; turbo's hash does.--onlystill keeps unchanged dependencies out of the verdict.The trade this makes, stated
A push that changes a global input is judged against every package, so a
scripts/-only push is refused while any package is red. CI's typecheck follows the same hashes, so that push would be refused at merge regardless; the hook says it earlier. This branch's own push exercised the other side:.huskyalone is no package and no global input, one root task ran, the push went through with the note.Verified
Against
main's realnextlyerror at the time: ascripts/change selected all 28 packages and was refused; #1780's branch (nextly changed, fix present) selected 14 and passed; a docs-only branch passed.CI-only, no changeset.