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

Proposal: New tagging pattern for .NET 8 previews #4117

Closed
mthalman opened this issue Oct 4, 2022 · 5 comments
Closed

Proposal: New tagging pattern for .NET 8 previews #4117

mthalman opened this issue Oct 4, 2022 · 5 comments
Labels
area-dockerfiles enhancement needs-announcement An announcement is needed to discuss customer impact
Milestone

Comments

@mthalman
Copy link
Member

mthalman commented Oct 4, 2022

New tagging pattern for .NET 8 previews

Problem Description

The .NET tagging pattern has historically used a floating major/minor version tag (e.g. 7.0) for each release, starting with preview releases. We'll focus on .NET 7 as the basis for discussion here. With the release of .NET 7 Preview 1 we published 7.0 and 7.0.0-preview.1 tags. Customers were free to use the floating 7.0 tag to move along with each preview or explicitly transition between each preview release by using the tag specific to the preview number (e.g. 7.0.0-preview.1).

The intent with this pattern was to allow early adopters to start using the new features of preview releases and seamlessly transition to supported releases once the version had its GA release. The floating 7.0 tag would give you the latest preview versions as they were being released and then transition to supported servicing releases after GA of .NET 7.

This has lead to some confusion because the 7.0 tag doesn't indicate its supported state at all (see #3531). It has caused some automation tools that to mistakenly think your Dockerfile isn't referencing the latest version of .NET if it's referencing a 6.0 tag (currently the latest supported release). We'd like to avoid this confusion in our tagging pattern.

Proposal

Beginning with .NET 8, the .NET container images will adopt a new tagging pattern that helps to indicate the supported state of the tag. The primary difference from the tagging pattern used historically is that a floating 8.0 won't be introduced until later in the release cycle. Instead, a floating 8.0-preview tag will be used. The tagging pattern maps to the timeline of the .NET 8 release cycle, shown below. For purposes of brevity, tags specific to patch versions and OS (e.g. 8.0.0-preview, 8.0-preview-alpine) aren't shown here.

Release New Tags Updated Tags
.NET 8 Preview 1 8.0-preview
8.0.0-preview.1
n/a
.NET 8 Preview N
(where N > 1)
8.0.0-preview.N 8.0-preview
.NET 8 RC 1 8.0
8.0.0-rc.1
n/a
.NET 8 RC N
(where N > 1)
8.0.0-rc.N 8.0
.NET 8 GA n/a 8.0

With each preview release, the 8.0-preview tag will be updated to reference the latest preview image. That will continue until the first RC release. At that point, the 8.0 tag will be introduced and maintenance of the 8.0-preview tag will be discontinued. Since the RC release will be supported for production use, the intent here is to make this transition now, ahead of the GA release, to provide a smooth experience starting from now, through GA, and into servicing.

We believe this tagging pattern is a good compromise that allows tag changes to be made well ahead of the GA release and yet doesn't mislead people into thinking a .NET version is ready for production use when it's still in preview.

@busches
Copy link

busches commented Oct 4, 2022

Greatly improved and mirrors other projects. 👍

@JamieMagee
Copy link
Member

My only question is: should .NET 8 RCs be tagged with the 8.0 tag? I would expect 8.0 to be reserved for GA releases.

That being said, I understand the desire to get early feedback. If you're happy with automation tools proposing upgrading from 7.0 to 8.0 when 8.0 is at the RC stage, then this sounds great.

@MichaelSimons MichaelSimons added this to the .NET 8.0 milestone Oct 5, 2022
@mthalman
Copy link
Member Author

mthalman commented Oct 5, 2022

My only question is: should .NET 8 RCs be tagged with the 8.0 tag? I would expect 8.0 to be reserved for GA releases.

Given that .NET RCs have a "go live" license, meaning they are supported for production use, our assertion is that it is appropriate to make them available with the 8.0 tag.

@JamieMagee
Copy link
Member

Thanks for the clarification, and thanks for putting this proposal together. This all sounds great!

@mthalman
Copy link
Member Author

This pattern is now implemented in the nightly branch via #4204. It will be in effect upon the official release of .NET 8 Preview 1 images.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-dockerfiles enhancement needs-announcement An announcement is needed to discuss customer impact
Projects
Status: Done
Development

No branches or pull requests

4 participants