Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,9 @@ Wait for an appropriate reviewer before merging:
4. Update the originating issue or backlog item only after the change is live.

If a production change must be undone, use a normal revert pull request or
revert commit. Do not rewrite shared history or force-push `main`.
revert commit. Do not rewrite shared history or force-push `main`. A ruleset
enforces this: `main` cannot be force-pushed or deleted, and a pull request
cannot be merged while its CI build is failing.

## Never do these

Expand Down
27 changes: 19 additions & 8 deletions UPDATES-NEEDED.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ linting of generated output.

### UPD-002 - Add pull-request CI and protect `main`

**Priority:** High — **CI added; branch protection still open.**
**Priority:** High — **done.**

The Pages workflow runs only on pushes to `main`, so an invalid pull request
received no automated build before merge.
Expand All @@ -58,14 +58,25 @@ before merge rather than after.
The earlier blocker is resolved: the `gh` token in use now carries the
`workflow` scope, so pushes touching `.github/workflows/*` succeed.

**Still open:** the repository has no branch protection or rulesets, so the new
check is advisory. Requiring the `Lint, typecheck, build, snapshot` status and
a pull-request approval through a GitHub ruleset needs an admin action that
cannot be made from a pull request. Follow
[SITE-CONTROL-RECOMMENDATIONS.md](SITE-CONTROL-RECOMMENDATIONS.md).
**Branch protection.** The ruleset *"main: require CI and protect history"* is
active on the default branch with three rules:

| Rule | Effect |
|---|---|
| `required_status_checks` | `Lint, typecheck, build, snapshot` must pass before merge |
| `non_fast_forward` | `main` cannot be force-pushed |
| `deletion` | `main` cannot be deleted |

Repository admins are listed as bypass actors, deliberately. This repository is
maintained by a very small group, and a required *approval* rule would leave a
sole maintainer unable to merge their own work. The status check is the part
that carries the value; the approval requirement is a governance decision that
should be made when the reviewer roles in `CONTRIBUTING.md` section 5 are
actually staffed.

**Acceptance:** met — a pull request is built automatically, and it cannot be
merged while that build is failing.

**Acceptance:** partially met — a pull request is now built automatically. Not
met until a test pull request *cannot merge* while that build is failing.


### UPD-003 - Add ownership and review templates
Expand Down