# Release Process Visual Guide ## πŸ”„ Release Pipeline Overview ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ KROW WORKFORCE RELEASE PIPELINE β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€ DEVELOPMENT PHASE ────────────────────────────────────────────┐ β”‚ β”‚ β”‚ Feature Branch Development β”‚ β”‚ ↓ β”‚ β”‚ Code Review & Testing β”‚ β”‚ ↓ β”‚ β”‚ Merge to Main β”‚ β”‚ ↓ β”‚ β”‚ Automated Builds & Tests (GitHub Actions / CodeMagic) β”‚ β”‚ ↓ β”‚ β”‚ βœ… Main is always deployment-ready β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ β”Œβ”€ STAGING RELEASE ──────────────────────────────────────────────┐ β”‚ β”‚ β”‚ 1. Create Release Branch (release/[product]-v[version]) β”‚ β”‚ 2. Bump Version Numbers β”‚ β”‚ 3. Update CHANGELOG β”‚ β”‚ 4. Create Git Tags: */staging-v[version] β”‚ β”‚ 5. Deploy to Staging Environment β”‚ β”‚ 6. Run QA Tests β”‚ β”‚ 7. Product Owner Sign-off β”‚ β”‚ β”‚ β”‚ Duration: 1 week minimum β”‚ β”‚ Cadence: Bi-weekly β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ β”Œβ”€ ISSUE? ──────────────────┐ β”‚ ↓ β”‚ Create Hotfix β”‚ Branch/Tag β”‚ (*/staging-v[X+1]) └─ FIX & RETEST β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ β”Œβ”€ PRODUCTION RELEASE ───────────────────────────────────────────┐ β”‚ β”‚ β”‚ 1. Final Verification in Staging β”‚ β”‚ 2. Create Production Tags: */prod-v[version] β”‚ β”‚ 3. Deploy in Dependency Order: β”‚ β”‚ β€’ DataConnect Schema (if applicable) β”‚ β”‚ β€’ Command API β”‚ β”‚ β€’ Core API β”‚ β”‚ β€’ Web Dashboard β”‚ β”‚ β€’ Staff Mobile β”‚ β”‚ β€’ Client Mobile β”‚ β”‚ 4. Smoke Tests in Production β”‚ β”‚ 5. Create GitHub Release Page β”‚ β”‚ 6. Announce to Users β”‚ β”‚ 7. Monitor for 24 hours β”‚ β”‚ β”‚ β”‚ Duration: 1-2 hours deployment, 24-48 hours monitoring β”‚ β”‚ Cadence: Monthly or sprint-based β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Legend: βœ… = Ready state β†’ = Next step ↓ = Dependency ``` --- ## πŸ“¦ Product Dependency & Release Order ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ DataConnect Schema β”‚ β”‚ (if applicable) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Backend Services β”‚ β”‚ β”‚ β”œβ”€ Command API β”‚ └─ Core API β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”‚ Web β”‚ β”‚ Staff β”‚ β”‚ Client β”‚ β”‚ Dashboard β”‚ β”‚ Mobile β”‚ β”‚ Mobile β”‚ β”‚ β”‚ β”‚ App β”‚ β”‚ App β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Critical Path (Staging β†’ Production): 1. DataConnect (if schema changes) 2. APIs (Command + Core) [parallel OK] 3. Web Dashboard [can wait for API confirmation] 4. Mobile Apps [independent, can deploy anytime] Parallel Deployments (when safe): β€’ Both backend APIs can deploy in parallel β€’ Mobile apps can deploy in parallel β€’ Web + Mobile can deploy in parallel (if APIs stable) Non-Blocking: β€’ Mobile can release without web changes β€’ Web can release without mobile changes β€’ Backend can release non-breaking API changes independently ``` --- ## 🏷️ Git Tag Timeline Example ``` Release v1.0.0 Timeline (Coordinated) 2026-03-01 2026-03-08 2026-03-15 2026-03-22 β”‚ β”‚ β”‚ β”‚ β”œβ”€ Code Freeze β”œβ”€ Staging Release β”œβ”€ Production β”œβ”€ Next Sprint β”‚ β”‚ β”‚ Release β”‚ β”œβ”€ Feature Branches β”œβ”€ */staging-v1.0.0 β”œβ”€ */prod-v1.0.0 β”‚ β”‚ β†’ main β”‚ β”‚ β”‚ β”‚ β”œβ”€ QA Testing β”œβ”€ Deploy & Verify β”‚ β”œβ”€ All Tests # β”œβ”€ 24h Monitoring β”œβ”€ 48h Monitoring β”‚ β”‚ Green # β”‚ β”‚ β”‚ β”‚ β”œβ”€ Product Sign-off βœ“ β”œβ”€ Users Notified β”‚ └─ Ready βœ“ └─ Approved for Prod └─ Stable βœ“ β”‚ Key Milestones: # = All automated tests passing βœ“ = Manual approval/sign-off ``` --- ## πŸ”„ Release Branch Structure ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ main (Protected) ──────────────────┐ β”‚ β”‚ β”‚ feature/auth feature/payments β”‚ β”‚ ↓ ↓ β”‚ β”‚ ──●──●──●── ──●──●──●── ──●──●──●── ← Feature β”‚ β”‚ β”‚ β”‚ β”‚ Branches β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€ ┬─────── β”‚ β”‚ ↓ β”‚ ↓ β”‚ ↓ β”‚ β”‚ ────●──────●─────●─────●──────●───── ← Merge PRs β”‚ β”‚ β”‚ β”‚ β”‚ ↓ β”‚ β”‚ release/staff-mobile-v0.2.0 ← Release Branch β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€ Bump version β”‚ β”‚ β”œβ”€ Update CHANGELOG β”‚ β”‚ β”œβ”€ Commit & merge back β”‚ β”‚ β”‚ β”‚ β”‚ ────●●────────────────── ← Merge back to main β”‚ β”‚ β”‚ β”‚ β”‚ ↓ β”‚ β”‚ TAG: staff-mobile/staging-v0.2.0 ← Staging Tag β”‚ β”‚ TAG: staff-mobile/prod-v0.2.0 ← Prod Tag β”‚ β”‚ β”‚ β”‚ β”‚ (Deploy from tags) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Key Points: β€’ main is always clean and deployable β€’ Feature branches never go to staging/prod β€’ Tags point to main (after merge) β€’ Releases == Git tags, not branches β€’ Hotfix branches created from prod tags ``` --- ## πŸ“‹ Multi-Product Release Coordination ``` Product Release States (Example: v1.0.0) Staff Mobile: β”œβ”€ Dev build: βœ… staff-mobile/dev-v1.0.0 (deployed) β”œβ”€ Staging: βœ… staff-mobile/staging-v1.0.0 (testing) └─ Production: πŸ”„ staff-mobile/prod-v1.0.0 (deploying) Client Mobile: β”œβ”€ Dev build: βœ… client-mobile/dev-v1.0.0 (deployed) β”œβ”€ Staging: βœ… client-mobile/staging-v1.0.0 (testing) └─ Production: πŸ”„ client-mobile/prod-v1.0.0 (deploying) Web Dashboard: β”œβ”€ Dev build: βœ… web-dashboard/dev-v1.0.0 (deployed) β”œβ”€ Staging: βœ… web-dashboard/staging-v1.0.0 (testing) └─ Production: βœ… web-dashboard/prod-v1.0.0 (live) Command API: β”œβ”€ Dev build: βœ… command-api/dev-v1.0.0 (deployed) β”œβ”€ Staging: βœ… command-api/staging-v1.0.0 (testing) └─ Production: βœ… command-api/prod-v1.0.0 (live) Core API: β”œβ”€ Dev build: βœ… core-api/dev-v1.0.0 (deployed) β”œβ”€ Staging: βœ… core-api/staging-v1.0.0 (testing) └─ Production: βœ… core-api/prod-v1.0.0 (live) Legend: βœ… = Released and stable πŸ”„ = In progress ⏳ = Waiting for approval β›” = Blocked/awaiting fix Sync Points (when to coordinate): 1. Before moving staging β†’ prod (all ready?) 2. During prod deployment (follow order) 3. Post-release (all working?) 4. If hotfix needed (which products affected?) ``` --- ## 🚨 Hotfix Release Flow ``` Production Issue Detected β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Is it critical? β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”˜ β”‚ YES β”‚ NO ↓ └─→ Plan for next release β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Create Hotfix Branch β”‚ β”‚ (from prod tag) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Make Fix β”‚ β”‚ Test locally β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”œβ”€ Bump PATCH version β”‚ β”‚ (e.g., 0.1.0 β†’ 0.1.1) β”‚ β”œβ”€ Update CHANGELOG β”‚ β”œβ”€ Commit to hotfix branchβ”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Code Review (expedited) β”‚ β”‚ Approval + merge β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Create Tag β”‚ β”‚ */prod-v0.1.1 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Deploy to Production β”‚ β”‚ (High priority) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Verify Fix β”‚ β”‚ Monitor 24h β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Communicate to Users β”‚ β”‚ Incident Report β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ↓ βœ… Resolved Speed target: 4-8 hours total (from detection to production verification) ``` --- ## πŸ“Š Version Matrix Dashboard Create in your team wiki/notion: ``` ╔════════════════════════════════╦═══════════╦═══════════╦═══════════╗ β•‘ Product β•‘ Dev β•‘ Staging β•‘ Prod β•‘ ╠════════════════════════════════╬═══════════╬═══════════╬═══════════╣ β•‘ Staff Mobile β•‘ 0.2.1 β•‘ 0.2.0 β•‘ 0.1.0 β•‘ β•‘ Client Mobile β•‘ 0.2.1 β•‘ 0.2.0 β•‘ 0.1.0 β•‘ β•‘ Web Dashboard β•‘ 0.1.0 β•‘ 0.0.0 β•‘ β€” β•‘ β•‘ Command API β•‘ 0.2.0 β•‘ 0.2.0-rc1 β•‘ 0.1.0 β•‘ β•‘ Core API β•‘ 0.2.0 β•‘ 0.2.0-rc1 β•‘ 0.1.0 β•‘ β•‘ DataConnect β•‘ 0.4.0 β•‘ 0.3.0 β•‘ 0.3.0 β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•©β•β•β•β•β•β•β•β•β•β•β•β•©β•β•β•β•β•β•β•β•β•β•β•β•©β•β•β•β•β•β•β•β•β•β•β•β• Last updated: 2026-03-05 Updated by: DevOps Team Next release planning: 2026-03-08 ``` --- ## ⏱️ Release Timeline Template For every release, create this timeline: ``` Release: [Product] v[Version] Target: [date] Milestones: β”œβ”€ Feb 28 (T-7): Code freeze β”œβ”€ Mar 1 (T-6): Staging release + QA testing β”œβ”€ Mar 5 (T-2): Final staging verification β”œβ”€ Mar 6 (T-1): Production deployment readiness β”œβ”€ Mar 7 (T-0): Production deployment 14:00-16:00 UTC β”œβ”€ Mar 8 (T+1): Monitoring & verification └─ Mar 9 (T+2): Release celebration πŸŽ‰ Deployment Windows: Testing: Anytime Staging: Anytime Prod: 14:00-16:00 UTC on release day (Off-peak time in all timezones) Rollback Window: 4 hours post-deployment ``` --- ## 🎯 Status Page Template Share with stakeholders: ``` πŸš€ KROW Workforce Release Status πŸ“… Week of March 5, 2026 Current Production Versions: β”œβ”€β”€ Staff Mobile: 0.1.0 βœ… β”œβ”€β”€ Client Mobile: 0.1.0 βœ… β”œβ”€β”€ Web Dashboard: TBD ⏳ β”œβ”€β”€ Command API: 0.1.0 βœ… └── Core API: 0.1.0 βœ… In Staging (Testing): β”œβ”€β”€ Staff Mobile: 0.2.0 πŸ”„ (50% through QA) β”œβ”€β”€ Client Mobile: 0.2.0 πŸ”„ (50% through QA) └── Web Dashboard: 0.1.0 πŸ”„ (30% through QA) Next Production Release: β”œβ”€β”€ Target Date: March 15, 2026 β”œβ”€β”€ Products: All 5 products β”œβ”€β”€ Focus: Shift booking, payments, mobile improvements └── Expected Impact: 2-3 hour deployment window Risks & Blockers: None current Recent Incidents: None ``` --- **Document Version**: 1.0 **Created**: 2026-03-05 **Maintain**: DevOps / Release Manager