-
Notifications
You must be signed in to change notification settings - Fork 5k
Update OS onboarding docs #115501
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update OS onboarding docs #115501
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the OS onboarding documentation to better clarify the differences between the main and release branches and to introduce a new OS Support Matrix document that outlines our testing coverage intent.
- Adds a new OS Support Matrix document to detail coverage levels for various operating systems.
- Updates the OS Onboarding guide to clarify testing approaches, OS lifecycle, and branch-specific strategies.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
docs/project/os-support.md | New document detailing OS support tiers and coverage intent. |
docs/project/os-onboarding.md | Revised content clarifying testing, OS lifecycle, and branch update strategies. |
Co-authored-by: Copilot <[email protected]>
This is a first draft for the new doc. It needs some help. I believe the Linux part is right and then I'm not sure about other OSes and most are missing. |
@@ -14,8 +14,9 @@ Continuing with the idea of pragmatism, if you only read this far, you've got th | |||
|
|||
References: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It feels like the above section is leading with the "why" rather than the "what" -- that is, it is explaining our reasoning before mentioning the strategy. Should we invert that for people who are only interested in the "what"?
|
||
The following tiers apply for Linux. | ||
|
||
- Tier 1: Azure Linux, Debian, Ubuntu (in inner and outer loop) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd invert this language. That is, define what each tier means, then classify each OS as being in a particular tier.
|
||
We rely on multiple levels of testing to provide good coverage at reasonable cost. Our testing uses OSes both as a vehicle to test .NET itself and to validate discover distro-specific breakage. This is why we test multiple OSes for each run type. | ||
|
||
- Inner loop -- Baseline set of tests that validate correct functional behavior, for PRs and branch builds. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe worth calling out that inner-loop for main means lots and lots of test coverage. For release branches it's just servicing fixes.
FWIW, it may be simpler to remove this distinction bewteen inner-loop only/outer-loop included tiers. Main will run everything eventually, just not on PR. Release branches could be changed to do the same thing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to explains:
- What these different "loops" are for / why they exist to enable others to make reasonable future changes to their pipeline definitions. It was not at all clear to me.
- Why they have different OSes in them and what informs that choice
- Any difference between main and release
We do not need to use tiers to do that. That was the most obvious approach.
Co-authored-by: Andy Gocke <[email protected]>
- Tier 1: Azure Linux, Debian, Ubuntu (in inner and outer loop) | ||
- Tier 2: Alpine and CentOS Stream (in inner loop) | ||
- Tier 3: Fedora and OpenSUSE (in extra platforms) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Tier 1: Azure Linux, Debian, Ubuntu (in inner and outer loop) | |
- Tier 2: Alpine and CentOS Stream (in inner loop) | |
- Tier 3: Fedora and OpenSUSE (in extra platforms) | |
- Tier 1: present in inner and outer loop (Azure Linux, Debian, Ubuntu) | |
- Tier 2: present in inner loop only (Alpine and CentOS Stream) | |
- Tier 3: present in extra platforms only (Fedora and OpenSUSE) | |
main
vsrelease
branches