Skip to content

Backport #20210: switch fsi restore tests to FsCheck - #20282

Merged
abonie merged 3 commits into
release/10.0.4xxfrom
t-gro-backport-20210-fsi-fscheck-restore
Aug 19, 2026
Merged

Backport #20210: switch fsi restore tests to FsCheck#20282
abonie merged 3 commits into
release/10.0.4xxfrom
t-gro-backport-20210-fsi-fscheck-restore

Conversation

@T-Gro

Copy link
Copy Markdown
Member

Backports #20210 (and its prerequisite #20205) to release/10.0.4xx.

The FSI #r "nuget:" restore tests must restore offline-clean on the internal signed build. FsCheck is centrally pinned and its only dependency (FSharp.Core) is already cached via FSharp.Core.UnitTests, so its closure restores offline on both net472 and .NET Core — unlike MessagePack (uncached net472 deps) and the previous hardcoded Newtonsoft.Json version.

abonieand others added 2 commits August 18, 2026 12:15
* Bump Newtonsoft version restored in fsi tests
* Switch from Newtonsoft to FsCheck for #r test
* Make FSI nuget-restore tests robust to central package management
The two FsiCliTests that exercise `#r "nuget:"` restore hardcoded
Newtonsoft.Json 13.0.3. After central package management with transitive
pinning was enabled, only the centrally-pinned version is restored into the
offline cache used by the internal signed build, so requesting 13.0.3 failed
there (version-resolution NUxxxx diagnostics on stdout).
Instead of hardcoding a version (which would silently drift on every central
bump), bake the centrally-pinned version into the test assembly via
AssemblyMetadata and read it at runtime. Switch the target package from
Newtonsoft.Json (a removal candidate) to MessagePack, which is actively
maintained, published on public nuget.org (so online public CI restore works)
and centrally pinned + restored transitively by the product (so it is present
in the internal offline cache).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: df9d1550-25ab-4466-ae43-8c7f106f4e49
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: df9d1550-25ab-4466-ae43-8c7f106f4e49
* Switch to FsCheck for fsi restore tests
MessagePack has dependencies on net472 that are not cached on signed
builds. FsCheck depends on FSharp.Core, but that should be cached.
* Add logging in case of failed test
@github-actions

github-actionsBot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

⚠️ Release notes required, but author opted out

Warning

Author opted out of release notes, check is disabled for this pull request.
cc @dotnet/fsharp-team-msft

@github-actionsgithub-actionsBot added the AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed label Aug 18, 2026
@T-GroT-Gro added the NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes label Aug 18, 2026
@T-Gro
T-Gro requested a review from abonieAugust 18, 2026 12:47
10.1.400 is already published on nuget.org, so Check_Published_Package_Versions FSCore fails. Bump FSBuildVersion 400->401.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7d778863-b4d5-4e3d-95ba-980fd2eafc81
@github-project-automationgithub-project-automationBot moved this from New to In Progress in F# Compiler and ToolingAug 19, 2026
@abonie
abonie merged commit ea21ec0 into release/10.0.4xxAug 19, 2026
48 checks passed
@github-project-automationgithub-project-automationBot moved this from In Progress to Done in F# Compiler and ToolingAug 19, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI-Tooling-Check-BypassedTooling check: non-fork PR, not diff-analyzedNO_RELEASE_NOTESLabel for pull requests which signals, that user opted-out of providing release notes

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants

@T-Gro@abonie