Skip to content
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

Add doc on OS onboarding #112026

Merged
merged 13 commits into from
Feb 10, 2025
Merged

Add doc on OS onboarding #112026

merged 13 commits into from
Feb 10, 2025

Conversation

richlander
Copy link
Member

@richlander richlander commented Jan 31, 2025

Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-meta
See info in area-owners.md if you want to be subscribed.

@ericstj ericstj requested a review from Copilot January 31, 2025 23:38
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

docs/project/os-onboarding.md Outdated Show resolved Hide resolved
richlander and others added 2 commits January 31, 2025 15:53
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

## Mechanics

Most of our testing is done in container images. New images need to be created for each new version in the [dotnet/dotnet-buildtools-prereqs-docker](https://github.com/dotnet/dotnet-buildtools-prereqs-docker) repo. The repo is self-service and largely self-explanatory. One typically creates a new image using the pattern demonstrated by the previous version.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't say most - I think it's a mix between Helix queues and docker images.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Most of our testing is done in container images. New images need to be created for each new version in the [dotnet/dotnet-buildtools-prereqs-docker](https://github.com/dotnet/dotnet-buildtools-prereqs-docker) repo. The repo is self-service and largely self-explanatory. One typically creates a new image using the pattern demonstrated by the previous version.
Much of our testing is done in container images. New images need to be created for each new version in the [dotnet/dotnet-buildtools-prereqs-docker](https://github.com/dotnet/dotnet-buildtools-prereqs-docker) repo. The repo is self-service and largely self-explanatory. One typically creates a new image using the pattern demonstrated by the previous version.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about helix queues? The most recent ask for Server 2025 was delayed for so long because we didn't have queues. I think we need to call that out as a prerequisite - unless there was a miss here and testing could have been unblocked with containers all along.

docs/project/os-onboarding.md Outdated Show resolved Hide resolved

For whatever the reason, we should update references to EOL OSes if we have them.

## Mechanics
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about builds and changing the platform we build on?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Builds are not affected by OS onboarding and use a different process. We only build on x64.

We've documented the process we use for Linux: https://github.com/dotnet/runtime/blob/main/docs/project/linux-build-methodology.md. Windows is simpler.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My point is that we should also cover how new platforms apply to build and what we need to do to update the versions of build agents.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It depends what you mean. In practice, we don't do this. The last one of these that I am aware of is Apple Arm64. That was a massive project (as you recall) and no doc could cover that.

Do you have another example?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps @sbomer @jkoritzinsky can think of some examples.

@ericstj ericstj requested review from agocke and jkotas February 1, 2025 00:12
@richlander
Copy link
Member Author

Great feedback! I'm going to (try to) expand the doc to cover the broader set of scenarios.

richlander and others added 2 commits February 5, 2025 13:57
@richlander
Copy link
Member Author

I significantly expanded the scope of the doc. You may find that I've got a better grasp of some areas than others. In particular, I don't have a good grasp on what we do for Windows and Apple. My discussion of that may not be good enough and I may need help filling in those gaps.

Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you!

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
@richlander richlander mentioned this pull request Feb 8, 2025
@richlander
Copy link
Member Author

I'll merge this on Monday afternoon if I don't hear any more feedback.

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
@richlander
Copy link
Member Author

This issue is sort of a first application of this guidance (even thought it is filed in another repo): dotnet/source-build#4890.

@richlander richlander merged commit 1090705 into dotnet:main Feb 10, 2025
16 checks passed
@richlander richlander deleted the onboarding branch February 10, 2025 22:57
grendello added a commit to grendello/runtime that referenced this pull request Feb 11, 2025
* main:
  Code clean up in AP for NonNull* (dotnet#112027)
  JIT: Invalidate LSRA's DFS tree if we aren't running new layout phase (dotnet#112364)
  Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250204.2 (dotnet#112339)
  Add doc on OS onboarding (dotnet#112026)
  Add `TypeName` APIs to simplify metadata lookup. (dotnet#111598)
  Internal monitor impl not using coop mutex causing deadlocks on Android. (dotnet#112358)
  Do not run NAOT arm64 OSX testing on all PRs (dotnet#112342)
  Special-case empty enumerables in AsyncEnumerable (dotnet#112321)
  Have mono handle ConvertToIntegerNative for Double and Single (dotnet#112206)
  Update dependencies from https://github.com/dotnet/arcade build 20250206.4 (dotnet#112338)
  System.Configuration.ConfigurationManager.Tests: use Assembly.Location to determine ThisApplicationPath. (dotnet#112231)
  Force write of local file header when "version needed to extract" changes (dotnet#112032)
  JIT: Don't reorder handler blocks (dotnet#112292)
  [RISC-V] Synthesize some floating constants inline (dotnet#111529)
  Enable `SA1000`: Spacing around keywords (dotnet#112302)
  Fix relocs for linux-riscv64 AOT (dotnet#112331)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants