Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Mark experimental API with .NET's [Experimental] attribute

未关闭
#2,120 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 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 内容生成。

描述

Opinions wanted

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:

  1. Should experimental API carry [Experimental], starting with PiecewiseOver before 2.7.0 ships?
  2. 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

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

主要语言
C#
星标
831
派生
79
平均合并
1 小时 17 分钟
30 天内合并 PR
543

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ASC-Community/AngouriMath 的其他 Issue

查看 ASC-Community/AngouriMath 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。