microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
fd74ec6cfdfc7eb1913eee96659926eb37ed584e

Branches

Tags

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

Clone

HTTPS

Download ZIP

Guide/src/dev_guide/contrib/release.md

80lines · modecode

1# Release Management
2
3Occasionally, the OpenVMM project will declare upcoming release milestones. We
4stabilize the code base in a `release/<MAJOR>.<MINOR>.<YYMM>` branch, typically
5named for the YYMM when the branch was forked. Future references to the release
6number will be shortened to `<RELEASE>` in this doc. We expect a high quality
7bar for all code that goes into the OpenVMM main branch, and we ask developers
8to hold these release branches to the highest quality standards. The OpenVMM
9maintainers will gradually slow the rate of churn into these branches as we get
10closer to a close date.
11
12> **Note:** Some older release branches use the format `release/<YYMM>` without
13> the major and minor version numbers (e.g., `release/2411`, `release/2505`).
14
15This process should not impact your typical workflow; all new work should go
16into the `main` branch. But, to ease the cherry-picks, we may ask that you hold
17off from making breaking or large refactoring changes at points in this
18process.
19
20## Marking, Approval Process, Code Flow
21
22The OpenVMM maintainers will publish various dates for the upcoming releases.
23Currently, these dates are driven by a Microsoft-internal process and can, and
24do, often change. Microsoft does not mean to convey any new product launches by
25choices of these dates.
26
27Releases naturally fall into several phases:
28
29| Phase | Meaning |
30| ------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
31| Active Development | Regular development phase where new features and fixes are added. |
32| Stabilization | Phase focused on stabilizing the release by fixing bugs. |
33| Ask Mode | Only critical fixes are allowed; changes are scrutinized. No new features. This is the last phase before a release is closed. |
34| Servicing | Only essential fixes are made to support the release (a.k.a. maintenance mode). |
35| Out of service | A previous release which is no longer receiving updates. |
36
37### Release branch process
38
39We track the state of candidates for a given release by tagging the PRs with the following labels:
40
41* `backport_<RELEASE>`: This PR (to `main`) is a candidate to be included in the release.
42 * N.B.: A maintainer will _remove_ this tag if the fix is not accepted into the release.
43* `backported_<RELEASE>`: This PR (to `main`) has been cherry-picked to the release branch.
44
45#### Seeking Approval for Backport
46
47To seek approval to include a change in a release branch, follow these steps:
48
491. Tag your PR to `main` with the `backport_<RELEASE>` label.
502. Wait for the PR to be merged to `main`.
513. Cherry-pick the change to the appropriate release branch in your fork and
52 stage a PR to that same branch in the main repository.
53
54Please reach out to the maintainers before staging that PR if you have any
55doubts.
56
57#### Backport PR Best Practices
58
59When creating a backport PR to a release branch:
60
61* **Clean cherry-picks are strongly preferred.** A clean cherry-pick minimizes
62 reviewer effort and reduces the risk of introducing regressions.
63* **If the backport is not a clean cherry-pick** (e.g., requires conflict
64 resolution or additional modifications), clearly indicate this in the PR
65 description. This signals to the reviewer that extra care is needed during
66 the review process.
67
68## Existing Release Branches
69
70| Release | Phase | Notes |
71| ---------------- | ------------------ | -------------------------------------------------------------------- |
72| release/2411 | Out of service | |
73| release/2505 | Servicing | Supports runtime servicing from release/2411. |
74| release/1.7.2511 | Stabilization | Supports runtime servicing from release/2411 and release/2505. |
75| _tbd, in main_ | Active Development | Supports runtime servicing from release/2411 and release/2505. |
76
77## Taking a Dependency on a Release
78
79We welcome feedback, especially if you would like to depend on a reliable
80release process. Please reach out!
81