microsoft/openvmm

Public

mirrored from https://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
b0d0d64d1eb5b4ba59e3ce2991eeeded74113e5a

Branches

Tags

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

Clone

HTTPS

Download ZIP

Guide/src/dev_guide/contrib/release.md

46lines · modecode

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