diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index f8bfcbf3..476dd7c3 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"fantomas": {
- "version": "7.0.1",
+ "version": "7.0.3",
"commands": [
"fantomas"
],
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0ad8e3be..7a277919 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -26,6 +26,7 @@ jobs:
dotnet-version: |
8.x
9.x
+ 10.x
# let's make sure we're on the version we think we are.
- name: Announce .NET version
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 565196e3..63178260 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -15,8 +15,10 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
- 8.0.x
- 9.0.x
+ 8.x
+ 9.x
+ 10.x
+
# since we're packaging for net7 now...
- name: remove global.json
run: rm global.json
@@ -28,6 +30,7 @@ jobs:
run: dotnet run --project build
env:
BuildNet9: true
+ BuildNet10: true
IgnoreTests: true
- name: Get version from tag
id: tag_name
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3d7a889a..acd8a246 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [Unreleased]
+
+### Changed
+
+- [FSharp.Compiler.Service update to 43.10.100 for .NET 10 support](https://github.com/ionide/proj-info/pull/239/) (thanks @TheAngryByrd)
+
+
## [0.72.0] - 2025-10-18
### Changed
@@ -194,27 +201,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- [Perf improvement on translating project data for Graph Workspaces](https://github.com/ionide/proj-info/pull/144) (Thanks @nojaf!)
-
-## [0.58.2] - 2022-04-04
-
-### Fixed
-- Make `LegacyFrameworkDiscovery.msbuildBinary` lazy
-
-## [0.58.1] - 2022-04-03
-
-### Fixed
-
-- Invalid project cache files from previous versions of this library can be detected and removed.
-
-## [0.58.0] - 2022-04-02
-
-### Added
-
-- Support for loading legacy project files
-
-### Fixed
-
-- Saving/loading of project file caches. Perf (especially initial load) should improve massively.
+l load) should improve massively.
## [0.57.2] - 2022-03-21
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8c3b4e6d..63be5934 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -19,7 +19,10 @@ So if you set global.json to a 9.0.xxx SDK, you'll _always_ use the 9.x MSBuild
Our FAKE build project will handle creating/deleting a temporary `global.json` file in the `test` directory for you.
1. `dotnet run --project .\build\ -- -t Test`
- 1. This should chose the `Test:net8.0` and `Test:net9.0` targets and run against that respective runtime.
+ 1. This will run the following test targets against their respective runtime.
+ * `Test:net8.0`
+ * `Test:net9.0`
+ * `Test:net10.0`
### Manually invoking dotnet test
@@ -36,8 +39,7 @@ If you want to run `dotnet test` directly, you'll need to set the `global.json`
```json
"sdk": {
"version": "9.0.100",
- "rollForward": "latestMinor",
- "allowPrerelease": true
+ "rollForward": "latestMinor"
}
```
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`
4. Run tests with `dotnet test`
-
+#### Against LTS (net10.0)
+1. Change global.json to use net10.0
+ ```json
+ "sdk": {
+ "version": "10.0.100",
+ "rollForward": "latestMinor"
+ }
+ ```
+1. Move to the test project
+ 1. `cd test/Ionide.ProjInfo.Tests`
+3. Set environment variable `BuildNet10` to `true`
+ 1. Bash: `export BuildNet10=true`
+ 2. PowerShell: `$env:BuildNet10 = "true"`
+4. Run tests with `dotnet test`
## Release
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 11384690..1cf0f9d5 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -7,8 +7,8 @@
6.0.0
- 9.0.300
- 43.9.300
+ 10.0.100
+ 43.10.100
10.2.3
6.1.3
direct
diff --git a/build/Program.fs b/build/Program.fs
index f379ed41..ed443634 100644
--- a/build/Program.fs
+++ b/build/Program.fs
@@ -94,12 +94,14 @@ let init args =
Map.ofSeq [
"net8.0", "8.0.100"
"net9.0", "9.0.100"
+ "net10.0", "10.0.100"
]
- let tfmToBuildNet9Map =
+ let tfmToEnvVar =
Map.ofSeq [
- "net8.0", false
- "net9.0", true
+ "net8.0", None
+ "net9.0", Some "BuildNet9"
+ "net10.0", Some "BuildNet10"
]
let testTFM tfm =
@@ -112,11 +114,16 @@ let init args =
else
""
- 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"
- (Map.ofSeq [ "BuildNet9", tfmToBuildNet9Map.[tfm].ToString() ])
+ let envs =
+ match
+ tfmToEnvVar
+ |> Map.tryFind tfm
+ |> Option.flatten
+ with
+ | Some envVar -> Map.ofSeq [ envVar, "true" ]
+ | None -> Map.empty
+
+ 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
|> ignore
finally
System.IO.File.Delete "test\\global.json"
@@ -125,6 +132,7 @@ let init args =
Target.create "Test:net8.0" (fun _ -> testTFM "net8.0")
Target.create "Test:net9.0" (fun _ -> testTFM "net9.0")
+ Target.create "Test:net10.0" (fun _ -> testTFM "net10.0")
"Build"
==> ("Test:net8.0")
@@ -136,6 +144,11 @@ let init args =
=?> ("Test", not ignoreTests)
|> ignore
+ "Build"
+ ==> ("Test:net10.0")
+ =?> ("Test", not ignoreTests)
+ |> ignore
+
Target.create
"ListPackages"
(fun _ ->
diff --git a/global.json b/global.json
index fe136d19..73d21416 100644
--- a/global.json
+++ b/global.json
@@ -4,4 +4,4 @@
"rollForward": "latestMinor",
"allowPrerelease": true
}
-}
\ No newline at end of file
+}
diff --git a/src/Ionide.ProjInfo.FCS/Ionide.ProjInfo.FCS.fsproj b/src/Ionide.ProjInfo.FCS/Ionide.ProjInfo.FCS.fsproj
index 6dd31fd7..fcdbd748 100644
--- a/src/Ionide.ProjInfo.FCS/Ionide.ProjInfo.FCS.fsproj
+++ b/src/Ionide.ProjInfo.FCS/Ionide.ProjInfo.FCS.fsproj
@@ -3,6 +3,7 @@
net8.0
$(TargetFrameworks);net9.0
+ $(TargetFrameworks);net10.0
diff --git a/src/Ionide.ProjInfo.ProjectSystem/Ionide.ProjInfo.ProjectSystem.fsproj b/src/Ionide.ProjInfo.ProjectSystem/Ionide.ProjInfo.ProjectSystem.fsproj
index 76a4996a..15c25514 100644
--- a/src/Ionide.ProjInfo.ProjectSystem/Ionide.ProjInfo.ProjectSystem.fsproj
+++ b/src/Ionide.ProjInfo.ProjectSystem/Ionide.ProjInfo.ProjectSystem.fsproj
@@ -3,6 +3,7 @@
net8.0
$(TargetFrameworks);net9.0
+ $(TargetFrameworks);net10.0
diff --git a/src/Ionide.ProjInfo.Tool/Ionide.ProjInfo.Tool.fsproj b/src/Ionide.ProjInfo.Tool/Ionide.ProjInfo.Tool.fsproj
index ffa4aa04..19b363eb 100644
--- a/src/Ionide.ProjInfo.Tool/Ionide.ProjInfo.Tool.fsproj
+++ b/src/Ionide.ProjInfo.Tool/Ionide.ProjInfo.Tool.fsproj
@@ -4,6 +4,7 @@
Exe
net8.0
$(TargetFrameworks);net9.0
+ $(TargetFrameworks);net10.0
true
proj-info
LatestMajor
diff --git a/src/Ionide.ProjInfo/Ionide.ProjInfo.fsproj b/src/Ionide.ProjInfo/Ionide.ProjInfo.fsproj
index 2f545630..f7c99594 100644
--- a/src/Ionide.ProjInfo/Ionide.ProjInfo.fsproj
+++ b/src/Ionide.ProjInfo/Ionide.ProjInfo.fsproj
@@ -3,6 +3,7 @@
net8.0
$(TargetFrameworks);net9.0
+ $(TargetFrameworks);net10.0
diff --git a/test/Ionide.ProjInfo.Tests/Ionide.ProjInfo.Tests.fsproj b/test/Ionide.ProjInfo.Tests/Ionide.ProjInfo.Tests.fsproj
index bc70fe39..b947c34e 100644
--- a/test/Ionide.ProjInfo.Tests/Ionide.ProjInfo.Tests.fsproj
+++ b/test/Ionide.ProjInfo.Tests/Ionide.ProjInfo.Tests.fsproj
@@ -4,6 +4,7 @@
Exe
net8.0
$(TargetFrameworks);net9.0
+ $(TargetFrameworks);net10.0
false
true
false