Skip to content

Stop packing a library nobody publishes (#542) - #960

Open
Rafael-SOWNet wants to merge 1 commit into
masterfrom
fix/dependency-warnings
Open

Stop packing a library nobody publishes (#542)#960
Rafael-SOWNet wants to merge 1 commit into
masterfrom
fix/dependency-warnings

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Collaborator

Addresses #542.

AngouriMath.Terminal.Lib packed on every build, and packing raised NU5104a stable release should not have a prerelease dependency — naming Microsoft.DotNet.Interactive.FSharp.

Both halves of that warning are about something that cannot happen:

  • The library is never released. angourimath.terminal.lib is a 404 on nuget.org. The tool that consumes it, angourimath.terminal, is published and packs fine.
  • The dependency cannot become stable. Microsoft.DotNet.Interactive.FSharp has 107 versions on nuget and has never shipped one without a prerelease suffix, so no upgrade clears it.

So this is IsPackable=false, not a NoWarn. The warning goes because its premise is false, not because it was silenced — which matters, since a suppressed warning looks identical to a fixed one.

What is left, and why I did not "fix" it

The rest of #542 is NU1608, six of them on the published tool:

NU1608: FSharp.Compiler.Service 43.9.300 requires FSharp.Core (= 9.0.300)
        but version FSharp.Core 10.1.302 was resolved.

That is an upstream constraint, not something this repo chose. Pinning FSharp.Core to 9.0.300 was measured and does not work: NU1608 stays and two NU1504 appear, because the SDK already references FSharp.Core implicitly. Upgrading the package that brings the compiler service in is already recorded on this issue as failing with 452 build errors.

I have deliberately not suppressed it. A version-constraint violation is a real risk to hide — the tests pass today, but that is evidence about today — and choosing to accept it is a maintainer's call rather than a warning to paper over.

Evidence

  • Terminal.Lib packs 0 NU5104 (was 1)
  • the tool still produces AngouriMath.Terminal.2.2.0.nupkg
  • F# wrapper tests 130 passed, terminal tests 7 passed

What it does not do

  • Does not change what is published, or how the tool is packaged.
  • Does not touch AngouriMath.Interactive, which packs clean already.
  • Does not silence NU1608.

🤖 Generated with Claude Code

AngouriMath.Terminal.Lib packed on every build and packing raised NU5104: a stable
release should not have a prerelease dependency, naming
Microsoft.DotNet.Interactive.FSharp.

Both halves of that warning are about something that cannot happen. The library is
never released -- angourimath.terminal.lib is a 404 on nuget.org, while the tool that
consumes it, angourimath.terminal, is published and packs fine. And the dependency
cannot become stable: Microsoft.DotNet.Interactive.FSharp has 107 versions on nuget
and has never shipped one without a prerelease suffix, so no upgrade clears it.

So this is IsPackable=false rather than a NoWarn. The warning goes because its premise
is false, not because it was silenced.

What is left of this issue is NU1608, and it is not fixable here: FSharp.Compiler.Service
43.9.300 pins FSharp.Core = 9.0.300 while the .NET 10 SDK resolves 10.1.302. Pinning
FSharp.Core to 9.0.300 was measured and does not help -- it leaves NU1608 in place and
adds two NU1504 for duplicating an implicit reference. Reported on the issue instead of
suppressed, since a version-constraint violation is a real risk to hide.

Terminal.Lib packs 0 NU5104, the tool still produces AngouriMath.Terminal.2.2.0.nupkg,
F# wrapper 130 passed, terminal tests 7 passed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant