-
Notifications
You must be signed in to change notification settings - Fork 5k
Description
I've been thinking about our Go Live policy, which is the period we're currently in for .NET 10. I see an opportunity to make to easier to "go live", which is to publish RC packages to packages.microsoft.com (PMC).
Doing that would have two primary benefits:
- Users who already use PMC could easily acquire RC builds.
- Deploying packages on GA day would be a no surprises experience since we would have worked out all kinks through during the RC period.
Today, users can acquire RC builds one of three ways:
- Containers
- Binaries
- Runtime pack (self-contained build)
Container users are quite well served. Switching for a a 9.0 to 10.0 container is trivial. Also, we remove -preview in the 10.0-preview tag at RC1 making it even more natural to use RC container images. The thinking on this tagging policy is that users adopting go live builds should NOT need to change their Dockerfiles as they transitiong from RC2 to GA.
Binaries and self-contained builds are more problematic in that many users who might consider deploying an app with a RC runtime might not use these acquisition approaches as their preferred model. Some users may be happy to switch their deployment type to acquire an RC runtime, but many will not be.
Packages present an opporunity to provide a pre-GA acquisition experience much like the container one. We explored deploying pre-GA builds on PMC, many years ago. In fact (per my memory), we did this and broke people. The question is whether we can enable a valuable RC/go-live experience for packages while avoiding the challenges of the past.
The problem is that bottom part of the dotnet- package graph is shared across all versions. That's the host, basically the dotnet executable. It needs to be compatible across all package versions at GA. The question is whether we can commit to doing that at RC. I suspect that the problems we had in the past were that (A) we were deploying pre-RC builds, and (B) the host was undergoing more change.
The top-level point is that the RC/GoLive policy is intended to be meaninful and real and we should seek to expand the form factors / deployment types where it is easy. Packages have a unique challenge in that they affect all users in a common feed even if they are continuing to only install post-GA versions. Containers are fully isolated and don't have such a tradeoff.
This is a proposal, intended for feedback. In essense, who wants this and would use it? Go Live is primarily intended as a prod scenario, however, if you'd use it for dev/CI, I'm still interested in hearing from you.
I already know that people are going to (righfully) reply saying "YES, I want this, but I use Ubuntu and you stopped publishing Ubuntu targeted packages at PMC so I'm out-of luck". That is very fair. No plans to change our Ubuntu publishing policy. However, I will confidently state that our distro partners are more likely to adopt similar policies if they see Microsoft doing it first.