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

Make it unnecessary to add new versions of known distros into the RID graph #59803

Closed
tmds opened this issue Sep 30, 2021 · 11 comments
Closed

Make it unnecessary to add new versions of known distros into the RID graph #59803

tmds opened this issue Sep 30, 2021 · 11 comments
Milestone

Comments

@tmds
Copy link
Member

tmds commented Sep 30, 2021

Following the discussion on #57832.

We should look into the changes (to the host, nuget and sdk) that make it unnecessary to update the RID graph for new versions of Fedora, Alpine, ...

cc @ericstj @richlander @ViktorHofer @omajid

@dotnet-issue-labeler dotnet-issue-labeler bot added area-Infrastructure-libraries untriaged New issue has not been triaged by the area owner labels Sep 30, 2021
@ghost
Copy link

ghost commented Sep 30, 2021

Tagging subscribers to this area: @Anipik, @safern, @ViktorHofer
See info in area-owners.md if you want to be subscribed.

Issue Details

Following the discussion on #57832.

We should look into the changes (to the host, nuget and sdk) that make it unnecessary to update the RID graph for new versions of Fedora, Alpine, ...

cc @ericstj @richlander @ViktorHofer @omajid

Author: tmds
Assignees: -
Labels:

area-Infrastructure-libraries, untriaged

Milestone: -

@ViktorHofer
Copy link
Member

@ericstj who should own this issue? Sounds like any changes to how the RID is parsed and how RID graphs are represented will affect the host, nuget and the sdk. This probably doesn't belong into "area-infrastructure-libraries".

@tmds
Copy link
Member Author

tmds commented Nov 24, 2021

@ericstj can we aim to do this for .NET 7?

@ericstj
Copy link
Member

ericstj commented Nov 29, 2021

I was discussing this recently with @eerhardt and I do think this needs to be done. @richlander @terrajobst @baronfel -- how do you think we can best represent this in .NET 7.0 planning?

@safern
Copy link
Member

safern commented Dec 6, 2021

@ericstj I will change the area to area-host for now as it doesn't really belong to area-libraries-infrastrucure. I'd say maybe it would be better if this was a theme issue on dotnet/core and then have the relevant issues splitting the necessary work on each repo that involves this effort?

@ghost
Copy link

ghost commented Dec 6, 2021

Tagging subscribers to this area: @vitek-karas, @agocke, @VSadov
See info in area-owners.md if you want to be subscribed.

Issue Details

Following the discussion on #57832.

We should look into the changes (to the host, nuget and sdk) that make it unnecessary to update the RID graph for new versions of Fedora, Alpine, ...

cc @ericstj @richlander @ViktorHofer @omajid

Author: tmds
Assignees: -
Labels:

area-Host, untriaged

Milestone: -

@eerhardt
Copy link
Member

eerhardt commented Dec 6, 2021

We should look into the changes (to the host, nuget and sdk) that make it unnecessary to update the RID graph for new versions of Fedora,

This question is slightly off topic, but I see:

<RuntimeGroup Include="fedora">
<Parent>linux</Parent>
<Architectures>x64;arm64</Architectures>
<Versions>23;24;25;26;27;28;29;30;31;32;33;34;35;36</Versions>
<TreatVersionsAsCompatible>false</TreatVersionsAsCompatible>
</RuntimeGroup>

Why does centos and fedora have <TreatVersionsAsCompatible>false</TreatVersionsAsCompatible>, but rhel doesn't? Is forward compatibility not guaranteed in centos and fedora?

@tmds
Copy link
Member Author

tmds commented Feb 24, 2022

Is this included in the .NET 7 plan?

@eerhardt
Copy link
Member

eerhardt commented Apr 4, 2022

See related dotnet/designs#260

Is this included in the .NET 7 plan?

I don't think it is officially committed (yet). We just need to find the right path forward.

@omajid
Copy link
Member

omajid commented Apr 4, 2022

Why does centos and fedora have false, but rhel doesn't? Is forward compatibility not guaranteed in centos and fedora?

Sorry, just saw this question.

RHEL has minor versions, but CentOS, Fedora (and Rocky, etc) don't. The RHEL minor versions were not handled well by early versions of .NET so we had to add each minor version to the graph. And we also needed to make sure that those minor versions are considered compatible with each other, but not compatible with completely different versions of RHEL.

The RHEL section looks like this:

    <RuntimeGroup Include="rhel">
      <Parent>linux</Parent>
      <Architectures>x64</Architectures>
      <Versions>6</Versions>
    </RuntimeGroup>
    <RuntimeGroup Include="rhel">
      <Parent>linux</Parent>
      <Architectures>x64</Architectures>
      <Versions>7;7.0;7.1;7.2;7.3;7.4;7.5;7.6</Versions>
    </RuntimeGroup>
    <RuntimeGroup Include="rhel">
      <Parent>linux</Parent>
      <Architectures>x64;arm64</Architectures>
      <Versions>8;8.0;8.1</Versions>
    </RuntimeGroup>
    <RuntimeGroup Include="rhel">
      <Parent>linux</Parent>
      <Architectures>x64;arm64</Architectures>
      <Versions>9</Versions>
    </RuntimeGroup>

This basically sets up separate release branches (6, 7.x, 8.x, 9.x). Each of these branches is not compatible with others. But within a single release branch (eg, <Versions>7;7.0;7.1;7.2;7.3;7.4;7.5;7.6</Versions>), the lack of <TreatVersionsAsCompatible>false</TreatVersionsAsCompatible>, means they are compatible. In other words, the minor versions of RHEL 7 are compatible with each other, but not with RHEL 8 or 6 in the RID graph.

Fedora and CentOS and others put all their major versions together, so they explicitly use <TreatVersionsAsCompatible>false</TreatVersionsAsCompatible> so these major versions are not considered compatible with each other:

    <RuntimeGroup Include="fedora">
      <Parent>linux</Parent>
      <Architectures>x64;arm64</Architectures>
      <Versions>23;24;25;26;27;28;29;30;31;32;33;34;35;36;37</Versions>
      <TreatVersionsAsCompatible>false</TreatVersionsAsCompatible>
    </RuntimeGroup>

@agocke agocke added this to the 8.0.0 milestone Jun 6, 2022
@agocke agocke removed the untriaged New issue has not been triaged by the area owner label Jun 6, 2022
@tmds
Copy link
Member Author

tmds commented Nov 21, 2022

The changes that were made as part of dotnet/installer#14549 enable source-building .NET on distros that are not yet in the rid graph.
The changes have/are backported to 6.0 and 7.0.

Adding distros to the rid grah and backporting them is now solely for the purpose of making other distros aware they exist.

@tmds tmds closed this as completed Nov 21, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Dec 21, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Archived in project
Development

No branches or pull requests

7 participants