-
Notifications
You must be signed in to change notification settings - Fork 507
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into allow-download-triggered-pipeline
- Loading branch information
Showing
13 changed files
with
397 additions
and
77 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# Preview APIs | ||
|
||
The APIs listed here are currently marked as preview APIs, and as such may | ||
change in the future (we don't guarante binary or source compatibility between | ||
releases for these APIs). | ||
|
||
We've marked these APIs using the [Experimental][1] attribute, which means | ||
that compilation error will be shown if they're used: | ||
|
||
> error APL0001: 'PreviewAPI' is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. | ||
This means that it's not possible to use these preview APIs by accident, the diagnostic has to be explicitly ignored. | ||
|
||
Example program consuming preview API: | ||
|
||
```cs | ||
using System.Diagnostics.CodeAnalysis; | ||
|
||
class App | ||
{ | ||
public static void Main () | ||
{ | ||
Do.Something (); | ||
} | ||
} | ||
|
||
[Experimental ("APL0001")] | ||
class Do { | ||
public static void Something () {} | ||
} | ||
``` | ||
|
||
this will show: | ||
|
||
> Program.cs(8,9): error APL0001: 'Do' is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. | ||
Then ignore the warning in order to make the code compile: | ||
|
||
```cs | ||
using System.Diagnostics.CodeAnalysis; | ||
|
||
class App | ||
{ | ||
public unsafe static void Main () | ||
{ | ||
#pragma warning disable APL0001 | ||
Do.Something (); | ||
#pragma warning restore APL0001 | ||
} | ||
} | ||
|
||
[Experimental ("APL0001")] | ||
class Do { | ||
public static void Something () {} | ||
} | ||
|
||
``` | ||
|
||
Our diagnostic IDs will be of the format `APL####` - for instance `APL0001` - | ||
where the number is just monotonically increasing since the previous number, | ||
without any specific meaning. | ||
|
||
References: | ||
|
||
* https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.experimentalattribute?view=net-8.0 | ||
* https://learn.microsoft.com/en-us/dotnet/fundamentals/apicompat/preview-apis#experimentalattribute | ||
|
||
## Placeholder header for APL#### | ||
|
||
Coming soon! | ||
|
||
[1]: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.experimentalattribute?view=net-8.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.
This comment was marked as outdated.
Sorry, something went wrong.