Skip to content

YY.M.P — Deployment plan

Ordered by the depends_on graph, not by convenience. Expand-contract means add-nullable → backfill → switch → drop is a hard ordering; applying CR-03 before CR-02 breaks production.

Fixed ordering rule

Backend (expand only) → Web PWA → stores. Stores lag by review latency, so a contraction never ships in the same release as the app change that stops needing the thing. Backend goes first and must remain compatible with the oldest live app build.

Pre-flight

  • [ ] npm run check:release exits 0
  • [ ] check:env-drift shows no DIVERGENT
  • [ ] check:fn-config shows no loosening
  • [ ] Declared change set == actual pending set (supabase migration list --linked)
  • [ ] G4 approval recorded, bound to the commit SHA being deployed

Steps

#CREnvironmentActionOwnerEst.Verification
1dev
2uat
3prod

Store submission

PlatformBuildSubmittedExpected reviewRollout
Androidstaged %
iOS

A staged rollout means the old build is still live, so the compatibility floor uses the oldest supported build, not the newest.