Files
gh-anton-abyzov-specweave-p…/commands/specweave-release-rc.md
2025-11-29 17:57:06 +08:00

12 KiB

name, description
name description
specweave-release:rc Manage Release Candidate (RC) lifecycle including creation, testing, validation, and promotion to production. Handles RC iteration (rc.1, rc.2, rc.3), tracks testing status, coordinates RC across multiple repositories, manages canary deployments, and promotes RC to final release when validation passes.

/specweave-release:rc - Manage Release Candidates

Manage the complete Release Candidate (RC) lifecycle from creation to production promotion.

What This Command Does

RC Creation:

  • Creates pre-release tags (v1.0.0-rc.1)
  • Deploys to staging environment
  • Initializes RC testing checklist

RC Testing:

  • Tracks validation status
  • Runs automated tests
  • Manages manual testing
  • Documents issues found

RC Iteration:

  • Fixes bugs → creates rc.2, rc.3, ...
  • Never modifies existing RC tags (immutable)
  • Maintains iteration history

RC Promotion:

  • Validates all checks passed
  • Promotes to production release (v1.0.0)
  • Gradual rollout (canary → 100%)
  • Updates living docs

Usage

# Create new RC
/specweave-release:rc create <version>
/specweave-release:rc create 1.0.0

# Create RC iteration (bug fixes)
/specweave-release:rc iterate <rc-version>
/specweave-release:rc iterate 1.0.0-rc.2

# Show RC status
/specweave-release:rc status <rc-version>
/specweave-release:rc status 1.0.0-rc.3

# Run RC validation tests
/specweave-release:rc test <rc-version>
/specweave-release:rc test 1.0.0-rc.3

# Promote RC to production
/specweave-release:rc promote <rc-version>
/specweave-release:rc promote 1.0.0-rc.3

# Rollback failed RC
/specweave-release:rc rollback <rc-version>
/specweave-release:rc rollback 1.0.0-rc.2

# Multi-repo RC (creates RC for all repos)
/specweave-release:rc create-multi <product-version>
/specweave-release:rc create-multi product-v3.0.0

Workflow: Single-Repo RC

Step 1: Create Initial RC

/specweave-release:rc create 1.0.0
Creating Release Candidate for v1.0.0...

Step 1: Analyzing changes since v0.9.0
  - Commits: 45
  - Breaking changes: 2
  - Features: 8
  - Bug fixes: 12
  → Major version bump confirmed ✓

Step 2: Creating RC tag
  ✓ Tagged: v1.0.0-rc.1
  ✓ Pushed to origin

Step 3: Triggering CI/CD
  ✓ GitHub Actions workflow started
  ✓ Build: #542 (running)
  ✓ Estimated time: 15 minutes

Step 4: Creating RC tracking document
  ✓ Created: .specweave/increments/0090-v1-release/reports/RC-STATUS-v1.0.0-rc.1.md

RC created successfully! ✓

Next steps:
  1. Wait for CI/CD to complete
  2. Deploy to staging: (automated via CI/CD)
  3. Run validation: /specweave-release:rc test 1.0.0-rc.1
  4. Review status: /specweave-release:rc status 1.0.0-rc.1
  5. If issues: Fix and iterate to rc.2
  6. If pass: Promote to v1.0.0

Monitor build: https://github.com/myorg/myapp/actions/runs/542

Step 2: Monitor RC Testing

/specweave-release:rc status 1.0.0-rc.1
# RC Status: v1.0.0-rc.1

## Timeline
- Created: 2025-01-15 10:00 UTC
- Deployed to staging: 2025-01-15 10:15 UTC
- Testing phase: In progress (Day 2 of 7)

