|
| 1 | +# Release Process |
| 2 | + |
| 3 | +Documentation for releasing Helm charts and platform configuration for the CANFAR Science Platform. |
| 4 | + |
| 5 | +## CANFAR Release Cycle |
| 6 | + |
| 7 | +The CANFAR Science Platform uses a version format `YYYY.Q` for quarterly releases: |
| 8 | + |
| 9 | +- **2025.1** - Q1 2025 release |
| 10 | +- **2025.2** - Q2 2025 release |
| 11 | + |
| 12 | +Between releases, **hotfix patches** may be released as needed for critical issues. |
| 13 | + |
| 14 | +## Helm Chart Releases |
| 15 | + |
| 16 | +Each Helm chart in this repository is versioned independently: |
| 17 | + |
| 18 | +- Charts follow semantic versioning (`MAJOR.MINOR.PATCH`) |
| 19 | +- Release Please automation manages changelog and version bumps |
| 20 | +- Each chart has its own release cycle and `CHANGELOG.md` |
| 21 | + |
| 22 | +## Branching Model |
| 23 | + |
| 24 | +- `main` is the integration branch - all work merges via pull requests |
| 25 | +- Use conventional commits for automatic changelog generation |
| 26 | +- Hotfixes branch from the latest release tag and merge back to `main` |
| 27 | + |
| 28 | +## Release Workflow |
| 29 | + |
| 30 | +### 1. Making Changes |
| 31 | + |
| 32 | +- Create a pull request to `main` |
| 33 | +- Use conventional commit messages (e.g., `feat:`, `fix:`, `docs:`) |
| 34 | +- Add appropriate labels for changelog categorization |
| 35 | +- Ensure all CI checks pass |
| 36 | + |
| 37 | +### 2. Release Please Automation |
| 38 | + |
| 39 | +Release Please automatically: |
| 40 | + |
| 41 | +- Detects changes to Helm charts |
| 42 | +- Determines version bump based on conventional commits |
| 43 | +- Updates `CHANGELOG.md` and `Chart.yaml` |
| 44 | +- Creates a release PR for each affected chart |
| 45 | + |
| 46 | +### 3. Review and Merge |
| 47 | + |
| 48 | +- Review the generated changelog and version bump |
| 49 | +- Verify Helm chart values and configuration |
| 50 | +- Obtain required approvals |
| 51 | +- Merge the release PR to create tags and GitHub releases |
| 52 | + |
| 53 | +### 4. Deployment |
| 54 | + |
| 55 | +After release PR is merged: |
| 56 | + |
| 57 | +- Git tag is created automatically |
| 58 | +- GitHub release is published with changelog |
| 59 | +- Deploy to staging environment first |
| 60 | +- Run validation and smoke tests |
| 61 | +- Deploy to production after successful validation |
| 62 | + |
| 63 | +## Hotfix Process |
| 64 | + |
| 65 | +For critical issues requiring immediate patches: |
| 66 | + |
| 67 | +1. Create `hotfix/<issue>` branch from affected release tag |
| 68 | +2. Apply fix and create PR to `main` |
| 69 | +3. Release Please generates patch release PR |
| 70 | +4. Follow standard review and merge process |
| 71 | +5. Deploy hotfix after testing |
| 72 | + |
| 73 | +## Pre-deployment Checklist |
| 74 | + |
| 75 | +Before deploying a Helm chart release: |
| 76 | + |
| 77 | +- ✅ Review CHANGELOG for all changes |
| 78 | +- ✅ Verify chart values match intended configuration |
| 79 | +- ✅ Check for breaking changes or migrations |
| 80 | +- ✅ Ensure dependent services are compatible |
| 81 | +- ✅ Prepare rollback plan |
| 82 | + |
| 83 | +## Rollback Strategy |
| 84 | + |
| 85 | +If issues are detected after deployment: |
| 86 | + |
| 87 | +1. Roll back to previous Helm chart version |
| 88 | +2. Document issue and root cause |
| 89 | +3. Create hotfix branch to address problem |
| 90 | +4. Follow hotfix process for patch release |
0 commit comments