UXDL Docs

Release Process

Versioning, deployment gates, rollback triggers, and communication.

Production releases promote tested Beta code through an approval gate. Beta is continuous; Production is deliberate.

Beta → Production flow

Release checklist

Before promoting to Production

  1. All planned features validated on Beta by QA.
  2. No open P1/P2 bugs against the Beta build.
  3. Release notes drafted from merged PR titles.
  4. Code owner and SRE approve in #deployments.
  5. Create version tag on main.
  6. CI deploys to Production and runs health checks.
  7. Engineering monitors metrics for 30 minutes.

Versioning

Calendar versioning: YYYY.MM.patch (e.g., 2026.05.1)

bash
git tag v2026.05.1
git push origin v2026.05.1

CI/CD configuration

yaml
name: Build and Deploy
on:
  pull_request:
  push:
    branches: [main]
  release:
    types: [published]
jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: corepack enable
      - run: pnpm install --frozen-lockfile
      - run: pnpm lint && pnpm typecheck && pnpm test
 
  deploy-beta:
    needs: verify
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment: beta
    steps:
      - run: echo "Deploy to Beta"
 
  deploy-prod:
    needs: verify
    if: github.event_name == 'release'
    runs-on: ubuntu-latest
    environment: production
    steps:
      - run: echo "Deploy to Production"

Rollback triggers

Initiate a rollback when:

  • Error rate exceeds 5% for 5 minutes
  • P95 latency doubles from baseline
  • Critical user flow is broken (login, checkout, data access)
  • Data integrity issue is detected

See Production Rollback for commands.

Environment summary

EnvironmentWhen it updatesApproval needed
AlphaEvery PR pushNone
BetaEvery merge to mainNone (CI must pass)
ProductionRelease tag createdCode owner + SRE

See Environments for full details.