Conversation
Update migrate-dotnet8-to-dotnet9, migrate-dotnet9-to-dotnet10, and migrate-dotnet10-to-dotnet11 skills to support F# projects alongside C#: - Add .fsproj alongside .csproj in all project file references - Make C# compiler reference entries conditional on project language - Add F# compiler reference entries for each migration skill - Update frontmatter descriptions to mention F# versions Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>
Create fsharp-compiler-dotnet8to9.md, fsharp-compiler-dotnet9to10.md, and fsharp-compiler-dotnet10to11.md with documented F# compiler breaking changes for each migration version, so the reference table entries added in the previous commit point to actual files. Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
There was a problem hiding this comment.
Pull request overview
This PR updates the migrate-dotnet* upgrade skills under plugins/dotnet-upgrade to better support F# (and mixed C#/F# solutions) by broadening project file inputs and adding F# compiler breaking-change references alongside the existing C# ones.
Changes:
- Expanded skill instructions/inputs from
.csproj-only to.csproj/.fsprojacross the migration workflows. - Made compiler reference loading language-conditional (C# vs F#) and added new F# compiler reference documents for affected migrations.
- Updated skill frontmatter descriptions to include corresponding F# language versions.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md | Adds .fsproj support and introduces F# compiler reference loading alongside C# |
| plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/references/fsharp-compiler-dotnet9to10.md | New reference doc capturing F# 10 breaking changes for .NET 10 |
| plugins/dotnet-upgrade/skills/migrate-dotnet8-to-dotnet9/SKILL.md | Adds .fsproj support and introduces F# compiler reference loading alongside C# |
| plugins/dotnet-upgrade/skills/migrate-dotnet8-to-dotnet9/references/fsharp-compiler-dotnet8to9.md | New reference doc capturing F# 9 breaking changes for .NET 9 |
| plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/SKILL.md | Adds .fsproj support and introduces F# compiler reference loading alongside C# |
| plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/fsharp-compiler-dotnet10to11.md | New reference doc capturing F# 11 breaking changes for .NET 11 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
@copilot address the CI failures (scan external references and skill-check) |
… migrate-dotnet9-to-dotnet10 description to under 1024 chars Co-authored-by: ViktorHofer <7412651+ViktorHofer@users.noreply.github.com>
Fixed both in 4138ea3:
|
|
/evaluate |
Skill Validation Results
[1] (Isolated) Quality unchanged but weighted score is -5.9% due to: tokens (16217 → 100658), tool calls (0 → 6)
Model: claude-opus-4.6 | Judge: claude-opus-4.6 |
|
@danmoseley I think you are the second best person to review after @T-Gro who already approved :) |
| - Fixing C# 15 compiler breaking changes after SDK upgrade (see the C#-specific “Common patterns” list in Step 3) | ||
| - Fixing F# 11 compiler breaking changes after SDK upgrade (see the F# 11 “What’s new” documentation at https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-11) |
There was a problem hiding this comment.
| - Fixing C# 15 compiler breaking changes after SDK upgrade (see the C#-specific “Common patterns” list in Step 3) | |
| - Fixing F# 11 compiler breaking changes after SDK upgrade (see the F# 11 “What’s new” documentation at https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-11) | |
| - Fixing C# 15 and F# 11 compiler breaking changes after SDK upgrade. |
I pulled out all docs links because they added tokens for no benefit. It can find docs. And the extra text here is surely not necessary
There was a problem hiding this comment.
Applied in e95247e — combined both bullets into a single line and removed the docs link.
There was a problem hiding this comment.
I pulled out all docs links because they added tokens for no benefit. It can find docs. And the extra text here is surely not necessary
Are you sure on that? I assume that without the link, the LLM will not always initiate a web_fetch call. In other words, doesn't the omission of the links make the process less deterministic?
| | If the project uses… | Load reference | | ||
| |-----------------------|----------------| | ||
| | Any .NET 9 project | `references/csharp-compiler-dotnet8to9.md` | | ||
| | C# project | `references/csharp-compiler-dotnet8to9.md` | |
There was a problem hiding this comment.
this duplicates the "when to load" at the end. I don't remember doing that-- maybe I forgot? But seems one should be deleted.
There was a problem hiding this comment.
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.
| | Any .NET 10 project | `references/csharp-compiler-dotnet9to10.md` | | ||
| | If your solution contains… | Load reference | | ||
| |----------------------------|----------------| | ||
| | C# projects | `references/csharp-compiler-dotnet9to10.md` | |
There was a problem hiding this comment.
same comment about duplicating when to load table below
There was a problem hiding this comment.
Fixed in e95247e — same approach as dotnet8-to-dotnet9.
|
@copilot address feedback |
…erence tables Co-authored-by: danmoseley <6385855+danmoseley@users.noreply.github.com> Agent-Logs-Url: https://github.com/dotnet/skills/sessions/0a773675-198f-4b82-98c4-75d53d1c76a0
|
@copilot resolve the merge conflicts (the known-domains.txt got moved under /eng) |
…-skills-for-fsharp
|
/evaluate |
Skill Validation Results
[1] (Isolated) Quality unchanged but weighted score is -2.3% due to: tokens (13275 → 18679) Model: claude-opus-4.6 | Judge: claude-opus-4.6
🔍 Full results — includes quality and agent details
|
migrate-dotnet8-to-dotnet9/SKILL.md— add.fsprojreferences, make C# compiler refs conditional, add F# compiler refsmigrate-dotnet9-to-dotnet10/SKILL.md— add.fsprojreferences, make C# compiler refs conditional, add F# compiler refsmigrate-dotnet10-to-dotnet11/SKILL.md— add.fsprojreferences, make C# compiler refs conditional, add F# compiler refsreferences/fsharp-compiler-dotnet8to9.md— F# 9 compiler breaking changesreferences/fsharp-compiler-dotnet9to10.md— F# 10 compiler breaking changesreferences/fsharp-compiler-dotnet10to11.md— F# 11 compiler breaking changesgit.832008.xyz/dotnet/fsharpto known-domains.txt (reference scanner)migrate-dotnet9-to-dotnet10description from 1,097 to 990 chars (max 1,024)Original prompt
dotnet-upgrade/.../migrate-dotnet*skills are missing F# vs. C# #403✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.