-
Notifications
You must be signed in to change notification settings - Fork 75
Migrated to .NET 9.0.201
and F# compiler 43.9.201
#722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR upgrades the solution to .NET 9.0.201 and F# compiler 43.9.201, updating project files and code to match new F# AST signatures and adjusting test infrastructure.
- Updated all
*.fsproj
files to targetnet9.0
and added centralized package references. - Adapted F# AST pattern matches and helper functions to the new compiler shapes (extra tuple fields).
- Refactored tests to use
fprintf TestContext.Out
and made minor signature/type adjustments.
Reviewed Changes
Copilot reviewed 39 out of 41 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
tests/.../TestConsoleApplication.fs | Updated error-extraction logic and TemporaryFile signature. |
tests/.../TestApi.fs | Switched from Console.WriteLine to fprintf TestContext.Out . |
All *.fsproj (tests & src) |
Migrated target frameworks to net9.0 and added package refs. |
src/.../HintMatcher.fs | Adapted SynSimplePats matching to new AST signature. |
global.json | Removed pinned SDK version , leaving only rollForward . |
@@ -1,6 +1,5 @@ | |||
{ | |||
"sdk": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The sdk
section in global.json
is missing the required version
property, which can prevent .NET from selecting the correct SDK. Re-add a "version": "<sdk-version>"
entry.
"sdk": { | |
"sdk": { | |
"version": "7.0.100", |
Copilot uses AI. Check for mistakes.
@@ -10,7 +10,7 @@ let getErrorsFromOutput (output:string) = | |||
set [ for i in 1..splitOutput.Length - 1 do | |||
if splitOutput.[i].StartsWith "Error" then yield splitOutput.[i - 1] ] | |||
|
|||
type TemporaryFile(fileContent, extension) = | |||
type TemporaryFile(fileContent : string, extension) = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] For consistency and clarity, add an explicit type annotation to the extension
parameter (e.g., extension: string
).
type TemporaryFile(fileContent : string, extension) = | |
type TemporaryFile(fileContent : string, extension: string) = |
Copilot uses AI. Check for mistakes.
9.0.201
and F# compiler 43.9.201
<PackageVersion Include="Ionide.ProjInfo.ProjectSystem" Version="0.70.2" /> | ||
<PackageVersion Include="Ionide.ProjInfo.FCS" Version="0.70.2" /> | ||
<PackageVersion Include="Ionide.ProjInfo" Version="0.70.2" /> | ||
<PackageVersion Include="Ionide.ProjInfo.Sln" Version="0.68.0" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fwiw, ProjInfo 0.70 dropped Ionide.ProjInfo.Sln in favor of using theMicrosoft.VisualStudio.SolutionPersistence
instead, so I don't know if this is used directly?
Querying because one of the reasons for the change was to get support for .slnx solutions, which could be useful here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great suggestion. I've implemented that. It will come in another PR
## [0.25.0] - 2025-07-11 - Migrate from `Paket` to `Directory.Packages.props` #722 [@xperiandri] - Migrate to .NET `9.0.201` and FCS `43.9.201` #722 [@xperiandri] - Write test logs to test context output #722 [@xperiandri] - Use string interpolation instead of `+` concatenation #724 [@xperiandri] - Run tests in parallel #728 [@xperiandri] - Remove `NoPartialFunctions` compiler workaround (#698) [@webwarrior-ws] - Add `SLNX` and `SLNF` format support and migrate to SLNX solution #723 [@xperiandri] Remove `Ionide.ProjInfo.Sln` NuGet package dependency - Remove `Newtonsoft.Json` NuGet dependency #725 [@xperiandri] - Add missing rule checks for FL0079-FL0081 #713 [@BennieCopeland] - Modify `.gitignore` to the Visual Studio standard one #735 [@xperiandri] - Add basic Copilot instructions and GitHub MCP #726 [@xperiandri] - Migrate `Fornax` to `0.16.0-beta002` and `FSharp.Formatting` to `20.0.1` #736 [@xperiandri, @Numpsy] - Update the build instructions to use `dotnet fsi` instead of `fake-cli` #734 [@Numpsy]
Paket
9.0.201
and F# compiler43.9.201