Skip to content

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

Merged
merged 8 commits into from
Jul 1, 2025

Conversation

xperiandri
Copy link
Collaborator

@xperiandri xperiandri commented Jun 29, 2025

  • Removed Paket
  • Migrated to .NET 9.0.201 and F# compiler 43.9.201
  • Implemented missing AST constructs handling
  • Fixed tests

@Copilot Copilot AI review requested due to automatic review settings June 29, 2025 03:12
Copy link

@Copilot Copilot AI left a 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 target net9.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": {
Copy link
Preview

Copilot AI Jun 29, 2025

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.

Suggested change
"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) =
Copy link
Preview

Copilot AI Jun 29, 2025

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).

Suggested change
type TemporaryFile(fileContent : string, extension) =
type TemporaryFile(fileContent : string, extension: string) =

Copilot uses AI. Check for mistakes.

@xperiandri xperiandri changed the title Migrated to .NET 9.0.201 and F# compiler 43.9.201 Migrated to .NET 9.0.201 and F# compiler 43.9.201 Jun 29, 2025
<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" />
Copy link
Contributor

@Numpsy Numpsy Jul 1, 2025

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?

Copy link
Collaborator Author

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

@xperiandri xperiandri merged commit 7ab14ab into fsprojects:master Jul 1, 2025
xperiandri added a commit that referenced this pull request Jul 11, 2025
## [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]
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.

2 participants