-
Notifications
You must be signed in to change notification settings - Fork 371
Add F# support to migrate-dotnet* skills #406
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
Changes from 2 commits
34f2544
ecb9aa9
3a1a37f
6f20f81
4138ea3
793f6f3
e95247e
aba457b
9409400
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,10 +3,10 @@ name: migrate-dotnet8-to-dotnet9 | |
| description: > | ||
| Migrate a .NET 8 project to .NET 9 and resolve all breaking changes. | ||
| USE FOR: upgrading TargetFramework from net8.0 to net9.0, fixing build errors | ||
| after updating the .NET 9 SDK, resolving behavioral changes in .NET 9 / C# 13 / | ||
| after updating the .NET 9 SDK, resolving behavioral changes in .NET 9 / C# 13 / F# 9 / | ||
| ASP.NET Core 9 / EF Core 9, replacing BinaryFormatter (now always throws), | ||
| resolving SYSLIB0054-SYSLIB0057, adapting to params span overload resolution, | ||
| fixing C# 13 compiler changes, updating HttpClientFactory for SocketsHttpHandler, | ||
| fixing C# 13 / F# 9 compiler changes, updating HttpClientFactory for SocketsHttpHandler, | ||
| and resolving EF Core 9 migration/Cosmos DB changes. | ||
| DO NOT USE FOR: .NET Framework migrations, upgrading from .NET 7 or earlier, | ||
| greenfield .NET 9 projects, or cosmetic modernization unrelated to the upgrade. | ||
|
|
@@ -35,7 +35,7 @@ Migrate a .NET 8 project or solution to .NET 9, systematically resolving all bre | |
|
|
||
| | Input | Required | Description | | ||
| |-------|----------|-------------| | ||
| | Project or solution path | Yes | The `.csproj`, `.sln`, or `.slnx` entry point to migrate | | ||
| | Project or solution path | Yes | The `.csproj`, `.fsproj`, `.sln`, or `.slnx` entry point to migrate | | ||
| | Build command | No | How to build (e.g., `dotnet build`, a repo build script). Auto-detect if not provided | | ||
| | Test command | No | How to run tests (e.g., `dotnet test`). Auto-detect if not provided | | ||
| | Project type hints | No | Whether the project uses ASP.NET Core, EF Core, WinForms, WPF, containers, etc. Auto-detect from PackageReferences and SDK attributes if not provided | | ||
|
|
@@ -48,7 +48,7 @@ Migrate a .NET 8 project or solution to .NET 9, systematically resolving all bre | |
|
|
||
| ### Step 1: Assess the project | ||
|
|
||
| 1. Identify how the project is built and tested. Look for build scripts, `.sln`/`.slnx` files, or individual `.csproj` files. | ||
| 1. Identify how the project is built and tested. Look for build scripts, `.sln`/`.slnx` files, or individual `.csproj`/`.fsproj` files. | ||
| 2. Run `dotnet --version` to confirm the .NET 9 SDK is installed. If it is not, stop and inform the user. | ||
| 3. Determine which technology areas the project uses by examining: | ||
| - **SDK attribute**: `Microsoft.NET.Sdk.Web` → ASP.NET Core; `Microsoft.NET.Sdk.WindowsDesktop` with `<UseWPF>` or `<UseWindowsForms>` → WPF/WinForms | ||
|
|
@@ -63,7 +63,7 @@ Migrate a .NET 8 project or solution to .NET 9, systematically resolving all bre | |
|
|
||
| ### Step 2: Update the Target Framework | ||
|
|
||
| 1. In each `.csproj` (or `Directory.Build.props` if centralized), change: | ||
| 1. In each `.csproj`/`.fsproj` (or `Directory.Build.props` if centralized), change: | ||
| ```xml | ||
| <TargetFramework>net8.0</TargetFramework> | ||
| ``` | ||
|
|
@@ -87,7 +87,8 @@ Work through compilation errors and new warnings systematically. Load the approp | |
|
|
||
| | If the project uses… | Load reference | | ||
| |-----------------------|----------------| | ||
| | Any .NET 9 project | `references/csharp-compiler-dotnet8to9.md` | | ||
| | C# project | `references/csharp-compiler-dotnet8to9.md` | | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this duplicates the "when to load" at the end. I don't remember doing that-- maybe I forgot? But seems one should be deleted.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Removed the duplicate Step 3 table in e95247e. The Reference Documents section at the bottom is now the single source of truth. Step 3 just says to load from that table. Applied to all three skills. |
||
| | F# project | `references/fsharp-compiler-dotnet8to9.md` | | ||
| | Any .NET 9 project | `references/core-libraries-dotnet8to9.md` | | ||
| | Any .NET 9 project | `references/sdk-msbuild-dotnet8to9.md` | | ||
| | ASP.NET Core | `references/aspnet-core-dotnet8to9.md` | | ||
|
|
@@ -219,7 +220,8 @@ The `references/` folder contains detailed breaking change information organized | |
|
|
||
| | Reference file | When to load | | ||
| |----------------|-------------| | ||
| | `references/csharp-compiler-dotnet8to9.md` | Always (C# 13 compiler breaking changes — InlineArray on records, iterator safe context, collection expression overloads) | | ||
| | `references/csharp-compiler-dotnet8to9.md` | Project uses C# (C# 13 compiler breaking changes — InlineArray on records, iterator safe context, collection expression overloads) | | ||
| | `references/fsharp-compiler-dotnet8to9.md` | Project uses F# (F# 9 compiler breaking changes) | | ||
| | `references/core-libraries-dotnet8to9.md` | Always (applies to all .NET 9 projects) | | ||
| | `references/sdk-msbuild-dotnet8to9.md` | Always (SDK and build tooling changes) | | ||
| | `references/aspnet-core-dotnet8to9.md` | Project uses ASP.NET Core | | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.