microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
1ce32569373cda4d4b485f6e6f09f15e1e4dd569

Branches

Tags

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

Clone

HTTPS

Download ZIP

Guide/src/dev_guide/contrib/release.md

43lines · 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/2411 process
21We track the state of candidates for a given release by tagging the PRs:
22
23* `backport_YYMM`: This PR (to `main`) is a candidate to be included in the `YYMM` release.
24 * N.B.: A maintainer will _remove_ this tag if the fix is not accepted into the release.
25* `backported_YYMM`: This PR (to `main`) has been cherry-picked to the `YYMM` release.
26* `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).
27
28#### Seeking Approval for Backport
29
30To seek approval to include a change in a release branch, follow these steps:
31* Tag your to-`main` PR with `backport_YYMM`.
32* 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.
33
34Please reach out to the maintainers before staging that PR if you have any doubts.
35
36## Existing Release Branches
37
38| Release | Phase | Notes |
39|--------|-------|-------|
40| release/2411 | Ask Mode | |
41
42## Depending on Releases
43We welcome feedback, especially if you would like to depend on a reliable release process. Please reach out!