Skip to content

Commit fbbea76

Browse files
authored
Merge pull request #7110 from CecileRobertMichon/release-team
📖 Add release team process
2 parents f9e624a + 3071cf3 commit fbbea76

File tree

2 files changed

+81
-1
lines changed

2 files changed

+81
-1
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ come up, including gaps in documentation!
5151

5252
If you're a more experienced contributor, looking at unassigned issues in the next release milestone is a good way to find work that has been prioritized. For example, if the latest minor release is `v1.0`, the next release milestone is `v1.1`.
5353

54-
Help and contributions are very welcome in the form of code contributions but also in helping to moderate office hours, triaging issues, fixing/investigating flaky tests, cutting releases, helping new contributors with their questions, reviewing proposals, etc.
54+
Help and contributions are very welcome in the form of code contributions but also in helping to moderate office hours, triaging issues, fixing/investigating flaky tests, being part of the [release team](docs/developer/release-team.md), helping new contributors with their questions, reviewing proposals, etc.
5555

5656
## Versioning
5757

docs/developer/release-team.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Cluster API Release Team
2+
3+
## Overview
4+
5+
In the past, releasing Cluster API has been mostly ad-hoc and relied on one or more contributors to do most of the chore work necessary to prepare the release. One of the major downsides of this approach is that it is often difficult for users and providers to plan around Cluster API releases as they often have little visibility around when a release will happen.
6+
7+
This document introduces the concept of a release team with the following goals and non-goals:
8+
9+
### Goals
10+
11+
- To improve communication to end users and contributors about CAPI release cadence and target release dates
12+
- To spread the load of release tasks and involve a bigger, more diverse set of CAPI contributors in cutting releases
13+
- To look at the Kubernetes SIG release team processes for guidance on releasing best practices
14+
- To improve tooling, documentation, and automation of the CAPI release process
15+
16+
### Non-Goals/Future work
17+
18+
- To increase the frequency of releases (AKA release cadence). This will be revisited in the future once the release process stabilizes.
19+
- To change the current proposal (CAEP) process
20+
- To copy implement all steps of the Kubernetes release process for CAPI releases
21+
22+
Note that this document is intended to be a starting point for the release team. It is not a complete release process document.
23+
24+
More details on the CAPI release process can be found in [this past issue tracking release tasks](https://github.com/kubernetes-sigs/cluster-api/issues/6615) and the current [release documentation](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/developer/releasing.md).
25+
26+
## Duration of Term
27+
28+
Each release team term will last approximately four months, to align with one minor release cycle. A minor release cycle starts right after a minor release and concludes with the release of the next minor release. There is no limit to the number of terms a release team member can serve, meaning that it's possible for a release team member to serve multiple consecutive terms.
29+
30+
As noted above, making changes to the CAPI release cadence is out of scope for this initial release team process.
31+
32+
## Specific Responsibilities
33+
34+
- Release patch releases monthly or more often as needed, so users will get fixes & updated dependencies with CVE fix on a predictable cadence
35+
- Release a minor release every 4 months (to be revised, see future work), so users will get new features on a predictable cadence
36+
- Create beta and release candidate (rc) tags for upcoming minor releases
37+
- Ensure only eligible PRs are cherry-picked to the active release branches
38+
- Monitor CI signal, so a release can be cut at any time, and add CI signal for each new release branch
39+
- Maintain and improve user facing documentation about releases, release policy and calendar
40+
- Update the CAPI Netlify book certificates and DNS
41+
- Update the clusterctl Homebrew formula
42+
- Create and maintain the GitHub release milestone
43+
- Maintain and improve and release automation, tooling & related developer docs
44+
- Track tasks needed to add support for new Kubernetes versions in the next CAPI release
45+
46+
47+
## Team Roles
48+
49+
- **Release Lead**: responsible for coordinating release activities, assembling the release team, taking ultimate accountability for all release tasks to be completed on time, and ensuring that a retrospective happens. The lead is also responsible for ensuring a successor is selected and trained for future release cycles.
50+
- **Communications/Docs/Release Notes Manager**: Responsible for communicating key dates to the community, improving release process documentation, and polishing release notes. Also responsible for ensuring the user-facing Netlify book and provider upgrade documentation are up to date.
51+
- **CI Signal/Bug Triage/Automation Manager**: Assumes the responsibility of the quality gate for the release and makes sure blocking issues and bugs are triaged and dealt with in a timely fashion. Helps improve release automation and tools.
52+
- **Shadow**: Any Release Team member may select one or more mentees to shadow the release process in order to help fulfill future Release Team staffing requirements and continue to grow the CAPI community in general.
53+
54+
## Team Selection
55+
56+
To start, the release team will be assembled by the release team lead based on volunteers. A call for volunteers can be made through the usual communication channels (office hours, Slack, mailing list, etc.). In the future, we may consider introducing an application process similar to the Kubernetes release team application process.
57+
58+
### Selection Criteria
59+
60+
When assembling a release team, the release team lead should look for volunteers who:
61+
62+
- Can commit to the amount of time required across the release cycle
63+
- Are enthusiastic about being on the release team
64+
- Are members of the Cluster Lifecycle SIG
65+
- Have some prior experience with contributing to CAPI releases (such as shadowing a role for a prior release)
66+
- Have diverse company affiliations (i.e. not all from the same company)
67+
68+
## Time Commitment
69+
70+
As a member of the release team, you should expect to spend approximately 4-8 hours a week on release related activities for the duration of the term.
71+
72+
Before you volunteer to be part of a CAPI release team, please make certain that your employer is aware and supportive of your commitment to the release team.
73+
74+
## Why should I volunteer?
75+
76+
Volunteering to be part of a CAPI release team is a great way to contribute to the community and to the release process:
77+
78+
- Get more familiar with the CAPI release process
79+
- Create lasting relationships with other members of the community
80+
- Contribute to the CAPI project health

0 commit comments

Comments
 (0)