Skip to content

Commit c9639d1

Browse files
CopilotbaronfelTheAngryByrd
authored
Update FSharp.Compiler.Service to 43.10.100 for .NET 10 support (#239)
* Initial plan * Update FSharp.Compiler.Service to 43.10.100-rc2.25502.107 for .NET 10 support Co-authored-by: baronfel <[email protected]> * Add support for .NET 10 across build and project files --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: baronfel <[email protected]> Co-authored-by: Jimmy Byrd <[email protected]>
1 parent 4e0d12d commit c9639d1

File tree

13 files changed

+63
-39
lines changed

13 files changed

+63
-39
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"fantomas": {
6-
"version": "7.0.1",
6+
"version": "7.0.3",
77
"commands": [
88
"fantomas"
99
],

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
dotnet-version: |
2727
8.x
2828
9.x
29+
10.x
2930
3031
# let's make sure we're on the version we think we are.
3132
- name: Announce .NET version

.github/workflows/publish.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ jobs:
1515
uses: actions/setup-dotnet@v4
1616
with:
1717
dotnet-version: |
18-
8.0.x
19-
9.0.x
18+
8.x
19+
9.x
20+
10.x
21+
2022
# since we're packaging for net7 now...
2123
- name: remove global.json
2224
run: rm global.json
@@ -28,6 +30,7 @@ jobs:
2830
run: dotnet run --project build
2931
env:
3032
BuildNet9: true
33+
BuildNet10: true
3134
IgnoreTests: true
3235
- name: Get version from tag
3336
id: tag_name

CHANGELOG.md

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [Unreleased]
9+
10+
### Changed
11+
12+
- [FSharp.Compiler.Service update to 43.10.100 for .NET 10 support](https://github.com/ionide/proj-info/pull/239/) (thanks @TheAngryByrd)
13+
14+
815
## [0.72.0] - 2025-10-18
916

1017
### Changed
@@ -194,27 +201,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
194201
### Changed
195202

196203
- [Perf improvement on translating project data for Graph Workspaces](https://github.com/ionide/proj-info/pull/144) (Thanks @nojaf!)
197-
198-
## [0.58.2] - 2022-04-04
199-
200-
### Fixed
201-
- Make `LegacyFrameworkDiscovery.msbuildBinary` lazy
202-
203-
## [0.58.1] - 2022-04-03
204-
205-
### Fixed
206-
207-
- Invalid project cache files from previous versions of this library can be detected and removed.
208-
209-
## [0.58.0] - 2022-04-02
210-
211-
### Added
212-
213-
- Support for loading legacy project files
214-
215-
### Fixed
216-
217-
- Saving/loading of project file caches. Perf (especially initial load) should improve massively.
204+
l load) should improve massively.
218205

219206
## [0.57.2] - 2022-03-21
220207

CONTRIBUTING.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ So if you set global.json to a 9.0.xxx SDK, you'll _always_ use the 9.x MSBuild
1919
Our FAKE build project will handle creating/deleting a temporary `global.json` file in the `test` directory for you.
2020

2121
1. `dotnet run --project .\build\ -- -t Test`
22-
1. This should chose the `Test:net8.0` and `Test:net9.0` targets and run against that respective runtime.
22+
1. This will run the following test targets against their respective runtime.
23+
* `Test:net8.0`
24+
* `Test:net9.0`
25+
* `Test:net10.0`
2326

2427
### Manually invoking dotnet test
2528

@@ -36,8 +39,7 @@ If you want to run `dotnet test` directly, you'll need to set the `global.json`
3639
```json
3740
"sdk": {
3841
"version": "9.0.100",
39-
"rollForward": "latestMinor",
40-
"allowPrerelease": true
42+
"rollForward": "latestMinor"
4143
}
4244
```
4345
1. Move to the test project
@@ -48,7 +50,20 @@ If you want to run `dotnet test` directly, you'll need to set the `global.json`
4850
4. Run tests with `dotnet test`
4951

5052

51-
53+
#### Against LTS (net10.0)
54+
1. Change global.json to use net10.0
55+
```json
56+
"sdk": {
57+
"version": "10.0.100",
58+
"rollForward": "latestMinor"
59+
}
60+
```
61+
1. Move to the test project
62+
1. `cd test/Ionide.ProjInfo.Tests`
63+
3. Set environment variable `BuildNet10` to `true`
64+
1. Bash: `export BuildNet10=true`
65+
2. PowerShell: `$env:BuildNet10 = "true"`
66+
4. Run tests with `dotnet test`
5267

5368

5469
## Release

Directory.Packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<FSharpCoreVersion>6.0.0</FSharpCoreVersion>
88
<!-- However for the FCS project, FSharpCoreCompilerVersion needs to match whats specified in
99
the FSharp.Compiler.Service dependency -->
10-
<FSharpCoreCompilerVersion>9.0.300</FSharpCoreCompilerVersion>
11-
<FSharpCompilerVersion>43.9.300</FSharpCompilerVersion>
10+
<FSharpCoreCompilerVersion>10.0.100</FSharpCoreCompilerVersion>
11+
<FSharpCompilerVersion>43.10.100</FSharpCompilerVersion>
1212
<ExpectoVersion>10.2.3</ExpectoVersion>
1313
<FakeVersion>6.1.3</FakeVersion>
1414
<NuGetAuditMode>direct</NuGetAuditMode>

build/Program.fs

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,14 @@ let init args =
9494
Map.ofSeq [
9595
"net8.0", "8.0.100"
9696
"net9.0", "9.0.100"
97+
"net10.0", "10.0.100"
9798
]
9899

99-
let tfmToBuildNet9Map =
100+
let tfmToEnvVar =
100101
Map.ofSeq [
101-
"net8.0", false
102-
"net9.0", true
102+
"net8.0", None
103+
"net9.0", Some "BuildNet9"
104+
"net10.0", Some "BuildNet10"
103105
]
104106

105107
let testTFM tfm =
@@ -112,11 +114,16 @@ let init args =
112114
else
113115
""
114116

115-
exec
116-
"dotnet"
117-
$"test --blame --blame-hang-timeout 120s --framework {tfm} --logger trx --logger GitHubActions -c %s{configuration} .\\Ionide.ProjInfo.Tests\\Ionide.ProjInfo.Tests.fsproj -- %s{failedOnFocus}"
118-
"test"
119-
(Map.ofSeq [ "BuildNet9", tfmToBuildNet9Map.[tfm].ToString() ])
117+
let envs =
118+
match
119+
tfmToEnvVar
120+
|> Map.tryFind tfm
121+
|> Option.flatten
122+
with
123+
| Some envVar -> Map.ofSeq [ envVar, "true" ]
124+
| None -> Map.empty
125+
126+
exec "dotnet" $"test --blame --blame-hang-timeout 120s --framework {tfm} --logger trx --logger GitHubActions -c %s{configuration} .\\Ionide.ProjInfo.Tests\\Ionide.ProjInfo.Tests.fsproj -- %s{failedOnFocus}" "test" envs
120127
|> ignore
121128
finally
122129
System.IO.File.Delete "test\\global.json"
@@ -125,6 +132,7 @@ let init args =
125132

126133
Target.create "Test:net8.0" (fun _ -> testTFM "net8.0")
127134
Target.create "Test:net9.0" (fun _ -> testTFM "net9.0")
135+
Target.create "Test:net10.0" (fun _ -> testTFM "net10.0")
128136

129137
"Build"
130138
==> ("Test:net8.0")
@@ -136,6 +144,11 @@ let init args =
136144
=?> ("Test", not ignoreTests)
137145
|> ignore
138146

147+
"Build"
148+
==> ("Test:net10.0")
149+
=?> ("Test", not ignoreTests)
150+
|> ignore
151+
139152
Target.create
140153
"ListPackages"
141154
(fun _ ->

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"rollForward": "latestMinor",
55
"allowPrerelease": true
66
}
7-
}
7+
}

src/Ionide.ProjInfo.FCS/Ionide.ProjInfo.FCS.fsproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<PropertyGroup>
44
<TargetFrameworks>net8.0</TargetFrameworks>
55
<TargetFrameworks Condition="'$(BuildNet9)' == 'true'">$(TargetFrameworks);net9.0</TargetFrameworks>
6+
<TargetFrameworks Condition="'$(BuildNet10)' == 'true'">$(TargetFrameworks);net10.0</TargetFrameworks>
67
</PropertyGroup>
78

89
<ItemGroup>

src/Ionide.ProjInfo.ProjectSystem/Ionide.ProjInfo.ProjectSystem.fsproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<PropertyGroup>
44
<TargetFrameworks>net8.0</TargetFrameworks>
55
<TargetFrameworks Condition="'$(BuildNet9)' == 'true'">$(TargetFrameworks);net9.0</TargetFrameworks>
6+
<TargetFrameworks Condition="'$(BuildNet10)' == 'true'">$(TargetFrameworks);net10.0</TargetFrameworks>
67
</PropertyGroup>
78

89
<ItemGroup>

0 commit comments

Comments
 (0)