[GH-ISSUE #1736] fix(managed): distinguish .NET Standard API targets from runtime family #582

Closed
opened 2026-10-15 18:26:23 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @N0zoM1z0 on GitHub (Oct 11, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/1736

A genuine netstandard2.0 library is reported as runtime_family: "modern-dotnet" solely because its assembly-level TargetFrameworkAttribute names .NETStandard,Version=v2.0. The corresponding evidence says the attribute “names modern .NET”. .NET Standard specifies APIs implemented by .NET Framework, Mono, modern .NET and others; it does not establish the runtime family. Microsoft documentation.

Reproduced with freshly compiled main e36c82becdd613787bcc59903f8b5fe14eb2f105, using the actual public CLI:

node scripts/rea.mjs inspect-managed-artifact \
  /path/to/Microsoft.Extensions.Primitives.dll --json

The target is the installed public NuGet Microsoft.Extensions.Primitives 10.0.10 lib/netstandard2.0 library. No simulated provider or generated metadata was used. Target SHA-256: b54c710e3595bc4dcd31b87eb53e1c160621dd7d4bb38fc833f04bc89106777c; bytes: 50984.

Observed: classification modern-dotnet, implementation cil, and target-framework-observed detail “An assembly-level TargetFrameworkAttribute names modern .NET.” The original .NETStandard,Version=v2.0 attribute is retained under target frameworks.

Expected: preserve the target framework as observed API compatibility evidence, while keeping runtime family unknown unless an independent marker identifies it. .NETCoreApp and independent ReadyToRun observations should retain their established classification.

The producer is runtimeFamilyFor in src/dotnet/ManagedArtifactInspector.ts: its modern-.NET branch accepts both .NETCoreApp, and .NETStandard,. Search found no existing matching issue or open PR. Related broader maintenance: #1065 / #740.

Originally created by @N0zoM1z0 on GitHub (Oct 11, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/1736 A genuine `netstandard2.0` library is reported as `runtime_family: "modern-dotnet"` solely because its assembly-level TargetFrameworkAttribute names `.NETStandard,Version=v2.0`. The corresponding evidence says the attribute “names modern .NET”. .NET Standard specifies APIs implemented by .NET Framework, Mono, modern .NET and others; it does not establish the runtime family. [Microsoft documentation](https://learn.microsoft.com/en-us/dotnet/standard/net-standard). Reproduced with freshly compiled main `e36c82becdd613787bcc59903f8b5fe14eb2f105`, using the actual public CLI: ```sh node scripts/rea.mjs inspect-managed-artifact \ /path/to/Microsoft.Extensions.Primitives.dll --json ``` The target is the installed public NuGet `Microsoft.Extensions.Primitives` 10.0.10 `lib/netstandard2.0` library. No simulated provider or generated metadata was used. Target SHA-256: `b54c710e3595bc4dcd31b87eb53e1c160621dd7d4bb38fc833f04bc89106777c`; bytes: 50984. Observed: classification `modern-dotnet`, implementation `cil`, and `target-framework-observed` detail “An assembly-level TargetFrameworkAttribute names modern .NET.” The original `.NETStandard,Version=v2.0` attribute is retained under target frameworks. Expected: preserve the target framework as observed API compatibility evidence, while keeping runtime family `unknown` unless an independent marker identifies it. `.NETCoreApp` and independent ReadyToRun observations should retain their established classification. The producer is `runtimeFamilyFor` in `src/dotnet/ManagedArtifactInspector.ts`: its modern-.NET branch accepts both `.NETCoreApp,` and `.NETStandard,`. Search found no existing matching issue or open PR. Related broader maintenance: #1065 / #740.
bsakaguchi 2026-10-15 18:26:23 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#582
No description provided.