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

Epic: Expand platform compat annotations to cover more configurations #43616

Closed
13 tasks done
Tracked by #5366
cathysull opened this issue Oct 19, 2020 · 3 comments
Closed
13 tasks done
Tracked by #5366
Assignees
Labels
area-Meta Epic Groups multiple user stories. Can be grouped under a theme. Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries
Milestone

Comments

@cathysull
Copy link
Member

cathysull commented Oct 19, 2020

In .NET 5 we started with annotations for features and APIs which are not universally available everywhere. We picked Windows and browsers as the initial targets for the experience. To make the experience complete we need to continue annotating remaining platforms we support (e.g. Linux-specific APIs that we expect to add). It goes beyond this as well. It's certainly a "last mile" experience, but for example today you won't get any warnings if you try to use MemoryMappedFile.CreateNew(string, ...) with a non-null string path, even though only a null string path is supported on Linux and macOS. The current platform analyzer doesn't account for such possibilities, with annotations done to just say "if any usage of this API works on a platform, then consider it supported on that platform". We should look at what APIs fall into those partially-supported buckets and consider ways of improving the experience around them. This might be the next issue developers porting to .NET 5 get hung up on from a cross-platform perspective.

We also realized that the platform vertical is not the only limiting factor for APIs availability. There are others based primarily on workload limitations which should offer developers the same experience. We will expand compatibility annotations to cover configurations such as AOT, self-contained bundles and single file.

The projects which benefits most from the annotations are large scale solutions with many dependencies which are usually not available as a source code implementation. Exploring how to run the analysis on the final output would further improve the impact of tooling.

Work Items

@cathysull cathysull added the User Story A single user-facing feature. Can be grouped under an epic. label Oct 19, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-Meta untriaged New issue has not been triaged by the area owner labels Oct 19, 2020
@cathysull cathysull added Priority:2 Work that is important, but not critical for the release Priority:1 Work that is critical for the release, but we could probably ship without and removed Priority:2 Work that is important, but not critical for the release labels Oct 30, 2020
@jeffhandley
Copy link
Member

Can we also consider integrating the OSPlatform support attributes into the .NET Portability Analyzer so that the report can show the APIs that are available in .NET Core but have limited OSPlatform support?

@marek-safar marek-safar changed the title User Story: Expand platform compat annotations to cover more configurations Epic: Expand platform compat annotations to cover more configurations Nov 27, 2020
@marek-safar marek-safar added Epic Groups multiple user stories. Can be grouped under a theme. and removed User Story A single user-facing feature. Can be grouped under an epic. untriaged New issue has not been triaged by the area owner labels Nov 27, 2020
@danmoseley
Copy link
Member

@jeffhandley @cathysull we can mark this as Committed on the .NET 6.0 board, I guess? Note this is marked P1 but has P0 children (which by definition are committed).

@joperezr joperezr added this to the 6.0.0 milestone Feb 9, 2021
@jeffhandley
Copy link
Member

I'm closing the epic; there are only a couple of stories that remain, and they are being tracked individually and will soon close as well.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Meta Epic Groups multiple user stories. Can be grouped under a theme. Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries
Projects
No open projects
Development

No branches or pull requests

7 participants