Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

The netstandard2.0 public surface and dependencies are checked by nothing

Đang mở
#1,182 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
55/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
csharp
Lĩnh vực
build-system, testing

Hướng nghiên cứu

Bắt đầu với Sources/AngouriMath/AngouriMath.csproj và cấu hình target framework của UnitTests, sau đó đọc PublicApi.txt và KernelDependenciesTest để hiểu các kiểm tra TFM đơn hiện tại. So sánh các leg netstandard2.0 và các leg net hiện tại, sử dụng EverythingBuild.yml làm ngữ cảnh. Hoàn tất khi API công khai và các dependency của kernel của từng TFM được chọn đều được kiểm tra, với phạm vi bao phủ PublicApi.txt riêng biệt.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

UnitTests targets net10.0 only, so everything asserted about the public surface and about the
kernel's dependencies is asserted about one of the three target frameworks.

Sources/AngouriMath/AngouriMath.csproj builds netstandard2.0;net8.0;net10.0, and the legs differ
by construction:

  • Core/Serialization is #if NET8_0_OR_GREATER
  • GenericMath is Compile Removed below net7
  • netstandard2.0 carries System.Memory as a package rather than a framework reference

So PublicApi.txt records the net10.0 surface, and the netstandard2.0 public surface is checked by
nothing.
A member could be added to, or removed from, that leg without any test noticing.

This is #783's own objection — "unbuilt configurations rot silently" — arriving through the one
construct that issue permits. It closed as adopted; this is the piece it did not cover.

KernelDependenciesTest (#1181) has the same bound and says so in its own remarks: it asserts the
referenced assemblies of whichever framework UnitTests builds, which is why System.Memory appears
there as a framework reference and the netstandard2.0 package reference is invisible to it.

What would close this

A per-TFM check, and the cheap version is probably enough: multi-target UnitTests (or a small
second test project) at least across netstandard2.0 and the current net, and record one
PublicApi.txt per leg. That also gives KernelDependenciesTest its second column for free.

What is not being claimed

No defect has been observed on the netstandard2.0 leg. The point is that one could not be observed —
EverythingBuild.yml compiles it, which catches a build break, and nothing checks its surface or
its dependencies. Filed because two separate checks have now hit the same bound and both had to
record it as a limitation rather than test it.

Ngôn ngữ chính
C#
Star
831
Fork
79
Merge trung bình
2 giờ 22 phút
Pull request đã merge (30 ngày)
507

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ASC-Community/AngouriMath

Tất cả issue của ASC-Community/AngouriMath

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.