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