Skip to content

docs: contributing describes the protection that now exists - #28

Merged
stxkxs merged 1 commit into
mainfrom
document-branch-protection
Aug 8, 2026
Merged

docs: contributing describes the protection that now exists#28
stxkxs merged 1 commit into
mainfrom
document-branch-protection

Conversation

@stxkxs

@stxkxs stxkxs commented Aug 8, 2026

Copy link
Copy Markdown
Member

CONTRIBUTING already said "Every CI job is required; none is advisory." That was the intent, not the state — ten of the sixteen public repos had no branch protection at all, and the discipline was held up by a local git hook on one machine. The sentence is now true.

main is protected on all sixteen: pull requests required, force pushes and deletions refused, linear history, and the rules applied to admins. The single required status check is merge gate (plus merge gate (security) where a separate security workflow exists).

Documents the two properties a contributor cannot infer from the name:

  • The gate treats skipped as a failure. GitHub scores a skipped check as passing for branch protection, so a rollup without if: always() reports green precisely when something broke.
  • The gate refuses to pass while any job in its workflow sits outside its needs: list — so adding a job to CI makes it blocking automatically, with no branch-protection edit to remember.

This PR is also the end-to-end proof that the new protection permits a normal merge: it is the first PR opened after enforce_admins, strict, linear history and the required gate went on.

`main` is protected on all sixteen public repos: pull requests required,
force pushes and deletions refused, linear history, and the rules applied
to admins. The single required status check is the merge gate.

CONTRIBUTING already said every CI job is required and none is advisory.
That was the intent and not the state — ten of the sixteen repos had no
branch protection at all, and the discipline was held up by a local git
hook on one machine. The sentence is now true.

Documents the two properties a contributor cannot infer: that the gate
treats a skipped dependency as a failure, because GitHub scores skipped as
passing and a rollup without `always()` reports green precisely when
something broke; and that the gate refuses to pass while any job in its
workflow sits outside its `needs:` list, so adding a job to CI makes it
blocking with no settings edit to remember.
@stxkxs
stxkxs merged commit 7eaa71e into main Aug 8, 2026
7 checks passed
@stxkxs
stxkxs deleted the document-branch-protection branch August 8, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant