Commits now follow the Conventional Commits convention, enforced by a local commit-msg hook and the Commitlint workflow on every pull request. Two checks were introduced as warnings so that current habits do not block work. Once contributors are used to the new scopes, make them errors.
1. Unknown scopes
commitlint.config.ts derives the permitted scopes from the @opendatacapture/* workspace names (27 today, vendor/** excluded on purpose). A scope outside that list, such as deps, e2e, audit, datahub, mail or users, currently produces a warning. Raise the severity of scope-enum from 1 to 2, a one-character change.
2. Commits the changelog generator cannot read
scripts/changelog.ts warns and skips any commit in the release range whose message does not follow the convention, because two such commits already exist between v2.2.4 and main and the gate cannot fix history. Once every commit since the last release conforms, make the generator fail instead of skipping, so that a non-conforming commit can never silently drop out of the changelog.
Commits now follow the Conventional Commits convention, enforced by a local
commit-msghook and theCommitlintworkflow on every pull request. Two checks were introduced as warnings so that current habits do not block work. Once contributors are used to the new scopes, make them errors.1. Unknown scopes
commitlint.config.tsderives the permitted scopes from the@opendatacapture/*workspace names (27 today,vendor/**excluded on purpose). A scope outside that list, such asdeps,e2e,audit,datahub,mailorusers, currently produces a warning. Raise the severity ofscope-enumfrom1to2, a one-character change.2. Commits the changelog generator cannot read
scripts/changelog.tswarns and skips any commit in the release range whose message does not follow the convention, because two such commits already exist betweenv2.2.4andmainand the gate cannot fix history. Once every commit since the last release conforms, make the generator fail instead of skipping, so that a non-conforming commit can never silently drop out of the changelog.