You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document outlines the release process for NVIDIA AI Cluster Runtime (AICR). For contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
3
+
This document describes when, why, and how AICR releases are made. For contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
4
4
5
-
## Prerequisites
5
+
## Cadence
6
6
7
-
- Repository admin access with write permissions
8
-
- Understanding of semantic versioning (vMAJOR.MINOR.PATCH)
9
-
- Access to GitHub Actions workflows
10
-
-[git-cliff](https://git-cliff.org/) installed (run `make tools-setup` to install)
7
+
Releases follow a **bi-weekly cadence**, aligned with sprint boundaries. A new release is cut at the conclusion of each 2-week sprint.
11
8
12
-
## Release Methods
9
+
| Release Type | When | Version Bump | Decision |
10
+
|-------------|------|-------------|----------|
11
+
| Sprint release | End of each 2-week sprint |`patch` or `minor`| Maintainer determines bump type based on changes landed |
12
+
| Hotfix | Between sprints, as needed |`patch`| Any maintainer can initiate for critical fixes |
13
+
| Major | Planned |`major`| Requires team agreement and advance communication |
13
14
14
-
### Method 1: Version Bump (Recommended)
15
+
##What Goes Into a Release
15
16
16
-
Use Makefile targets for standard releases:
17
+
A release includes everything merged to `main` since the last tag. There is no cherry-picking or feature branching for releases — if it's on `main`, it ships.
17
18
18
-
```bash
19
-
make bump-patch # v1.2.3 → v1.2.4
20
-
make bump-minor # v1.2.3 → v1.3.0
21
-
make bump-major # v1.2.3 → v2.0.0
22
-
```
19
+
**Before cutting a release, verify:**
23
20
24
-
**What happens automatically**:
21
+
- All CI checks pass on `main` (`make qualify`)
22
+
- No known regressions from the current sprint
23
+
- Breaking changes use `feat!:` or `fix!:` commit prefix (drives changelog and signals consumers)
25
24
26
-
1. Validates working directory is clean with no unpushed commits
27
-
2. Calculates the new version based on bump type
28
-
3. Generates/updates `CHANGELOG.md` using [git-cliff](https://git-cliff.org/)
29
-
4. Commits the changelog update
30
-
5. Creates an annotated tag
31
-
6. Pushes both commit and tag to origin
32
-
7. Triggers release workflows (see [Workflow Pipeline](#workflow-pipeline))
25
+
## Quality Gates
33
26
34
-
**Note**: Manual edits to `CHANGELOG.md` (e.g., corrections to previous releases) are preserved. The bump process prepends new entries without overwriting existing content.
27
+
Every release must pass these automated gates before artifacts are published:
35
28
36
-
### Method 2: Manual Tag (Advanced)
29
+
- Unit tests with race detector
30
+
- golangci-lint + yamllint
31
+
- License header verification
32
+
- Trivy vulnerability scan
33
+
- E2E tests on Kind cluster
37
34
38
-
For cases where you need more control over the release process:
35
+
If any gate fails, the release pipeline stops. Fix forward on `main` and cut a new tag.
39
36
40
-
1.**Ensure main is ready**:
41
-
```bash
42
-
git checkout main
43
-
git pull origin main
44
-
make qualify # All checks must pass
45
-
```
37
+
## How to Release
46
38
47
-
2.**Generate changelog manually** (optional):
48
-
```bash
49
-
git-cliff --tag v1.2.3 -o CHANGELOG.md
50
-
git add CHANGELOG.md
51
-
git commit -m "chore: update CHANGELOG for v1.2.3"
docker run --rm ghcr.io/nvidia/aicr:${TAG} --version
163
-
164
-
# Test API server
165
-
docker run --rm -p 8080:8080 ghcr.io/nvidia/aicrd:${TAG}&
166
-
curl http://localhost:8080/health
167
-
```
168
-
169
-
## Version Management
170
-
171
-
-**Semantic versioning**: `vMAJOR.MINOR.PATCH`
172
-
-**Pre-releases**: `v1.2.3-rc1`, `v1.2.3-beta1` (automatically marked in GitHub)
173
-
-**Breaking changes**: Increment MAJOR version
147
+
## Demo Deployment
174
148
175
-
## Demo Cloud Run Deployment
149
+
> **Note**: Demonstration only — not a production service. Self-host `aicrd` for production use. See [API Server Documentation](docs/contributor/api-server.md).
176
150
177
-
> **Note**: This is a **demonstration deployment** for testing and development purposes only. It is not a production service. Users should self-host the `aicrd` API server in their own infrastructure for production use. See [API Server Documentation](docs/contributor/api-server.md) for deployment guidance.
151
+
The `aicrd` API server demo deploys to Google Cloud Run on successful release (project: `eidosx`, region: `us-west1`, auth: Workload Identity Federation).
178
152
179
-
The `aicrd` API server demo is automatically deployed to Google Cloud Run on successful release:
0 commit comments