You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 39e60ab
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/changelog.md
+74Lines changed: 74 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ below and to the page that documents the feature properly.
11
11
12
12
| Version | What changed | Documented in |
13
13
|---|---|---|
14
+
|[2.19.1](#v2191)|`develop` accepted by default; stricter merge-subject, fixup, WIP and sign-off checks |[CC201](rules.md#cc201) · [CC001](rules.md#cc001) · [CC009](rules.md#cc009)|
14
15
|[2.19.0](#v2190)| Branch descriptions held to the Conventional Branch grammar; Amp, OpenHands, Factory Droid and Jules recognised |[CC201](rules.md#cc201) · [CC013](rules.md#cc013)|
15
16
|[2.18.3](#v2183)|`--fix` corrects a message in place; `--branch` reads GitLab, Bitbucket, Azure and Jenkins variables |[Fixing a message in place](example.md#fixing-a-message-in-place) · [Other CI](guides/other-ci.md)|
16
17
|[2.18.0](#v2180)| AI disclosure policy: three rules, and the correction written for you |[Policy guides](guides/policies.md#asking-for-disclosure-instead) · [CC014](rules.md#cc014)|
@@ -31,6 +32,79 @@ below and to the page that documents the feature properly.
31
32
|[2.5.0](#v250)| Organization-wide config with `inherit_from`|[Across an organization](guides/organization.md)|
32
33
|[2.0.0](#v200)| Configuration moved from YAML to TOML — breaking |[Migrating from v1](migration.md)|
33
34
35
+
## v2.19.1 (2026-10-16) { #v2191 }
36
+
37
+
### Changed
38
+
39
+
***`develop` is accepted by default** — the Conventional Branch
40
+
specification counts `develop` as a trunk branch beside `main` and
41
+
`master`, but [CC201](rules.md#cc201) failed it unless
42
+
`allow_branch_names` listed it. It now passes like `main` and `master`, and
43
+
the spec-strict config needs only the types and the description grammar.
44
+
This only widens what passes.
45
+
See PR [#612](https://github.com/commit-check/commit-check/pull/612).
46
+
47
+
***Only merge subjects a tool wrote are exempt** — any subject starting with
48
+
`Merge ` skipped [CC001](rules.md#cc001) and the subject rules. Now only
49
+
the forms git, GitHub, GitLab and Bitbucket write are exempt, such as
50
+
`Merge branch 'x' into 'y'` and `Merge pull request #12 from …`. A typed
51
+
subject such as `Merge the parser rewrite` is judged like any other, so it
52
+
now fails CC001.
53
+
See PR [#619](https://github.com/commit-check/commit-check/pull/619).
54
+
55
+
***A commit message file is checked as git will store it** — the
56
+
`commit-msg` hook runs before git strips comments, so git's comment block,
57
+
and with `git commit -v` the whole diff, were read as part of the message.
58
+
Comment lines and everything from the scissors line on are now dropped
59
+
first. A subject-only commit written in the editor now fails
60
+
[CC011](rules.md#cc011) when `require_body` is on, and a `Signed-off-by:`
61
+
line in the diff no longer counts. `--fix` keeps the comment and diff
62
+
blocks in the file.
63
+
See PR [#618](https://github.com/commit-check/commit-check/pull/618).
64
+
65
+
### Fixed
66
+
67
+
***[CC009](rules.md#cc009) rejects `squash!` and `amend!` too** — with
68
+
`allow_fixup_commits = false` only `fixup!` commits failed.
69
+
See PR [#613](https://github.com/commit-check/commit-check/pull/613).
70
+
71
+
***[CC010](rules.md#cc010) catches every WIP marker** — `WIP` followed by a
72
+
newline, a tab or a dash passed. Any subject that begins with the word `WIP`
73
+
or `[WIP]`, in any case, now fails; `wipe the cache` still passes.
74
+
See PR [#616](https://github.com/commit-check/commit-check/pull/616).
75
+
76
+
***[CC012](rules.md#cc012) reads only a real trailer** — `Signed-off-by:`
77
+
text anywhere in the message passed, including the subject and a line with
78
+
no name. The check now needs a trailer line with a name and an address, and
79
+
it runs in linear time on any input.
80
+
See PR [#621](https://github.com/commit-check/commit-check/pull/621).
81
+
82
+
***[CC002](rules.md#cc002) and [CC003](rules.md#cc003) skip only a real type
83
+
prefix** — any leading `word:` was skipped, even with
84
+
`conventional_commits = false`, so `Added: support for X` passed the
85
+
imperative check. The prefix is now skipped only when Conventional Commits
86
+
is on and the type is allowed.
87
+
See PR [#622](https://github.com/commit-check/commit-check/pull/622).
88
+
89
+
***[CC013](rules.md#cc013) sees two more AI co-author forms** — a trailer
90
+
with a blank before the colon, `Co-authored-by : Claude <…>`, which git
91
+
still reads as a trailer, and the line Cursor's agent writes,
| branch | allow_branch_types | list[str] | ["feature", "bugfix", "hotfix", "release", "chore", "feat", "fix", "build", "ci", "docs", "perf", "refactor", "style", "test", "ai", "claude", "codex", "copilot", "cursor", "dependabot", "renovate"] | Allowed branch types when `conventional_branch` is true. The default is a superset of the [Conventional Branch spec](https://conventionalbranch.org/): the spec's types (`feature`, `bugfix`, `hotfix`, `release`, `chore`, their aliases `feat` and `fix`, and the AI agent prefixes `ai`, `claude`, `codex`, `copilot`, `cursor`) plus the other Conventional Commit types (`build`, `ci`, `docs`, `perf`, `refactor`, `style`, `test`) and bot prefixes (`dependabot`, `renovate`). For strict spec-only validation, set this option explicitly to the spec's types; [CC201](rules.md#cc201) has the full config. |
379
384
| branch | require_description_grammar | bool | false | Also hold the description after `<type>/` to the Conventional Branch grammar: lowercase letters and digits, words joined by single hyphens, dots only inside a word. Off by default, because bot branches such as `dependabot/npm_and_yarn/lodash-4.17.21` do not follow it. See [CC201](rules.md#cc201). |
380
-
| branch | allow_branch_names | list[str] | [] (empty list) | Additional standalone branch names allowed when conventional_branch is true (e.g., ["develop", "staging"]). By default, master, main, HEAD, and PR-* are always allowed. |
385
+
| branch | allow_branch_names | list[str] | [] (empty list) | Additional standalone branch names allowed when conventional_branch is true (e.g., ["staging", "production"]). By default, main, master, develop, HEAD, and PR-* are always allowed. |
381
386
| branch | require_rebase_target | str | "" (no requirement) | Target branch for rebase requirement. If not set, no rebase validation is performed. |
382
387
| push | allow_force_push | bool | true | Allow force pushes. Set to `false` to block force pushes when used as a pre-push hook or with `--no-force-push`. |
383
388
| branch | ignore_authors | list[str] | [] (none ignored) | List of authors to ignore (i.e., always allow). |
0 commit comments