-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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 Supported OS JSON files #9294
Changes from 4 commits
8a798cc
fc13a88
1e39bec
5c6d412
6ac80db
b488f85
f938445
7fcbbaf
f4de20f
1d56ab4
7149bc6
dff59df
1a72876
1f967c7
41f314f
5895cd8
6274f68
ed9398d
7b7d5ec
ba5c4cc
f7136fc
a7c4539
a478591
521f24a
73bae06
f0721ce
fd175eb
dbc44a1
0c842f6
27e2cb4
95ea716
2f2b4f8
0fc2a06
e9d2adb
db2225b
6ea55de
c02b6cf
038c955
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,304 @@ | ||
{ | ||
"channel-version": "9.0", | ||
"last-updated": "2024-05-01", | ||
"operating-systems": [ | ||
{ | ||
"family": "Android", | ||
"distributions": [ | ||
{ | ||
"name": "Android", | ||
"lifecycle-policy": "https://support.google.com/android", | ||
"architectures": [ | ||
"x64", | ||
"arm64", | ||
"arm" | ||
], | ||
"supported-cycles": [ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just curious, why is this termed "cycles" rather than "versions"? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We tried to keep the terminology close to https://endoflife.date/docs/api There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we believe that it is a good name? I find this name very odd. We do not have to stick with bad names. This is not 1:1 mapping with that APIs. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I found release cycle fine, but have no hard feelings about using versions instead. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
But it is still not ideal. Release cycle is a repeatable process that produces releases. For example, take a look at how Ubuntu describes its current release cycle: https://ubuntu.com/about/release-cycle. This is not a list of the process variations. This is a list of what the process produced. So There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
"API 21+" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Android is a bit special since there are 3 different versions (
I would therefore propse here:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. While what you wrote is correct we have been using the API version instead of the Android OS version pretty much everywhere else, and it it's also what a user would set for I'd prefer if we use API version for consistency. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. My main issue is what I wrote here: #9294 (review) The current For me as an end-user it's pretty hard to keep everything locally in sync because our end-customers are not interested in our I would therefore like to see both things in the JSON. The real OS cycle supported ( There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes I agree with that. We've been struggling to clearly define/separate
The second one changes throughout a release as platforms go EOL but the first one we typically don't touch. Similar discussion in #9038 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. #8880 can give you a better picture about where this thing started off from. I will also need to know basically through-out the live of a .NET version what was supported in the past and might not be supported anymore. Right now, I maintain that stuff in a biiiiiiiiiiig table (#8880 (comment)) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In my opinion, the information about OS EOLs should be maintained separatedly and since the JSON files are generated according to @leecow should be taken into account when generating these to not manually maintain them in multiple locations. Otherwise the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The most important bit of data is supported OS, which aligns with "what we test and support". We should make sure that's captured. We've run into confusion in the past when we didn't have clarity on this. What we target (with the compiler) is also important. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems like #9294 (comment) is a compromise that gives everyone what they want. I'm not seeing an obvious downside to this approach. Yes/No? |
||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"family": "Apple", | ||
"distributions": [ | ||
{ | ||
"name": "iOS", | ||
"lifecycle-policy": "https://support.apple.com/ios/", | ||
"architectures": [ | ||
"arm64" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are differences in supported architectures for iOS and the Simulator according to https://github.com/dotnet/core/blob/b488f858df2803b353233f38b16786913d6bcbc7/release-notes/9.0/supported-os.md#ios--tvos--maccatalyst which will be lost by your change. We would need to reflect that somewhere. |
||
], | ||
"supported-cycles": [ | ||
"12.2" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would expect here the versions of 15+. 12.2 through 14.5 are already EOL. Maybe this is also something like a min-sdk version? I haven't used iOS builds myself so far. At least that seams to correspond to the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, we still support iOS 12.2 as the minimum target an app can run on. It is similar to min-sdk on Android. |
||
] | ||
}, | ||
{ | ||
"name": "iOS Simulator", | ||
"lifecycle-policy": "https://support.apple.com/ios/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"12.2", | ||
"13", | ||
"14", | ||
"15", | ||
"16", | ||
"17" | ||
] | ||
}, | ||
{ | ||
"name": "tvOS", | ||
"lifecycle-policy": "https://support.apple.com/apple-tv/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"12.2", | ||
"13", | ||
"14", | ||
"15", | ||
"16", | ||
"17" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm a bit confused why we use In the current supported-os.md document we only specify the minimum platform version that we support running on. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Mainly because of the mixup of min-sdk and supported-cycles so far. supported-cycles will change during the lifetime of a .NET version due to EOL, min-sdk will usually not change anymore and is also only one version not a full list. |
||
] | ||
}, | ||
{ | ||
"name": "tvOS Simulator", | ||
"lifecycle-policy": "https://support.apple.com/apple-tv/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"12.2", | ||
"13", | ||
"14", | ||
"15", | ||
"16", | ||
"17" | ||
] | ||
}, | ||
{ | ||
"name": "Mac Catalyst", | ||
"lifecycle-policy": "https://support.apple.com/macos/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"15+" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can't really sync with iOS here since we support earlier iOS versions than what Mac Catalyst supports, using There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I also think this is mostly because of min-sdk and supported-cycles being mixed up. The min-sdk will be separate of iOS, the supported-cycles most probably not. |
||
] | ||
}, | ||
{ | ||
"name": "macOS", | ||
"lifecycle-policy": "https://support.apple.com/macos/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"12", | ||
"13", | ||
"14" | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"family": "Linux", | ||
"distributions": [ | ||
{ | ||
"name": "Alpine", | ||
"lifecycle-policy": "https://alpinelinux.org/releases/", | ||
"architectures": [ | ||
"x64", | ||
"arm64", | ||
"arm" | ||
], | ||
"supported-cycles": [ | ||
"3.17", | ||
"3.18", | ||
richlander marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"3.19" | ||
] | ||
}, | ||
{ | ||
"name": "Debian", | ||
"lifecycle-policy": "https://wiki.debian.org/DebianReleases", | ||
"architectures": [ | ||
"x64", | ||
"arm64", | ||
"arm" | ||
], | ||
"supported-cycles": [ | ||
"11", | ||
"12" | ||
] | ||
}, | ||
{ | ||
"name": "Fedora", | ||
"lifecycle-policy": "https://fedoraproject.org/wiki/End_of_life", | ||
"architectures": [ | ||
"x64", | ||
"arm64", | ||
"arm" | ||
], | ||
"supported-cycles": [ | ||
"39", | ||
"40" | ||
] | ||
richlander marked this conversation as resolved.
Show resolved
Hide resolved
|
||
}, | ||
{ | ||
"name": "openSUSE Leap", | ||
"lifecycle-policy": "https://en.opensuse.org/Lifetime", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"15.5" | ||
] | ||
}, | ||
{ | ||
"name": "Red Hat Enterprise Linux", | ||
"lifecycle-policy": "https://access.redhat.com/support/policy/updates/errata/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"8", | ||
"9" | ||
] | ||
}, | ||
{ | ||
"name": "SUSE Enterprise Linux", | ||
"lifecycle-policy": "https://www.suse.com/lifecycle/", | ||
"architectures": [ | ||
"x64", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"39", | ||
"40" | ||
] | ||
}, | ||
{ | ||
"name": "Ubuntu", | ||
"lifecycle-policy": "https://wiki.ubuntu.com/Releases", | ||
"architectures": [ | ||
"x64", | ||
"arm64", | ||
"arm" | ||
], | ||
"supported-cycles": [ | ||
"20.04", | ||
"22.04", | ||
"23.10", | ||
"24.04" | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"family": "Windows", | ||
"distributions": [ | ||
{ | ||
"name": "Nano Server", | ||
richlander marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"lifecycle-policy": "https://learn.microsoft.com/windows-server/get-started/windows-server-release-info", | ||
"architectures": [ | ||
"x64" | ||
], | ||
"supported-cycles": [ | ||
"1809", | ||
"2022" | ||
] | ||
}, | ||
{ | ||
"name": "Windows 10", | ||
"lifecycle-policy": "https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet", | ||
"architectures": [ | ||
"x64", | ||
"x86", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"1607", | ||
"1809", | ||
"21H2", | ||
"22H2" | ||
] | ||
}, | ||
{ | ||
"name": "Windows 11", | ||
"lifecycle-policy": "https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet", | ||
"architectures": [ | ||
"x64", | ||
"x86", | ||
"arm64" | ||
], | ||
"supported-cycles": [ | ||
"22H2" | ||
] | ||
}, | ||
{ | ||
"name": "Windows Server", | ||
"lifecycle-policy": "https://learn.microsoft.com/windows-server/get-started/windows-server-release-info", | ||
"architectures": [ | ||
"x64", | ||
"x86" | ||
], | ||
"supported-cycles": [ | ||
"2012", | ||
"2016", | ||
"2019", | ||
"2022" | ||
] | ||
}, | ||
{ | ||
"name": "Windows Server Core", | ||
"lifecycle-policy": "https://learn.microsoft.com/windows-server/get-started/windows-server-release-info", | ||
"architectures": [ | ||
"x64", | ||
"x86" | ||
], | ||
"supported-cycles": [ | ||
"2012", | ||
"2016", | ||
"2019", | ||
"2022" | ||
] | ||
} | ||
] | ||
} | ||
], | ||
"linux": { | ||
"glibc": [ | ||
{ | ||
"architectures": [ | ||
richlander marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"arm64", | ||
"x64" | ||
], | ||
"version": "2.23", | ||
"source": "Ubuntu 16.04" | ||
}, | ||
{ | ||
"architecture": "arm32", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would stick with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
"version": "2.35", | ||
"source": "Ubuntu 22.04" | ||
} | ||
], | ||
"musl": [ | ||
{ | ||
"architectures": [ | ||
"arm32", | ||
"arm64", | ||
"x64" | ||
], | ||
"version": "1.2.2", | ||
"source": "Alpine 3.13" | ||
} | ||
] | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
x86 is also supported on Android
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not according to https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md#android