# Rules for `committed` (https://github.com/crate-ci/committed), run as a # commit-msg hook from prek.toml. # # Most lines below override a default. The overrides are what make the linter # describe the style this project actually writes, rather than rejecting it. style = "conventional" # committed capitalizes the subject by default, which for a conventional commit # means requiring `feat(og): Make the card the link preview`. This project # writes the description in lower case. subject_capitalized = false # The defaults are 50 columns of subject and 72 of any wrapped line. The # conventional `type(scope)!: ` prefix eats ten to twenty columns before the # description even starts, which is most of why 50 does not fit. subject_length = 80 line_length = 80 # The default list is fix, feat, chore, docs, style, refactor, perf, test. # `build`, `ci` and `revert` complete the conventional set. allowed_types = [ "feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert", ] # Left at their defaults, deliberately: # # allowed_scopes — unset, so any scope passes. The scopes here track the module # layout, which is still moving. Pinning the list would mean a rename could # only land by editing this file first. # # imperative_subject — true, and a wordlist heuristic, not grammar. It rejects # a description opening with an article (`fix: a fix for it`) and some # inflected verbs (`adds`, `added`). If it ever rejects a subject that is # genuinely imperative, that is the bug, and this is the knob. # # subject_not_punctuated — true. A trailing full stop is rejected; inline # punctuation is fine. # # no_wip, no_fixup — true. Both are aimed at a branch that is about to be # rebased anyway, and this project rebases.