You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Migrate Paket builds to NuGet and all tests to MTP v2 - #314
Replace Paket manifests, lockfiles, references, and packaging templates with explicit NuGet project references and dotnet pack; remove obsolete Paket build/sample scaffolding.
Restore .NET Framework consumer targets: FsUnit.xUnit and Fs30Unit.MsTest target net8.0;netstandard2.0; FsUnit (NUnit 5) targets net8.0;net462. NUnit 5 has no netstandard2.0 build, so net462 is the .NET Framework target.
Keep test executables on net8.0 and run NUnit, xUnit v3, and MSTest with Microsoft Testing Platform v2. Test project references resolve the net8.0 library builds; net462 is compiled, not executed on macOS/Linux.
Keep dependency versions with their consuming .fsproj files; use RELEASE_NOTES.md as the package version source and pin Fake build tooling.
Pin updated test frameworks/adapters: NUnit 5.0.0 and adapter 6.3.1; MSTest framework/adapter 4.5.1; xUnit v3 MTP v2 4.0.2.
Pass release notes through the environment to preserve punctuation; generate .snupkg symbols and verify/upload them in the NuGet Trusted Publishing workflow.
Update docs to reference test build outputs and fix the MSTest assembly path and union-case quotation examples.
Verification
DOTNET_ROLL_FORWARD=Major ./build.sh NuGet passed: Release builds compiled NUnit net8.0/net462, xUnit and MSTest net8.0/netstandard2.0; all 946 tests passed; three .nupkg and three .snupkg files were created in bin/.
Verified package contents and nuspec dependency groups for net8.0 plus .NETStandard2.0 (xUnit/MSTest), and net8.0 plus .NETFramework4.6.2 (NUnit).
DOTNET_ROLL_FORWARD=Major dotnet run --project build/build.fsproj -- GenerateDocs completed and generated output/xUnit.html.
Builds still emit NU1608 dependency-constraint warnings involving FSharp.Core resolution; the build-tool restore also warns about its FSharp.Compiler.Service/FSharp.Core constraint.
Following up on the framework-upgrade suggestion: all library assets now target net8.0, and test dependencies are upgraded to current stable versions (MSTest 4.5.1, xUnit v3 4.0.2, xUnit VS runner 4.0.1, NUnit adapter 6.3.1, Microsoft.NET.Test.Sdk 18.10.1). FSharp.Core remains pinned at 5.0.2 as the library compatibility lower bound.
sergey-tihon
changed the title
Replace Paket with NuGet builds and project-level versions
Migrate Paket builds to NuGet and all tests to MTP v2
Oct 12, 2026
Include symbol packages when pushing NuGet artifacts
.github/workflows/publish.yml:73
This glob excludes .snupkg files, and pushing an .nupkg does not automatically publish its sibling symbol package. The workflow verifies and transfers the symbols but then leaves all three unpublished; include both artifact globs in the push loop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dotnet pack; remove obsolete Paket build/sample scaffolding.FsUnit.xUnitandFs30Unit.MsTesttargetnet8.0;netstandard2.0;FsUnit(NUnit 5) targetsnet8.0;net462. NUnit 5 has nonetstandard2.0build, sonet462is the .NET Framework target.net8.0and run NUnit, xUnit v3, and MSTest with Microsoft Testing Platform v2. Test project references resolve thenet8.0library builds;net462is compiled, not executed on macOS/Linux..fsprojfiles; useRELEASE_NOTES.mdas the package version source and pin Fake build tooling..snupkgsymbols and verify/upload them in the NuGet Trusted Publishing workflow.Verification
DOTNET_ROLL_FORWARD=Major ./build.sh NuGetpassed: Release builds compiled NUnitnet8.0/net462, xUnit and MSTestnet8.0/netstandard2.0; all 946 tests passed; three.nupkgand three.snupkgfiles were created inbin/.net8.0plus.NETStandard2.0(xUnit/MSTest), andnet8.0plus.NETFramework4.6.2(NUnit).DOTNET_ROLL_FORWARD=Major dotnet run --project build/build.fsproj -- GenerateDocscompleted and generatedoutput/xUnit.html.