Files
cgalo5758 c56c932a38 Archive the advisory key families change
Archives advisory-keys-name-their-family (#186, second of two changes)
and syncs its deltas: a new database-locks spec (every advisory key is
built from its family and an id; a lock helper takes a transaction; the
families and the lock order are written once), whose Purpose this
commit writes; deployment-docs gains the requirement that the
production guide states an upgrade stops the old release first;
go-static-analysis gains the lock-site rule; entitlements and
entitlement-set-management state the rendezvous by its family. Five
requirements added, three modified, no scenario dropped. 91 specs
valid.

What the work behind both #186 changes taught beyond them:
- docs/testing.md: how dbtest.Counted names a statement; a guarantee
  that needs READ COMMITTED is also tested on a repeatable-read
  connection; a lint rule's break adds code, not a comment; Abort for a
  call that may answer without waiting, and a "leaves a weaker lock
  free" test also checks the lock is held; how forbidigo matches
  sql.DB.Begin and the calls it cannot see.
- docs/go-conventions.md: a third READ COMMITTED case, a locking read
  that waited failing with 40001 at REPEATABLE READ.
- docs/database-management.md: what migrate down rolls back (#242) and
  how to roll back a core migration by hand; CREATE OR REPLACE resets
  SECURITY DEFINER, search_path and volatility; sqlc moves a section
  comment onto the next query.
- design.md: the upgrade rule's two rejected alternatives.
2026-10-31 04:12:39 -05:00
..
2026-02-01 02:22:38 -06:00