microsoft/openvmm

Public

mirrored fromhttps://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
7d61702bf0cba28ca985f1a5ef27c4e1caec009c

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Guide/src/dev_guide/contrib/release.md

65lines · modecode

1# Release Management
2
3 Occasionally, the OpenVMM project will declare upcoming release milestones. We
4 stabilize the code base in a `release/YYMM` branch, typically named for the
5 YYMM when the branch was forked. We expect a high quality bar for all code that
6 goes in to the OpenVMM main branch, we ask developers to hold these
7 `release/YYMM` to the highest quality standards. The OpenVMM maintainers will
8 gradually slow the rate of churn into these branches as we get closer to a
9 close date.
10
11 This process should not impact your typical workflow; all new work should go
12 into the `main` branch. But, to ease the cherry-picks, we may ask that you hold
13 off from making breaking or large refactoring changes at points in this
14 process.
15
16## Marking, Approval Process, Code Flow
17
18The OpenVMM maintainers will publish various dates for the upcoming releases.
19Currently, these dates are driven by a Microsoft-internal process and can, and
20do, often change. Microsoft does not mean to convey any new product launches by
21choices of these dates.
22
23Releases naturally fall into several phases:
24
25| Phase | Meaning |
26|-------------------|-------------------------------------------------------------------------|
27| Active Development| Regular development phase where new features and fixes are added. |
28| Stabilization | Phase focused on stabilizing the release by fixing bugs. |
29| Ask Mode | Changes are scrutinized and only critical fixes are allowed. No new features are accepted. This is the last phase before a release is closed. |
30| Servicing | Only essential fixes are made to support the release. a.k.a. maintenance mode |
31
32### Release branch process
33
34We track the state of candidates for a given release by tagging the PRs with the following labels:
35
36* `backport_YYMM`: This PR (to `main`) is a candidate to be included in the
37 `YYMM` release.
38 * N.B.: A maintainer will _remove_ this tag if the fix is not accepted into
39 the release.
40* `backported_YYMM`: This PR (to `main`) has been cherry-picked to the `YYMM`
41 release.
42* `backport_YYMM_approved`: This PR (to `main`) has been reviewed by the OpenVMM
43 maintainers, who believe this meets the bar. This is a temporary tag until the
44 PR is cherry-picked (e.g. a TODO).
45
46#### Seeking Approval for Backport
47
48To seek approval to include a change in a release branch, follow these steps:
49* Tag your PR to `main` PR with the `backport_YYMM` label.
50* Cherry-pick the change to the appropriate `release/YYMM` branch in your fork
51 and stage a PR to that same branch in the main repository.
52
53Please reach out to the maintainers before staging that PR if you have any
54doubts.
55
56## Existing Release Branches
57
58| Release | Phase | Notes |
59|--------|-------|-------|
60| release/2411 | Servicing | |
61| release/2505 | Ask Mode | |
62
63## Depending on Releases
64We welcome feedback, especially if you would like to depend on a reliable
65release process. Please reach out!