Skip to content

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 AI review requested due to automatic review settings June 29, 2025 03:12
Copy link

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

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.
if splitOutput.[i].StartsWith "Error" then yield splitOutput.[i - 1] ]

type TemporaryFile(fileContent, extension) =
type TemporaryFile(fileContent : string, extension) =
Copy link

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