Mark experimental API with .NET's [Experimental] attribute
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- csharp
调研方向
Start by comparing PiecewiseOver from #2102 with the experimental members published in 2.6.0 and review item 3 of #1019. Decide whether experimental APIs should use .NET's [Experimental] attribute and whether they should share a diagnostic ID. The issue is complete when those policy questions are resolved; implementation scope depends on the decision.
由索引模型根据 Issue 内容生成。
描述
amcli mcp marks a preliminary tool where a model reads it (#2113). The library's experimental API has nothing like it: MathS.ExperimentalFeatures says so in its name and its doc comment, and a caller's build never mentions it.
.NET has a marker for this, [Experimental("<id>")] in System.Diagnostics.CodeAnalysis. Measured with SDK 10.0.302, a member marked [Experimental("AM0001")] gives:
| caller | result |
|---|---|
| C#, net10.0 | error AM0001: "… is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed." |
| C#, netstandard2.0, with the attribute defined internally in the library's netstandard2.0 build | the same error |
| F#, net10.0 | warning FS0057, "This construct is experimental"; the build succeeds |
A C# caller opts in with #pragma warning disable AM0001 or <NoWarn>.
- Additive:
PiecewiseOver(#2102) is new in 2.7.0 and not yet released, so marking it breaks nobody. Experimental members added later would be marked from the start. - Breaking: the eleven members published in 2.6.0. Marking them fails every C# caller's build until the caller suppresses the diagnostic. Whether each is promoted, kept or removed is item 3 of #1019, so marking them belongs there.
Questions:
- Should experimental API carry
[Experimental], starting withPiecewiseOverbefore 2.7.0 ships? - One diagnostic ID for all of it, or one per feature, so that opting into one doesn't opt into the rest?
🤖 Generated with Claude Code
- 主要语言
- C#
- 星标
- 831
- 派生
- 79
- 平均合并
- 1 小时 17 分钟
- 30 天内合并 PR
- 543
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ASC-Community/AngouriMath 的其他 Issue
-
难度 5/5 一周以上 新手友好度 35/100
ASC-Community/AngouriMath#2164 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
ASC-Community/AngouriMath#2160 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
ASC-Community/AngouriMath#2153 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
ASC-Community/AngouriMath#2152 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 15/100
ASC-Community/AngouriMath#2151 ·
维护者通常 1 天内回复
查看 ASC-Community/AngouriMath 的全部 Issue
相似的 Issue
-
needs attention public-client untriaged
难度 2/5 1-3 小时 新手友好度 73/100
AzureAD/microsoft-authentication-library-for-dotnet#6242 ·
维护者通常 2 天内回复
-
难度 1/5 1-3 小时 新手友好度 90/100
criticalmanufacturing/cli#882 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
Dome-Works/DOME#129 ·
维护者通常 1 天内回复
-
bug sev:L
难度 2/5 1-3 小时 新手友好度 82/100
Systemorph/MeshWeaver#7480 ·
维护者通常 1 天内回复
-
bug small tooling
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复