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

React to changes to .NET 8 tagging scheme for Microsoft-built containers #198

Closed
baronfel opened this issue Oct 12, 2022 · 2 comments · Fixed by #384
Closed

React to changes to .NET 8 tagging scheme for Microsoft-built containers #198

baronfel opened this issue Oct 12, 2022 · 2 comments · Fixed by #384

Comments

@baronfel
Copy link
Member

baronfel commented Oct 12, 2022

Starting in .NET 8, an new tagging scheme will be used for the MS-authored .NET containers. The details of this scheme can be found here.

Our inference rules need to update to match this scheme. It would be simplest to just apply the 8.0-preview/8.0 portions of the new scheme, but I think we can be slightly more precise. Since the rules are getting slightly more complex, I think we should extract the inference out to a dedicated Task and implement the more granular set of rules - locating the appropriate 8.0-preview.N, 8.0-rc.N, and 8.0 tags as appropriate. We'd need to start parsing SemVers in order to do this but that isn't a particularly huge task.

We may be able to not have to parse actual semvers, since the value passed to the task will be a trusted string. The logic could be

  • if SDK Version does not contain -, then the tag should be 'MAJOR.minor'
  • if the SDK Version does contain -, then check the 'MAJOR.minor'
    • if MAJOR <= 7, then tag should be MAJOR.minor
    • if MAJOR > 7, then investigate the alpha part right after the -, and the numeric part right after that
      • if first alpha part is 'rc', then tag should be 'MAJOR.minor-rc.NUMERIC_PART'
      • if first alpha part is 'preview' then tag should be 'MAJOR.minor-preview.NUMERIC_PART'
@baronfel baronfel modified the milestones: 8.0.1, 8.0.100 Oct 12, 2022
@baronfel
Copy link
Member Author

Now that previews are going out this is a higher priority. We should tackle this ASAP.

@baronfel
Copy link
Member Author

baronfel commented Mar 7, 2023

A few more caveats to the algorithm - I think we'll need the following inputs:

  • TFM version (6.0, 7.0, 8.0, etc)
  • SDK version

if the TFM major is < 8, then nothing changes - the tag is always MAJOR.MINOR
if the TFM major is >= 8, then we have to do the SDK version checks mentioned above, where we take into account the 'channel' and 'channel bump'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants