Skip to content

Commit

Permalink
Add missing tasks and improve release team docs
Browse files Browse the repository at this point in the history
Signed-off-by: Furkat Gofurov <furkat.gofurov@suse.com>
  • Loading branch information
furkatgofurov7 committed Oct 31, 2023
1 parent 0eb51f0 commit 49051a7
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 19 deletions.
53 changes: 35 additions & 18 deletions docs/release/release-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,22 @@ This document details the responsibilities and tasks for each role in the releas
- [Release Lead](#release-lead)
- [Responsibilities](#responsibilities)
- [Tasks](#tasks)
- [Set a tentative release date for the minor release](#set-a-tentative-release-date-for-the-minor-release)
- [Assemble release team](#assemble-release-team)
- [Add/remove release team members](#addremove-release-team-members)
- [Finalize release schedule and team](#finalize-release-schedule-and-team)
- [Add/remove release team members](#addremove-release-team-members)
- [Prepare main branch for development of the new release](#prepare-main-branch-for-development-of-the-new-release)
- [Create a new GitHub milestone for the next release](#create-a-new-github-milestone-for-the-next-release)
- [[Track] Remove previously deprecated code](#track-remove-previously-deprecated-code)
- [[Track] Bump dependencies](#track-bump-dependencies)
- [Create a release branch](#create-a-release-branch)
- [Set a tentative release date for the next minor release](#set-a-tentative-release-date-for-the-next-minor-release)
- [Assemble next release team](#assemble-next-release-team)
- [[Continuously] Maintain the GitHub release milestone](#continuously-maintain-the-github-release-milestone)
- [[Continuously] Bump the Go version](#continuously-bump-the-go-version)
- [[Repeatedly] Cut a release](#repeatedly-cut-a-release)
- [[Optional] Public release session](#optional-public-release-session)
- [[Optional] [Track] Bump the Cluster API apiVersion](#optional-track-bump-the-cluster-api-apiversion)
- [[Optional] [Track] Bump the Kubernetes version](#optional-track-bump-the-kubernetes-version)
- [[Optional] Track Release and Improvement tasks](#optional-track-release-and-improvement-tasks)
- [Communications/Docs/Release Notes Manager](#communicationsdocsrelease-notes-manager)
- [Responsibilities](#responsibilities-1)
- [Tasks](#tasks-1)
Expand Down Expand Up @@ -67,7 +68,7 @@ This document details the responsibilities and tasks for each role in the releas
* Ensure a retrospective happens
* Ensure a maintainer is available when a release needs to be cut.
* Staffing:
* Assemble the release team for the current release cycle
* Assemble the release team for the next release cycle
* Ensure a release lead for the next release cycle is selected and trained
* Set a tentative release date for the next release cycle
* Cutting releases:
Expand All @@ -77,25 +78,17 @@ This document details the responsibilities and tasks for each role in the releas

### Tasks

#### Set a tentative release date for the minor release

1. Set a tentative release date for the release and document it by creating a `release-1.4.md`.

#### Assemble release team

There is currently no formalized process to assemble the release team.
As of now we ask for volunteers in Slack and office hours.

#### Add/remove release team members

If necessary, the release lead can adjust the release team during the cycle to handle unexpected changes in staffing due to personal/professional issues, no-shows, or unplanned work spikes. Adding/removing members can be done by opening a PR to update the release team members list for the release cycle in question.

#### Finalize release schedule and team

1. Finalize release schedule and team in the [docs/release/releases](../../docs/release/releases), e.g. [release-1.4.md](../../docs/release/releases/release-1.4.md).
2. Update @cluster-api-release-team Slack user group and GitHub team accordingly.
<br>Prior art: https://github.com/kubernetes-sigs/cluster-api/issues/7476
3. Announce the _release team_ and _release schedule_ to the mailing list.
3. Update @cluster-api-release-lead and @cluster-api-release-team aliases in root OWNERS_ALIASES file with Release Team members.
4. Announce the _release team_ and _release schedule_ to the mailing list.

#### Add/remove release team members

If necessary, the release lead can adjust the release team during the cycle to handle unexpected changes in staffing due to personal/professional issues, no-shows, or unplanned work spikes. Adding/removing members can be done by opening a PR to update the release team members list for the release cycle in question.

#### Prepare main branch for development of the new release

Expand Down Expand Up @@ -172,6 +165,16 @@ From this point forward changes which should land in the release have to be cher
3. Update the GitHub Actions to work with the new release version.
<br>Prior art: [Update actions for 1.5 and make names consistent](https://github.com/kubernetes-sigs/cluster-api/pull/9115)

#### Set a tentative release date for the next minor release

1. Set a tentative release date for the next minor release and document it by creating a `release-X.Y.md` in [docs/release/releases](../../docs/release/releases).
<br>Prior art: https://github.com/kubernetes-sigs/cluster-api/pull/9635

#### Assemble next release team

There is currently no formalized process to assemble the release team.
As of now we ask for volunteers in Slack and office hours.

#### [Continuously] Maintain the GitHub release milestone

The goal of this task is to keep an overview over the current release milestone and the implementation
Expand Down Expand Up @@ -277,6 +280,20 @@ Additional information:
1. Create an issue for the new Kubernetes version via: [New Issue: Kubernetes bump](https://github.com/kubernetes-sigs/cluster-api/issues/new/choose).
2. Track the issue to ensure the work is completed in time.
#### [Optional] Track Release and Improvement tasks
1. Create an issue for easier tracking of all the tasks for the release cycle in question.
<br>Prior art: [Tasks for v1.6 release cycle](https://github.com/kubernetes-sigs/cluster-api/issues/9094)
2. Create a release improvement tasks [GitHub Project Board](https://github.com/orgs/kubernetes-sigs/projects/55) to track
the current status of all improvement tasks planned for the release, their priorities, status (i.e `Done`/`In Progress`)
and to distribute the work among the Release Team members.
**Notes**:
* At the beginning of the cycle, Release Team Lead should prepare the improvement tasks board for the ongoing release cycle.
The following steps can be taken:
- Edit improvement tasks board name for current cycle (e.g. `CAPI vX.Y release improvement tasks`)
- Add/move all individual missing issues to the board
## Communications/Docs/Release Notes Manager
### Responsibilities
Expand Down
19 changes: 19 additions & 0 deletions docs/release/release-team.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
- [Team Selection](#team-selection)
- [Selection Criteria](#selection-criteria)
- [Time Commitment](#time-commitment)
- [Release Team/Day Meetings](#release-teamday-meetings)
- [Suggestions for Team Leads](#suggestions-for-team-leads)
- [Why should I volunteer?](#why-should-i-volunteer)
- [Cluster API release team vs kubernetes/kubernetes-SIG membership](#cluster-api-release-team-vs-kuberneteskubernetes-sig-membership)
Expand Down Expand Up @@ -101,9 +102,27 @@ While we don't anticipate individuals to be available every week during the rele

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.

## Release Team/Day Meetings

Release Team Members meet and share team specific updates, news and all release specific items in the Release Team Meetings.

- Release Team Meetings happen once a week every Wednesday, half an hour before office hours using the CAPI meeting zoom [link](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09).
- Release Team Meeting notes can be found [here](https://docs.google.com/document/d/1AUiuvapS3ldYVJfKucDhIoH6IJIPS009jqwnSTwS0EI).
- Reach out to maintainers to get the zoom meeting host key to be able to share the screen when office hours zoom link is used.

*Note:* For now, we don't have a calendar invite for Release Team Meetings to be sent out to all Release Team Members. Create a recurring calendar invite for the period of whole release cycle and send it to all Release Team Members.

Release Day meetings is used to cut the releases as a group following the release cycle timeline.

- Release Day Meetings happen on the release date specified in the release timeline document, using the CAPI meeting zoom [link](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09) at the time depending on the Release Team Members timezone and availability.

## Suggestions for Team Leads

* In the first week of the release cycle, organize an onboarding session with members of your team (i.e CI Lead with CI team members) to go over the general responsibilities and expectations.
* Public communication should be default: all the Release Team specific topics, issues, discussion have to be public and discussed openly in the communication channels the Release Team uses. It gives visibility on the work being done, it is inclusive and track of record. All other communication
within the Release Team Members can de carried out using a private group/chat.
* For Release Lead: Inform Release Team Members about the upcoming release, a day prior to the actual release cutting date over a common communication
channel (usually Cluster API Slack) and ask for team specific updates from Team Leads (i.e status of CI signal from CI Team Lead or preparing a PR for release notes with new desired tag in advance) to ensure smoother release cutting process and avoid unexpected surprises.
* Clearly communicate with the team members you are responsible for, that the majority of the work during the release cycle will be a collaborative effort.
* Establish an ownership rotation policy in consultation with respective team members.
* Provide opportunities for team members to take the lead in cutting a release within the cycle, based on feasibility.
Expand Down
2 changes: 1 addition & 1 deletion hack/generate-doctoc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ if [[ -z "$(command -v doctoc)" ]]; then
exit 0
fi

doctoc ./CONTRIBUTING.md docs/release/release-tasks.md docs/release/release-team-onboarding.md docs/scope-and-objectives.md docs/staging-use-cases.md docs/proposals
doctoc ./CONTRIBUTING.md docs/release/release-tasks.md docs/release/release-team-onboarding.md docs/release/release-team.md docs/scope-and-objectives.md docs/staging-use-cases.md docs/proposals

0 comments on commit 49051a7

Please sign in to comment.