## Build Status
- CI/CD: ✓ Passed (Build #542)
- Build time: 14m 23s
- Artifacts: Published

## Deployment Status
- Staging: ✓ Deployed (10:15 UTC)
- Pods: 3/3 healthy
- Health check: ✓ Passing

## Testing Progress

### Automated Tests
- [x] Unit tests: 2,345 tests passed
- [x] Integration tests: 456 tests passed
- [x] E2E tests: 123 tests passed
- [x] Performance tests: p95 latency 185ms ✓ (<200ms target)
- [x] Load tests: 12K req/s sustained ✓ (10K target)
- [x] Security scan: No critical/high vulnerabilities ✓

### Manual Testing
- [x] Smoke tests: All critical paths working
- [ ] Exploratory testing: In progress (QA team)
- [x] Cross-browser testing: Chrome ✓, Firefox ✓, Safari ✓
- [ ] Mobile testing: iOS (pending), Android (pending)

### Performance Benchmarks
- API latency p50: 45ms (baseline: 42ms) ✓
- API latency p95: 185ms (baseline: 180ms) ✓
- API latency p99: 320ms (baseline: 310ms) ✓
- Database queries: 1.2ms avg (baseline: 1.1ms) ✓
- Memory usage: 512MB (baseline: 500MB) ✓

## Issues Found
None yet ✓

## Next Actions
- [ ] Complete mobile testing (iOS, Android)
- [ ] Exploratory testing (2 days remaining)
- [ ] Stakeholder approval
- [ ] Promote to canary (5% traffic)

## Decision
Status: NOT READY (testing in progress)
Blocking: Mobile testing, exploratory testing incomplete

Step 3: Found Bug → Iterate to rc.2

/specweave-release:rc iterate 1.0.0-rc.1
Iterating Release Candidate v1.0.0-rc.1...

Issues found in rc.1:
  1. Authentication fails for SSO users
     - Impact: Critical (blocks SSO users from logging in)
     - Fix: Add SSO provider check in auth flow
     - Commit: abc123

Please fix the issue and commit changes.

? Ready to create rc.2? [Yes / No]

[User fixes bug and confirms]

Creating rc.2...

Step 1: Creating new RC tag
  ✓ Tagged: v1.0.0-rc.2
  ✓ Pushed to origin

Step 2: Triggering CI/CD
  ✓ GitHub Actions workflow started (Build #548)

Step 3: Updating RC tracking
  ✓ Updated: RC-STATUS-v1.0.0.md
  ✓ Added iteration history: rc.1 → rc.2

RC iteration complete! ✓

The testing process restarts for rc.2.
Monitor: https://github.com/myorg/myapp/actions/runs/548

Step 4: All Tests Pass → Promote to Production

/specweave-release:rc promote 1.0.0-rc.3
Promoting Release Candidate v1.0.0-rc.3 to production...

Step 1: Pre-promotion validation
  ✓ All automated tests passing
  ✓ Manual testing complete
  ✓ No blocking issues
  ✓ Stakeholder approval received
  ✓ Release notes drafted

Step 2: Creating production tag
  ✓ Tagged: v1.0.0
  ✓ Pushed to origin

Step 3: Deployment strategy
  Plan: Gradual rollout
  - Canary: 5% traffic (1 hour)
  - Wave 1: 10% traffic (1 hour)
  - Wave 2: 25% traffic (2 hours)
  - Wave 3: 50% traffic (4 hours)
  - Wave 4: 100% traffic (8 hours)

  Total duration: ~16 hours

Step 4: Starting canary deployment
  ✓ Deployed v1.0.0 to canary namespace
  ✓ Traffic: 5% routed to canary
  ✓ Monitoring: Active

  Metrics to watch:
  - Error rate (target: <1%)
  - Latency p95 (target: <200ms)
  - Throughput (target: >10K req/s)

  Next check: In 1 hour (11:00 UTC)

Canary deployment started! ✓

I'll monitor the metrics and notify you when ready for next wave.

Monitor dashboard: https://grafana.example.com/d/prod-release
Rollback command: /specweave-release:rc rollback 1.0.0-rc.3

Workflow: Multi-Repo RC

Create Coordinated RC

/specweave-release:rc create-multi product-v3.0.0
Creating coordinated Release Candidate for Product v3.0.0...

Step 1: Analyzing repositories
  Detected: 4 repos (frontend, backend, api-gateway, shared-lib)

Step 2: Analyzing changes per repo
  frontend (v4.2.0 → v5.0.0):
    - Breaking: React 18 upgrade
    - RC: v5.0.0-rc.1

  backend (v2.8.0 → v3.0.0):
    - Breaking: Remove legacy API
    - RC: v3.0.0-rc.1

  api-gateway (v3.1.0 → v4.0.0):
    - Breaking: Remove /v2 endpoints
    - RC: v4.0.0-rc.1

  shared-lib (v1.5.0 → v1.5.1):
    - Patch: Bug fixes only
    - RC: v1.5.1-rc.1

Step 3: Creating RC tags for all repos
  ✓ frontend: v5.0.0-rc.1
  ✓ backend: v3.0.0-rc.1
  ✓ api-gateway: v4.0.0-rc.1
  ✓ shared-lib: v1.5.1-rc.1

Step 4: Triggering coordinated CI/CD
  ✓ All workflows started
  ✓ Estimated time: ~20 minutes

Step 5: Creating coordinated RC tracking
  ✓ Created: .specweave/increments/0095-product-v3-release/reports/RC-STATUS-product-v3.0.0-rc.1.md

Multi-repo RC created! ✓

Next steps:
  1. Wait for all builds to complete
  2. Deploy to staging (coordinated)
  3. Run cross-service E2E tests
  4. Validate: /specweave-release:rc status product-v3.0.0-rc.1
  5. Iterate if needed: Fix issues → rc.2
  6. Promote: /specweave-release:rc promote product-v3.0.0-rc.3

RC Testing Checklist

Automatically created for each RC:

# RC Validation Checklist: v1.0.0-rc.3

## Automated Tests
- [x] Unit tests: 2,345 tests (100% pass)
- [x] Integration tests: 456 tests (100% pass)
- [x] E2E tests: 123 tests (100% pass)
- [x] Performance tests: All benchmarks met
- [x] Load tests: 10K req/s sustained
- [x] Security scan: No critical/high issues

## Manual Tests
- [x] Smoke tests: All critical paths work
- [x] Exploratory testing: No major issues
- [x] Cross-browser: Chrome, Firefox, Safari
- [x] Mobile: iOS, Android

## Infrastructure
- [x] Database migrations: Tested (forward + rollback)
- [x] Canary deployment: 5% traffic, 24 hours
- [x] No error rate increase
- [x] No performance degradation
- [x] Rollback plan validated

## Documentation
- [x] CHANGELOG.md updated
- [x] API documentation updated
- [x] Migration guide (breaking changes)
- [x] Release notes drafted

## Approvals
- [x] Product Manager: @jane- [x] Engineering Lead: @john- [x] Security Team: @alice- [x] QA Lead: @bob## Monitoring
- [x] Alerts configured
- [x] Dashboards updated
- [x] On-call schedule confirmed

## Final Decision
Status: APPROVED ✅
Ready for production: Yes
Promote to: v1.0.0
Scheduled: 2025-01-16 10:00 UTC

RC Rollback

If issues detected during canary:

/specweave-release:rc rollback 1.0.0-rc.3
Rolling back v1.0.0-rc.3...

Reason: Error rate increased to 8% in canary

Step 1: Stopping new traffic to canary
  ✓ Kubernetes: kubectl rollout pause

Step 2: Routing traffic back to previous version
  ✓ 100% traffic → v0.9.0 (previous stable)
  ✓ 0% traffic → v1.0.0-rc.3 (canary)

Step 3: Verifying rollback
  ✓ Error rate back to 0.5% (normal)
  ✓ Latency back to baseline
  ✓ All health checks passing

Step 4: Documenting rollback
  ✓ Updated: RC-STATUS-v1.0.0.md
  ✓ Incident logged: INC-456

Step 5: Root cause analysis
  Issue: Database connection pool exhausted
  Fix required: Increase pool size + add connection retry logic

Rollback complete! ✓

Next steps:
  1. Fix identified issue
  2. Create rc.4 with fix
  3. Re-test in staging
  4. Retry canary deployment

RC Status Tracking

Creates detailed status document:

.specweave/increments/0090-v1-release/reports/RC-STATUS-v1.0.0.md

Tracks:

  • RC iteration history (rc.1, rc.2, rc.3, ...)
  • Testing status per iteration
  • Issues found and fixes applied
  • Deployment history
  • Promotion decision

Integration with SpecWeave

RC Command Integration:

# 1. Create release increment
/specweave:increment "0090-v1-0-0-release"

# 2. Create RC
/specweave-release:rc create 1.0.0
# → Creates v1.0.0-rc.1

# 3. Testing phase
/specweave-release:rc test 1.0.0-rc.1
# → Runs automated tests

# 4. Iterate if needed
/specweave-release:rc iterate 1.0.0-rc.1
# → Creates v1.0.0-rc.2

# 5. Promote when ready
/specweave-release:rc promote 1.0.0-rc.3
# → Creates v1.0.0, deploys to production

# 6. Mark increment complete
/specweave:done 0090
# → Updates living docs

Best Practices

RC Creation:

  • Always start with rc.1
  • Never modify existing RC tags
  • Create new iteration for fixes

RC Testing:

  • Run ALL tests for each iteration
  • Never skip validation steps
  • Use production-like staging data

RC Promotion:

  • Gradual rollout (canary → waves)
  • Monitor 1+ hour at each stage
  • Have rollback plan ready

RC Documentation:

  • Track all iterations
  • Document bugs and fixes
  • Record promotion rationale
  • /specweave-release:init - Initialize release strategy
  • /specweave-release:align - Align versions before RC
  • /specweave-release:coordinate - Coordinate multi-repo RC
  • /specweave:done - Complete release increment

Dependencies

Required:

  • Git (version control)
  • Release strategy document

Optional:

  • Kubernetes (kubectl) - Deployment management
  • Docker (docker) - Container testing
  • GitHub CLI (gh) - Release notes

Use this command to safely validate changes before production release through comprehensive RC testing and gradual rollout.