From 05c981b9eafe0eab3b7d4776617e83dbac00d6ca Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Nov 2025 19:36:30 +0100 Subject: [PATCH 1/5] Migrate to .NET 10 --- .github/workflows/ci.yml | 10 ++--- Directory.Build.props | 4 +- assembly-differ.sln | 41 ------------------- assembly-differ.slnx | 17 ++++++++ build/scripts/Program.fs | 5 ++- build/scripts/Targets.fs | 9 ++-- build/scripts/scripts.fsproj | 7 ++-- dotnet-tools.json | 15 ++++--- global.json | 2 +- .../GitHub/GitHubAssemblyProvider.cs | 3 +- src/assembly-differ/assembly-differ.csproj | 5 +-- 11 files changed, 46 insertions(+), 72 deletions(-) delete mode 100644 assembly-differ.sln create mode 100644 assembly-differ.slnx diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 227f966..9a3196b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,19 +18,17 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 1 - run: | git fetch --prune --unshallow --tags echo exit code $? git tag --list - - uses: actions/setup-dotnet@v4 + - uses: actions/setup-dotnet@v5 with: - # 6.x is required to run generate release notes (for now) dotnet-version: | - 9.0.x - 6.0.x + 10.0.x source-url: https://nuget.pkg.github.com/nullean/index.json env: NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} @@ -61,6 +59,6 @@ jobs: if: github.event_name == 'push' && startswith(github.ref, 'refs/tags') name: Create or update release for tag on github - - run: dotnet nuget push build/output/*.nupkg -k ${{secrets.NUGET_ORG_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate --no-symbols true + - run: dotnet nuget push 'build/output/*.nupkg' -k ${{secrets.NUGET_ORG_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate --no-symbols true name: release to nuget.org if: github.event_name == 'push' && startswith(github.ref, 'refs/tags') diff --git a/Directory.Build.props b/Directory.Build.props index 408042d..d05fa3e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,10 +2,10 @@ canary.0 - 0.2 + 0.1 - + all diff --git a/assembly-differ.sln b/assembly-differ.sln deleted file mode 100644 index a384464..0000000 --- a/assembly-differ.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "assembly-differ", "src\assembly-differ\assembly-differ.csproj", "{ABB946F3-7A8D-41D7-9526-23E0CFFA16F8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{290FCB28-E5DB-4187-A556-EE2A38FE2458}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{BD755685-40C2-4FD1-BBB6-40869213C63A}" -ProjectSection(SolutionItems) = preProject - build.bat = build.bat - build.sh = build.sh - Directory.Build.props = Directory.Build.props - global.json = global.json - LICENSE = LICENSE - nuget-icon.png = nuget-icon.png - README.md = README.md - .github\workflows\ci.yml = .github\workflows\ci.yml - dotnet-tools.json = dotnet-tools.json -EndProjectSection -EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "scripts", "build\scripts\scripts.fsproj", "{52FEFC30-5E2A-48C6-8814-ACF2CD4CC93B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ABB946F3-7A8D-41D7-9526-23E0CFFA16F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ABB946F3-7A8D-41D7-9526-23E0CFFA16F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ABB946F3-7A8D-41D7-9526-23E0CFFA16F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ABB946F3-7A8D-41D7-9526-23E0CFFA16F8}.Release|Any CPU.Build.0 = Release|Any CPU - {52FEFC30-5E2A-48C6-8814-ACF2CD4CC93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52FEFC30-5E2A-48C6-8814-ACF2CD4CC93B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52FEFC30-5E2A-48C6-8814-ACF2CD4CC93B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52FEFC30-5E2A-48C6-8814-ACF2CD4CC93B}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {ABB946F3-7A8D-41D7-9526-23E0CFFA16F8} = {290FCB28-E5DB-4187-A556-EE2A38FE2458} - {52FEFC30-5E2A-48C6-8814-ACF2CD4CC93B} = {BD755685-40C2-4FD1-BBB6-40869213C63A} - EndGlobalSection -EndGlobal diff --git a/assembly-differ.slnx b/assembly-differ.slnx new file mode 100644 index 0000000..ecc5782 --- /dev/null +++ b/assembly-differ.slnx @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/build/scripts/Program.fs b/build/scripts/Program.fs index c346f06..88ff9c9 100644 --- a/build/scripts/Program.fs +++ b/build/scripts/Program.fs @@ -26,7 +26,8 @@ let main argv = Targets.Setup parsed arguments let swallowTypes = [typeof; typeof] - Targets.RunTargetsAndExit - ([target], (fun e -> swallowTypes |> List.contains (e.GetType()) ), ":") + task { + return! Targets.RunTargetsAndExitAsync([ target ], (fun e -> swallowTypes |> List.contains (e.GetType())), (fun _ -> ":"), null, null) + } |> Async.AwaitTask |> Async.RunSynchronously 0 diff --git a/build/scripts/Targets.fs b/build/scripts/Targets.fs index a1a8e1e..f33c4aa 100644 --- a/build/scripts/Targets.fs +++ b/build/scripts/Targets.fs @@ -9,22 +9,19 @@ open Fake.Tools.Git open ProcNet let exec binary args = - let r = Proc.Exec (binary, args |> List.map (fun a -> sprintf "\"%s\"" a) |> List.toArray) - match r.HasValue with | true -> r.Value | false -> failwithf "invocation of `%s` timed out" binary + Proc.Exec (binary, args |> List.toArray) let private restoreTools = lazy(exec "dotnet" ["tool"; "restore"]) let private currentVersion = lazy( restoreTools.Value |> ignore - let r = Proc.Start("dotnet", "minver", "-p", "canary.0") + let r = Proc.Start("dotnet", "minver", "-p", "canary.0", "-m", "0.1") let o = r.ConsoleOut |> Seq.find (fun l -> not(l.Line.StartsWith "MinVer:")) o.Line ) let private currentVersionInformational = - lazy( - sprintf "%s+%s" currentVersion.Value (Information.getCurrentSHA1( ".")) - ) + lazy(sprintf "%s+%s" currentVersion.Value (Information.getCurrentSHA1( "."))) let private clean (arguments:ParseResults) = if (Paths.Output.Exists) then Paths.Output.Delete (true) diff --git a/build/scripts/scripts.fsproj b/build/scripts/scripts.fsproj index a667b4d..461477f 100644 --- a/build/scripts/scripts.fsproj +++ b/build/scripts/scripts.fsproj @@ -2,15 +2,14 @@ Exe - net9.0 + net10.0 false - - + + - diff --git a/dotnet-tools.json b/dotnet-tools.json index 3f2a3a9..75d5d13 100644 --- a/dotnet-tools.json +++ b/dotnet-tools.json @@ -3,22 +3,25 @@ "isRoot": true, "tools": { "minver-cli": { - "version": "4.3.0", + "version": "6.0.0", "commands": [ "minver" - ] + ], + "rollForward": false }, "release-notes": { - "version": "0.6.0", + "version": "0.10.0", "commands": [ "release-notes" - ] + ], + "rollForward": false }, "nupkg-validator": { - "version": "0.6.0", + "version": "0.10.1", "commands": [ "nupkg-validator" - ] + ], + "rollForward": false } } } \ No newline at end of file diff --git a/global.json b/global.json index 41c9ad2..d46d21e 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.100", + "version": "10.0.100", "rollForward": "latestFeature", "allowPrerelease": false } diff --git a/src/assembly-differ/Providers/GitHub/GitHubAssemblyProvider.cs b/src/assembly-differ/Providers/GitHub/GitHubAssemblyProvider.cs index 2369be4..90b5e44 100644 --- a/src/assembly-differ/Providers/GitHub/GitHubAssemblyProvider.cs +++ b/src/assembly-differ/Providers/GitHub/GitHubAssemblyProvider.cs @@ -55,10 +55,11 @@ public IEnumerable GetAssemblies(HashSet targets) var arguments = new StartArguments(_command.BuildCommand, _command.BuildArguments) { WorkingDirectory = repoDirectory, + Timeout = TimeSpan.FromMinutes(10), WaitForStreamReadersTimeout = TimeSpan.FromMinutes(1), }; - result = Proc.Start(arguments, TimeSpan.FromMinutes(10)); + result = Proc.Start(arguments); var output = Path.GetFullPath(Path.Combine(repoDirectory, _command.Output)); var isFile = false; diff --git a/src/assembly-differ/assembly-differ.csproj b/src/assembly-differ/assembly-differ.csproj index 9101892..594faac 100644 --- a/src/assembly-differ/assembly-differ.csproj +++ b/src/assembly-differ/assembly-differ.csproj @@ -1,7 +1,7 @@  Exe - net6.0;net8.0;net9.0 + net6.0;net8.0;net10.0 assembly-differ AssemblyDiffer true @@ -29,7 +29,7 @@ - + @@ -37,7 +37,6 @@ - From c58ac8565c5deeec93d50915a0e9e3ad65728bcb Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Nov 2025 19:37:52 +0100 Subject: [PATCH 2/5] Update Paths.fs --- build/scripts/Paths.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/scripts/Paths.fs b/build/scripts/Paths.fs index 46e117a..457f7be 100644 --- a/build/scripts/Paths.fs +++ b/build/scripts/Paths.fs @@ -8,7 +8,7 @@ let Repository = sprintf "nullean/%s" ToolName let Root = let mutable dir = DirectoryInfo(".") - while dir.GetFiles("*.sln").Length = 0 do dir <- dir.Parent + while dir.GetFiles("*.slnx").Length = 0 do dir <- dir.Parent Environment.CurrentDirectory <- dir.FullName dir From adea06b590cb29f099473f8d164a4e032f674afb Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Nov 2025 19:42:00 +0100 Subject: [PATCH 3/5] remove unused packagereference --- src/assembly-differ/assembly-differ.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/assembly-differ/assembly-differ.csproj b/src/assembly-differ/assembly-differ.csproj index 594faac..fe0a7f1 100644 --- a/src/assembly-differ/assembly-differ.csproj +++ b/src/assembly-differ/assembly-differ.csproj @@ -30,7 +30,6 @@ - From fcf35e65206f8e482851d5ea9b670927e5e70c78 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Nov 2025 19:44:56 +0100 Subject: [PATCH 4/5] remove net6.0 support --- src/assembly-differ/assembly-differ.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assembly-differ/assembly-differ.csproj b/src/assembly-differ/assembly-differ.csproj index fe0a7f1..1a4054f 100644 --- a/src/assembly-differ/assembly-differ.csproj +++ b/src/assembly-differ/assembly-differ.csproj @@ -1,7 +1,7 @@  Exe - net6.0;net8.0;net10.0 + net8.0;net10.0 assembly-differ AssemblyDiffer true From a9d163e4ddcba6679354f5b619de28f56f1d0328 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Nov 2025 19:47:03 +0100 Subject: [PATCH 5/5] remove net9.0 dotnet run from scripts --- build/scripts/Targets.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/scripts/Targets.fs b/build/scripts/Targets.fs index f33c4aa..aefe64a 100644 --- a/build/scripts/Targets.fs +++ b/build/scripts/Targets.fs @@ -50,11 +50,11 @@ let private generateApiChanges (arguments:ParseResults) = let output = Paths.RootRelative <| Paths.Output.FullName let currentVersion = currentVersion.Value let project = Paths.RootRelative Paths.ToolProject.FullName - let dotnetRun =[ "run"; "-c"; "Release"; "-f"; "net9.0"; "--project"; project] + let dotnetRun =[ "run"; "-c"; "Release"; "-f"; "net10.0"; "--project"; project] let args = [ sprintf "previous-nuget|%s|%s|net8.0" Paths.ToolName currentVersion; - sprintf "directory|src/%s/bin/Release/net9.0" Paths.ToolName; + sprintf "directory|src/%s/bin/Release/net10.0" Paths.ToolName; "--target"; Paths.ToolName; "-f"; "github-comment"; "--output"; output ]