From 584d9017786156d84d404c7342001f9748bf0c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Tue, 19 May 2026 14:43:51 +0800 Subject: [PATCH 1/5] Move F# projects to src/ subdir This way the root dir of the repo is less poluted. --- Tools/bump.fsx | 6 +++--- Tools/clean.fsx | 2 +- Tools/nugetPush.fsx | 8 ++++---- Tools/rename.fsx | 2 +- Tools/safeRun.fsx | 10 +++++----- compileFSharpScripts.fsx | 6 +++--- fsx-legacy.sln | 8 ++++---- fsx.sln | 8 ++++---- scripts/install.sh | 4 ++-- scripts/make.fsx | 15 ++++++++------- scripts/publish.fsx | 12 ++++++------ scripts/runTests.fsx | 8 ++++---- scripts/runUnitTests.fsx | 11 +++++++---- .../Fsdk.Tests}/AsyncCancellation.fs | 0 {Fsdk.Tests => src/Fsdk.Tests}/AsyncExtensions.fs | 0 {Fsdk.Tests => src/Fsdk.Tests}/FSharpUtil.fs | 0 .../Fsdk.Tests}/Fsdk.Tests-legacy.fsproj | 2 +- {Fsdk.Tests => src/Fsdk.Tests}/Fsdk.Tests.fsproj | 0 {Fsdk.Tests => src/Fsdk.Tests}/Program.fs | 0 {Fsdk.Tests => src/Fsdk.Tests}/Tsv.fs | 0 {Fsdk.Tests => src/Fsdk.Tests}/packages.config | 0 {Fsdk => src/Fsdk}/AssemblyInfo.fs | 0 {Fsdk => src/Fsdk}/FSharpUtil.fs | 0 {Fsdk => src/Fsdk}/Fsdk-legacy.fsproj | 2 +- {Fsdk => src/Fsdk}/Fsdk.fsproj | 4 ++-- {Fsdk => src/Fsdk}/Git.fs | 0 {Fsdk => src/Fsdk}/Misc.fs | 0 {Fsdk => src/Fsdk}/Network.fs | 0 {Fsdk => src/Fsdk}/Process.fs | 0 {Fsdk => src/Fsdk}/Taiga.fs | 0 {Fsdk => src/Fsdk}/Unix.fs | 0 {Fsdk => src/Fsdk}/packages.config | 0 {fsx => src/fsx}/Program.fs | 0 {fsx => src/fsx}/fsx-legacy.fsproj | 2 +- {fsx => src/fsx}/fsx.fsproj | 4 ++-- {fsxc => src/fsxc}/AssemblyInfo.fs | 0 {fsxc => src/fsxc}/Fsxc.fs | 0 {fsxc => src/fsxc}/Program.fs | 0 {fsxc => src/fsxc}/fsxc-legacy.fsproj | 2 +- {fsxc => src/fsxc}/fsxc.fsproj | 4 ++-- {fsxc => src/fsxc}/packages.config | 0 test/testProcess.fsx | 4 ++-- test/testProcessConcurrency.fsx | 4 ++-- 43 files changed, 66 insertions(+), 62 deletions(-) rename {Fsdk.Tests => src/Fsdk.Tests}/AsyncCancellation.fs (100%) rename {Fsdk.Tests => src/Fsdk.Tests}/AsyncExtensions.fs (100%) rename {Fsdk.Tests => src/Fsdk.Tests}/FSharpUtil.fs (100%) rename {Fsdk.Tests => src/Fsdk.Tests}/Fsdk.Tests-legacy.fsproj (98%) rename {Fsdk.Tests => src/Fsdk.Tests}/Fsdk.Tests.fsproj (100%) rename {Fsdk.Tests => src/Fsdk.Tests}/Program.fs (100%) rename {Fsdk.Tests => src/Fsdk.Tests}/Tsv.fs (100%) rename {Fsdk.Tests => src/Fsdk.Tests}/packages.config (100%) rename {Fsdk => src/Fsdk}/AssemblyInfo.fs (100%) rename {Fsdk => src/Fsdk}/FSharpUtil.fs (100%) rename {Fsdk => src/Fsdk}/Fsdk-legacy.fsproj (98%) rename {Fsdk => src/Fsdk}/Fsdk.fsproj (92%) rename {Fsdk => src/Fsdk}/Git.fs (100%) rename {Fsdk => src/Fsdk}/Misc.fs (100%) rename {Fsdk => src/Fsdk}/Network.fs (100%) rename {Fsdk => src/Fsdk}/Process.fs (100%) rename {Fsdk => src/Fsdk}/Taiga.fs (100%) rename {Fsdk => src/Fsdk}/Unix.fs (100%) rename {Fsdk => src/Fsdk}/packages.config (100%) rename {fsx => src/fsx}/Program.fs (100%) rename {fsx => src/fsx}/fsx-legacy.fsproj (98%) rename {fsx => src/fsx}/fsx.fsproj (93%) rename {fsxc => src/fsxc}/AssemblyInfo.fs (100%) rename {fsxc => src/fsxc}/Fsxc.fs (100%) rename {fsxc => src/fsxc}/Program.fs (100%) rename {fsxc => src/fsxc}/fsxc-legacy.fsproj (98%) rename {fsxc => src/fsxc}/fsxc.fsproj (96%) rename {fsxc => src/fsxc}/packages.config (100%) diff --git a/Tools/bump.fsx b/Tools/bump.fsx index 20b530b3..f4a4a539 100755 --- a/Tools/bump.fsx +++ b/Tools/bump.fsx @@ -6,8 +6,8 @@ open System.IO #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" open Fsdk open Fsdk.Process @@ -119,7 +119,7 @@ let GitCommit (fullVersion: Version) (newFullVersion: Version) = .Execute( { Command = "git" - Arguments = "add Fsdk/AssemblyInfo.fs" + Arguments = "add src/Fsdk/AssemblyInfo.fs" }, Echo.Off ) diff --git a/Tools/clean.fsx b/Tools/clean.fsx index c29d76fc..8dddf685 100755 --- a/Tools/clean.fsx +++ b/Tools/clean.fsx @@ -6,7 +6,7 @@ open System.IO #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" +#load "../src/Fsdk/Misc.fs" open Fsdk let args = Misc.FsxOnlyArguments() diff --git a/Tools/nugetPush.fsx b/Tools/nugetPush.fsx index 5ee197c9..6aa66a96 100755 --- a/Tools/nugetPush.fsx +++ b/Tools/nugetPush.fsx @@ -7,10 +7,10 @@ open System.Linq #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" -#load "../Fsdk/Git.fs" -#load "../Fsdk/Network.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" +#load "../src/Fsdk/Git.fs" +#load "../src/Fsdk/Network.fs" open Fsdk open Fsdk.Process diff --git a/Tools/rename.fsx b/Tools/rename.fsx index 94d3db7f..b7f72649 100755 --- a/Tools/rename.fsx +++ b/Tools/rename.fsx @@ -8,7 +8,7 @@ Console.Error.WriteLine "This script is only compatible with .NET8 or higher" Environment.Exit 1 #else -#load "../Fsdk/Misc.fs" +#load "../src/Fsdk/Misc.fs" open Fsdk let args = Misc.FsxOnlyArguments() diff --git a/Tools/safeRun.fsx b/Tools/safeRun.fsx index 51543074..b32d609c 100755 --- a/Tools/safeRun.fsx +++ b/Tools/safeRun.fsx @@ -12,11 +12,11 @@ let NUMBER_OF_LINES_OF_BUFFER_TO_SHOW_IN_NOTIFICATION = 20 #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" -#load "../Fsdk/Unix.fs" -#load "../Fsdk/Git.fs" -#load "../Fsdk/Network.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" +#load "../src/Fsdk/Unix.fs" +#load "../src/Fsdk/Git.fs" +#load "../src/Fsdk/Network.fs" open Fsdk diff --git a/compileFSharpScripts.fsx b/compileFSharpScripts.fsx index 4d6f6712..16bf4c22 100755 --- a/compileFSharpScripts.fsx +++ b/compileFSharpScripts.fsx @@ -7,8 +7,8 @@ open System.Linq #r "System.Configuration" open System.Configuration -#load "Fsdk/Misc.fs" -#load "Fsdk/Process.fs" +#load "src/Fsdk/Misc.fs" +#load "src/Fsdk/Process.fs" open Fsdk open Fsdk.Process @@ -23,7 +23,7 @@ let rec FindFsxc(nestedCall: bool) : bool * FileInfo = let fsxCompiler = "fsxc.exe" #endif - let fsxcBinDir = Path.Combine(__SOURCE_DIRECTORY__, "fsxc", "bin") + let fsxcBinDir = Path.Combine(__SOURCE_DIRECTORY__, "src", "fsxc", "bin") let findFsxcExeFiles() = Directory.GetFiles(fsxcBinDir, fsxCompiler, SearchOption.AllDirectories) diff --git a/fsx-legacy.sln b/fsx-legacy.sln index 009ca847..8c8cd527 100644 --- a/fsx-legacy.sln +++ b/fsx-legacy.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25123.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsdk", "Fsdk\Fsdk-legacy.fsproj", "{4634F264-784E-42DA-B5A1-FE72125DEAFC}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsdk", "src\Fsdk\Fsdk-legacy.fsproj", "{4634F264-784E-42DA-B5A1-FE72125DEAFC}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsxc", "fsxc\fsxc-legacy.fsproj", "{56DA5F03-8F7F-44AB-B692-5A24DB134A8B}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsxc", "src\fsxc\fsxc-legacy.fsproj", "{56DA5F03-8F7F-44AB-B692-5A24DB134A8B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{8E1108BE-590F-4C6D-8496-A8AAEB8594D8}" ProjectSection(SolutionItems) = preProject @@ -51,8 +51,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{DBAE02AB scripts\fsx.bat = scripts\fsx.bat EndProjectSection EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsdk.Tests", "Fsdk.Tests\Fsdk.Tests-legacy.fsproj", "{43BA7E25-975B-4DF9-B274-EEF6C806C1D0}" -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsx", "fsx\fsx-legacy.fsproj", "{14E47DE0-49B3-4B58-9627-8C3F10A21D24}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsdk.Tests", "src\Fsdk.Tests\Fsdk.Tests-legacy.fsproj", "{43BA7E25-975B-4DF9-B274-EEF6C806C1D0}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsx", "src\fsx\fsx-legacy.fsproj", "{14E47DE0-49B3-4B58-9627-8C3F10A21D24}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/fsx.sln b/fsx.sln index 5be54513..a2a92505 100644 --- a/fsx.sln +++ b/fsx.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 25.0.1703.8 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsxc", "fsxc\fsxc.fsproj", "{9E754152-E69A-4DB9-B23A-3B72C189FF5A}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsxc", "src\fsxc\fsxc.fsproj", "{9E754152-E69A-4DB9-B23A-3B72C189FF5A}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsdk", "Fsdk\Fsdk.fsproj", "{B532D664-2864-4532-9673-3E52DD363BB9}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsdk", "src\Fsdk\Fsdk.fsproj", "{B532D664-2864-4532-9673-3E52DD363BB9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{17C46E45-4C73-4981-9EE4-686675C2DDBB}" ProjectSection(SolutionItems) = preProject @@ -52,8 +52,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{FD764CDA Tools\safeRun.fsx = Tools\safeRun.fsx EndProjectSection EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fsdk.Tests", "Fsdk.Tests\Fsdk.Tests.fsproj", "{43BA7E25-975B-4DF9-B274-EEF6C806C1D0}" -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsx", "fsx\fsx.fsproj", "{534A9824-CD0A-47FC-AEF0-9A5F04021507}" +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fsdk.Tests", "src\Fsdk.Tests\Fsdk.Tests.fsproj", "{43BA7E25-975B-4DF9-B274-EEF6C806C1D0}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsx", "src\fsx\fsx.fsproj", "{534A9824-CD0A-47FC-AEF0-9A5F04021507}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/scripts/install.sh b/scripts/install.sh index 4e634842..430f05e4 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -10,9 +10,9 @@ mkdir -p $FSX_INSTALL_DIR mkdir -p $BIN_INSTALL_DIR if [[ x"$Solution" == "xfsx.sln" ]]; then - cp -rfvp ./fsxc/bin/Release/net8.0/* $FSX_INSTALL_DIR + cp -rfvp ./src/fsxc/bin/Release/net8.0/* $FSX_INSTALL_DIR else - cp -rfvp ./fsxc/bin/Release/* $FSX_INSTALL_DIR + cp -rfvp ./src/fsxc/bin/Release/* $FSX_INSTALL_DIR fi cp -v ./scripts/launcher.sh "$BIN_INSTALL_DIR/fsx" chmod ugo+x "$BIN_INSTALL_DIR/fsx" diff --git a/scripts/make.fsx b/scripts/make.fsx index 70c657f7..242f0a3a 100644 --- a/scripts/make.fsx +++ b/scripts/make.fsx @@ -7,10 +7,10 @@ open System.Diagnostics #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" -#load "../Fsdk/Git.fs" -#load "../Fsdk/Network.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" +#load "../src/Fsdk/Git.fs" +#load "../src/Fsdk/Network.fs" open Fsdk open Fsdk.Process @@ -19,7 +19,7 @@ let ScriptsDir = __SOURCE_DIRECTORY__ |> DirectoryInfo let RootDir = Path.Combine(ScriptsDir.FullName, "..") |> DirectoryInfo let TestDir = Path.Combine(RootDir.FullName, "test") |> DirectoryInfo let ToolsDir = Path.Combine(RootDir.FullName, "Tools") |> DirectoryInfo -let FsdkDir = Path.Combine(RootDir.FullName, "Fsdk") |> DirectoryInfo +let FsdkDir = Path.Combine(RootDir.FullName, "src", "Fsdk") |> DirectoryInfo let NugetDir = Path.Combine(RootDir.FullName, ".nuget") |> DirectoryInfo let NugetExe = Path.Combine(NugetDir.FullName, "nuget.exe") |> FileInfo @@ -49,13 +49,14 @@ let mainBinariesDir binaryConfig = #if !LEGACY_FRAMEWORK Path.Combine( RootDir.FullName, + "src", "fsxc", "bin", binaryConfig.ToString(), "net8.0" ) #else - Path.Combine(RootDir.FullName, "fsxc", "bin", binaryConfig.ToString()) + Path.Combine(RootDir.FullName, "src", "fsxc", "bin", binaryConfig.ToString()) #endif |> DirectoryInfo @@ -209,7 +210,7 @@ let assemblyExecutableExtension = "exe" #endif -let releaseFolderPath = Path.Combine(RootDir.FullName, "fsx", "bin", "Release") +let releaseFolderPath = Path.Combine(RootDir.FullName, "src", "fsx", "bin", "Release") #if !LEGACY_FRAMEWORK let finalReleaseFolderPath = Path.Combine(releaseFolderPath, "net8.0") diff --git a/scripts/publish.fsx b/scripts/publish.fsx index b6e6defc..81d1942d 100644 --- a/scripts/publish.fsx +++ b/scripts/publish.fsx @@ -4,10 +4,10 @@ open System.IO #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" -#load "../Fsdk/Git.fs" -#load "../Fsdk/Network.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" +#load "../src/Fsdk/Git.fs" +#load "../src/Fsdk/Network.fs" open Fsdk open Fsdk.Process @@ -85,7 +85,7 @@ let Pack proj = Command = "dotnet" Arguments = sprintf - "pack %s/%s.fsproj -property:PackageVersion=%s" + "pack src/%s/%s.fsproj -property:PackageVersion=%s" proj proj fullVersion @@ -144,7 +144,7 @@ match githubEventName with Command = "dotnet" Arguments = sprintf - "nuget push %s/nupkg/%s.%s.nupkg --api-key %s --source %s" + "nuget push src/%s/nupkg/%s.%s.nupkg --api-key %s --source %s" proj proj fullVersion diff --git a/scripts/runTests.fsx b/scripts/runTests.fsx index 57275232..4691c919 100755 --- a/scripts/runTests.fsx +++ b/scripts/runTests.fsx @@ -9,10 +9,10 @@ open System.Diagnostics #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" -#load "../Fsdk/Git.fs" -#load "../Fsdk/Network.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" +#load "../src/Fsdk/Git.fs" +#load "../src/Fsdk/Network.fs" open Fsdk open Fsdk.Process diff --git a/scripts/runUnitTests.fsx b/scripts/runUnitTests.fsx index eb5d02af..e34ca600 100755 --- a/scripts/runUnitTests.fsx +++ b/scripts/runUnitTests.fsx @@ -11,10 +11,10 @@ open System.Diagnostics open System.Configuration #endif -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" -#load "../Fsdk/Git.fs" -#load "../Fsdk/Network.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" +#load "../src/Fsdk/Git.fs" +#load "../src/Fsdk/Network.fs" open Fsdk open Fsdk.Process @@ -50,6 +50,7 @@ let RunUnitTests() = let testTarget = Path.Combine( RootDir.FullName, + "src", testProjectName, testProjectName + ".fsproj" ) @@ -61,6 +62,7 @@ let RunUnitTests() = let testTargetDebug = Path.Combine( RootDir.FullName, + "src", testProjectName, "bin", "Debug", @@ -71,6 +73,7 @@ let RunUnitTests() = let testTargetRelease = Path.Combine( RootDir.FullName, + "src", testProjectName, "bin", "Release", diff --git a/Fsdk.Tests/AsyncCancellation.fs b/src/Fsdk.Tests/AsyncCancellation.fs similarity index 100% rename from Fsdk.Tests/AsyncCancellation.fs rename to src/Fsdk.Tests/AsyncCancellation.fs diff --git a/Fsdk.Tests/AsyncExtensions.fs b/src/Fsdk.Tests/AsyncExtensions.fs similarity index 100% rename from Fsdk.Tests/AsyncExtensions.fs rename to src/Fsdk.Tests/AsyncExtensions.fs diff --git a/Fsdk.Tests/FSharpUtil.fs b/src/Fsdk.Tests/FSharpUtil.fs similarity index 100% rename from Fsdk.Tests/FSharpUtil.fs rename to src/Fsdk.Tests/FSharpUtil.fs diff --git a/Fsdk.Tests/Fsdk.Tests-legacy.fsproj b/src/Fsdk.Tests/Fsdk.Tests-legacy.fsproj similarity index 98% rename from Fsdk.Tests/Fsdk.Tests-legacy.fsproj rename to src/Fsdk.Tests/Fsdk.Tests-legacy.fsproj index 33ebcd3d..a6eda494 100644 --- a/Fsdk.Tests/Fsdk.Tests-legacy.fsproj +++ b/src/Fsdk.Tests/Fsdk.Tests-legacy.fsproj @@ -53,7 +53,7 @@ - + diff --git a/Fsdk.Tests/Fsdk.Tests.fsproj b/src/Fsdk.Tests/Fsdk.Tests.fsproj similarity index 100% rename from Fsdk.Tests/Fsdk.Tests.fsproj rename to src/Fsdk.Tests/Fsdk.Tests.fsproj diff --git a/Fsdk.Tests/Program.fs b/src/Fsdk.Tests/Program.fs similarity index 100% rename from Fsdk.Tests/Program.fs rename to src/Fsdk.Tests/Program.fs diff --git a/Fsdk.Tests/Tsv.fs b/src/Fsdk.Tests/Tsv.fs similarity index 100% rename from Fsdk.Tests/Tsv.fs rename to src/Fsdk.Tests/Tsv.fs diff --git a/Fsdk.Tests/packages.config b/src/Fsdk.Tests/packages.config similarity index 100% rename from Fsdk.Tests/packages.config rename to src/Fsdk.Tests/packages.config diff --git a/Fsdk/AssemblyInfo.fs b/src/Fsdk/AssemblyInfo.fs similarity index 100% rename from Fsdk/AssemblyInfo.fs rename to src/Fsdk/AssemblyInfo.fs diff --git a/Fsdk/FSharpUtil.fs b/src/Fsdk/FSharpUtil.fs similarity index 100% rename from Fsdk/FSharpUtil.fs rename to src/Fsdk/FSharpUtil.fs diff --git a/Fsdk/Fsdk-legacy.fsproj b/src/Fsdk/Fsdk-legacy.fsproj similarity index 98% rename from Fsdk/Fsdk-legacy.fsproj rename to src/Fsdk/Fsdk-legacy.fsproj index 9182e28c..0b0512ff 100644 --- a/Fsdk/Fsdk-legacy.fsproj +++ b/src/Fsdk/Fsdk-legacy.fsproj @@ -59,7 +59,7 @@ - + diff --git a/Fsdk/Fsdk.fsproj b/src/Fsdk/Fsdk.fsproj similarity index 92% rename from Fsdk/Fsdk.fsproj rename to src/Fsdk/Fsdk.fsproj index 480569cd..ecd7acdc 100644 --- a/Fsdk/Fsdk.fsproj +++ b/src/Fsdk/Fsdk.fsproj @@ -32,14 +32,14 @@ - + diff --git a/fsx/fsx.fsproj b/src/fsx/fsx.fsproj similarity index 93% rename from fsx/fsx.fsproj rename to src/fsx/fsx.fsproj index 2bfe476e..addbadaf 100644 --- a/fsx/fsx.fsproj +++ b/src/fsx/fsx.fsproj @@ -44,13 +44,13 @@ diff --git a/fsxc/AssemblyInfo.fs b/src/fsxc/AssemblyInfo.fs similarity index 100% rename from fsxc/AssemblyInfo.fs rename to src/fsxc/AssemblyInfo.fs diff --git a/fsxc/Fsxc.fs b/src/fsxc/Fsxc.fs similarity index 100% rename from fsxc/Fsxc.fs rename to src/fsxc/Fsxc.fs diff --git a/fsxc/Program.fs b/src/fsxc/Program.fs similarity index 100% rename from fsxc/Program.fs rename to src/fsxc/Program.fs diff --git a/fsxc/fsxc-legacy.fsproj b/src/fsxc/fsxc-legacy.fsproj similarity index 98% rename from fsxc/fsxc-legacy.fsproj rename to src/fsxc/fsxc-legacy.fsproj index 6b337786..64ab6f92 100644 --- a/fsxc/fsxc-legacy.fsproj +++ b/src/fsxc/fsxc-legacy.fsproj @@ -61,7 +61,7 @@ - + diff --git a/fsxc/fsxc.fsproj b/src/fsxc/fsxc.fsproj similarity index 96% rename from fsxc/fsxc.fsproj rename to src/fsxc/fsxc.fsproj index 321c1f8c..9988fc9e 100644 --- a/fsxc/fsxc.fsproj +++ b/src/fsxc/fsxc.fsproj @@ -45,13 +45,13 @@ diff --git a/fsxc/packages.config b/src/fsxc/packages.config similarity index 100% rename from fsxc/packages.config rename to src/fsxc/packages.config diff --git a/test/testProcess.fsx b/test/testProcess.fsx index 3dc35aab..474283bf 100755 --- a/test/testProcess.fsx +++ b/test/testProcess.fsx @@ -6,8 +6,8 @@ open System.Linq #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" open Fsdk open Fsdk.Process diff --git a/test/testProcessConcurrency.fsx b/test/testProcessConcurrency.fsx index 06fbf683..f7e4e398 100755 --- a/test/testProcessConcurrency.fsx +++ b/test/testProcessConcurrency.fsx @@ -5,8 +5,8 @@ open System.IO #r "System.Configuration" open System.Configuration -#load "../Fsdk/Misc.fs" -#load "../Fsdk/Process.fs" +#load "../src/Fsdk/Misc.fs" +#load "../src/Fsdk/Process.fs" open Fsdk open Fsdk.Process From af7b00ca29d1d3750127b4daf2a2d650abc240fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Tue, 19 May 2026 14:51:53 +0800 Subject: [PATCH 2/5] Upgrade .NET from v8 to v10 --- .github/workflows/CI.yml | 50 ++++++++++++++++---------------- ReadMe.md | 2 +- Tools/rename.fsx | 2 +- scripts/install.sh | 2 +- scripts/make.fsx | 15 +++++++--- src/Fsdk.Tests/Fsdk.Tests.fsproj | 2 +- src/Fsdk/Network.fs | 2 +- src/fsx/fsx.fsproj | 2 +- src/fsxc/Fsxc.fs | 2 +- src/fsxc/fsxc.fsproj | 2 +- version.config | 2 +- 11 files changed, 45 insertions(+), 38 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9e815c35..dc41b0ab 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -17,9 +17,9 @@ jobs: needs: - sanity-check - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest container: - image: "ubuntu:24.04" + image: "ubuntu:26.04" env: NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} steps: @@ -30,7 +30,7 @@ jobs: run: | sudo apt install --yes git - sudo DEBIAN_FRONTEND=noninteractive apt install --yes dotnet8 + sudo DEBIAN_FRONTEND=noninteractive apt install --yes dotnet10 # workaround for https://github.com/actions/runner/issues/2033 - name: ownership workaround @@ -41,16 +41,16 @@ jobs: sanity-check: needs: - - macOS--dotnet8-and-mono + - macOS--dotnet10-and-mono - macOS--mono - - linux-newLTS-github--dotnet-and-newmono + - linux-oldLTS-github--dotnet-and-newmono - linux-newLTS-vanilla--stockmono - linux-newLTS-vanilla--newmono - - linux-newLTS-vanilla--dotnet8 + - linux-newLTS-vanilla--dotnet10 - windows--legacyFramework - - windows--dotnet8 + - windows--dotnet10 - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 with: @@ -74,10 +74,10 @@ jobs: if: github.event_name == 'pull_request' run: ./conventions/commitlint.sh --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose - - name: Setup .NET SDK 8.0.x + - name: Setup .NET SDK 10.0.x uses: actions/setup-dotnet@v1.7.2 with: - dotnet-version: '8.0.x' + dotnet-version: '10.0.x' - name: fantomless run: | dotnet new tool-manifest @@ -85,16 +85,16 @@ jobs: dotnet fantomless --recurse . git diff --exit-code - macOS--dotnet8-and-mono: + macOS--dotnet10-and-mono: runs-on: macOS-14 steps: - uses: actions/checkout@v1 - name: check mono version run: mono --version - - name: Setup .NET SDK 8.0.x + - name: Setup .NET SDK 10.0.x uses: actions/setup-dotnet@v1.7.2 with: - dotnet-version: '8.0.x' + dotnet-version: '10.0.x' - name: configure run: ./configure.sh - name: build in DEBUG mode @@ -145,7 +145,7 @@ jobs: - name: compile this repo's .fsx scripts with fsx run: ./compileFSharpScripts.fsx - linux-newLTS-github--dotnet-and-newmono: + linux-oldLTS-github--dotnet-and-newmono: runs-on: ubuntu-24.04 env: DOTNET_ROLL_FORWARD: major @@ -177,9 +177,9 @@ jobs: run: ./compileFSharpScripts.fsx linux-newLTS-vanilla--stockmono: - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest container: - image: "ubuntu:24.04" + image: "ubuntu:26.04" steps: - uses: actions/checkout@v1 - name: install sudo @@ -219,9 +219,9 @@ jobs: run: ./compileFSharpScripts.fsx linux-newLTS-vanilla--newmono: - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest container: - image: "ubuntu:24.04" + image: "ubuntu:26.04" steps: - uses: actions/checkout@v1 - name: install sudo @@ -262,16 +262,16 @@ jobs: - name: compile this repo's .fsx scripts with fsx run: ./compileFSharpScripts.fsx - linux-newLTS-vanilla--dotnet8: - runs-on: ubuntu-24.04 + linux-newLTS-vanilla--dotnet10: + runs-on: ubuntu-latest container: - image: "ubuntu:24.04" + image: "ubuntu:26.04" steps: - uses: actions/checkout@v1 - name: install sudo run: apt update && apt install --yes sudo - name: install dependencies - run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet8 + run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet10 # workaround for https://github.com/actions/runner/issues/2033 - name: ownership workaround @@ -324,14 +324,14 @@ jobs: - name: compile this repo's .fsx scripts with fsx run: .\Tools\fsi.bat compileFSharpScripts.fsx - windows--dotnet8: + windows--dotnet10: runs-on: windows-latest steps: - uses: actions/checkout@v1 - - name: Setup .NET SDK 8.0.x + - name: Setup .NET SDK 10.0.x uses: actions/setup-dotnet@v1.7.2 with: - dotnet-version: '8.0.x' + dotnet-version: '10.0.x' - name: build in DEBUG mode run: .\make.bat - name: run unit tests diff --git a/ReadMe.md b/ReadMe.md index e89627d7..0aecafe3 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -2,7 +2,7 @@ ## PUBLIC SERVICE ANNOUNCEMENT -THIS REPO IS FACING A COMPLETE OVERHAUL/REVAMP/RENOVATION IN ORDER TO SUPPORT .NET8. +THIS REPO IS FACING A COMPLETE OVERHAUL/REVAMP/RENOVATION IN ORDER TO SUPPORT .NET10. Unfinished tasks so far: * Revamp this ReadMe.md file to remove any mentions to Mono or the legacy .NET4.x framework. diff --git a/Tools/rename.fsx b/Tools/rename.fsx index b7f72649..8f9376bb 100755 --- a/Tools/rename.fsx +++ b/Tools/rename.fsx @@ -4,7 +4,7 @@ open System open System.IO #if LEGACY_FRAMEWORK -Console.Error.WriteLine "This script is only compatible with .NET8 or higher" +Console.Error.WriteLine "This script is only compatible with .NET10 or higher" Environment.Exit 1 #else diff --git a/scripts/install.sh b/scripts/install.sh index 430f05e4..eafdceaa 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -10,7 +10,7 @@ mkdir -p $FSX_INSTALL_DIR mkdir -p $BIN_INSTALL_DIR if [[ x"$Solution" == "xfsx.sln" ]]; then - cp -rfvp ./src/fsxc/bin/Release/net8.0/* $FSX_INSTALL_DIR + cp -rfvp ./src/fsxc/bin/Release/net10.0/* $FSX_INSTALL_DIR else cp -rfvp ./src/fsxc/bin/Release/* $FSX_INSTALL_DIR fi diff --git a/scripts/make.fsx b/scripts/make.fsx index 242f0a3a..f5bf5d5b 100644 --- a/scripts/make.fsx +++ b/scripts/make.fsx @@ -53,10 +53,16 @@ let mainBinariesDir binaryConfig = "fsxc", "bin", binaryConfig.ToString(), - "net8.0" + "net10.0" ) #else - Path.Combine(RootDir.FullName, "src", "fsxc", "bin", binaryConfig.ToString()) + Path.Combine( + RootDir.FullName, + "src", + "fsxc", + "bin", + binaryConfig.ToString() + ) #endif |> DirectoryInfo @@ -210,10 +216,11 @@ let assemblyExecutableExtension = "exe" #endif -let releaseFolderPath = Path.Combine(RootDir.FullName, "src", "fsx", "bin", "Release") +let releaseFolderPath = + Path.Combine(RootDir.FullName, "src", "fsx", "bin", "Release") #if !LEGACY_FRAMEWORK -let finalReleaseFolderPath = Path.Combine(releaseFolderPath, "net8.0") +let finalReleaseFolderPath = Path.Combine(releaseFolderPath, "net10.0") #else let finalReleaseFolderPath = releaseFolderPath #endif diff --git a/src/Fsdk.Tests/Fsdk.Tests.fsproj b/src/Fsdk.Tests/Fsdk.Tests.fsproj index 154e96b3..6133eea3 100644 --- a/src/Fsdk.Tests/Fsdk.Tests.fsproj +++ b/src/Fsdk.Tests/Fsdk.Tests.fsproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 false false diff --git a/src/Fsdk/Network.fs b/src/Fsdk/Network.fs index 3d893db6..f5637d97 100644 --- a/src/Fsdk/Network.fs +++ b/src/Fsdk/Network.fs @@ -491,7 +491,7 @@ module Network = #if !LEGACY_FRAMEWORK Console.Error.WriteLine - "WARNING: using nuget.exe is deprecated when using .NET8 or newer, consider using dotnet restore instead" + "WARNING: using nuget.exe is deprecated when using .NET10 or newer, consider using dotnet restore instead" #endif let cmd = CreateNugetCommand nugetExe command diff --git a/src/fsx/fsx.fsproj b/src/fsx/fsx.fsproj index addbadaf..d891a0a6 100644 --- a/src/fsx/fsx.fsproj +++ b/src/fsx/fsx.fsproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 true true diff --git a/src/fsxc/Fsxc.fs b/src/fsxc/Fsxc.fs index 681a3c9e..fb43e16f 100644 --- a/src/fsxc/Fsxc.fs +++ b/src/fsxc/Fsxc.fs @@ -811,7 +811,7 @@ let fsi = { CommandLineArgs = System.Environment.GetCommandLineArgs() } Exe - net8.0 + net10.0 . diff --git a/src/fsxc/fsxc.fsproj b/src/fsxc/fsxc.fsproj index 9988fc9e..037c6dae 100644 --- a/src/fsxc/fsxc.fsproj +++ b/src/fsxc/fsxc.fsproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 true fsxc diff --git a/version.config b/version.config index 699e7e4c..01e496c5 100644 --- a/version.config +++ b/version.config @@ -1 +1 @@ -BaseVersion=0.7.99 +BaseVersion=0.9.99 From 7533f981c06f7d97688fd620298aa65a10e890f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Tue, 19 May 2026 15:28:14 +0800 Subject: [PATCH 3/5] Fsdk.Tests: upgrade deps to fix build Even though we don't depend on Newtonsoft.Json directly, I guess transitive deps were: ``` Running unit tests... dotnet test /home/runner/work/fsx/fsx/src/Fsdk.Tests/Fsdk.Tests.fsproj Determining projects to restore... /home/runner/work/fsx/fsx/src/Fsdk.Tests/Fsdk.Tests.fsproj : error NU1903: Warning As Error: Package 'Newtonsoft.Json' 9.0.1 has a known high severity vulnerability, https://github.com/advisories/GHSA-5crp-9r3c-p9vr Restored /home/runner/work/fsx/fsx/src/Fsdk/Fsdk.fsproj (in 229 ms). Failed to restore /home/runner/work/fsx/fsx/src/Fsdk.Tests/Fsdk.Tests.fsproj (in 229 ms). Error when running 'dotnet test /home/runner/work/fsx/fsx/src/Fsdk.Tests/Fsdk.Tests.fsproj' FSI_0003.Fsdk.Process+ProcessFailed: ProcessFailed "Error when running 'dotnet test /home/runner/work/fsx/fsx/src/Fsdk.Tests/Fsdk.Tests.fsproj'" at FSI_0003.Fsdk.Process.ProcessResult.Unwrap(String errMsg) in /home/runner/work/fsx/fsx/src/Fsdk/Process.fs:line 139 at FSI_0003.Fsdk.Process.ProcessResult.UnwrapDefault() in /home/runner/work/fsx/fsx/src/Fsdk/Process.fs:line 151 at FSI_0006.RunUnitTests() in /home/runner/work/fsx/fsx/scripts/runUnitTests.fsx:line 135 at .$FSI_0006.main@() in /home/runner/work/fsx/fsx/scripts/runUnitTests.fsx:line 140 at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args) at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr) Stopped due to error Error: Process completed with exit code 1. ``` --- src/Fsdk.Tests/Fsdk.Tests.fsproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Fsdk.Tests/Fsdk.Tests.fsproj b/src/Fsdk.Tests/Fsdk.Tests.fsproj index 6133eea3..58a4f303 100644 --- a/src/Fsdk.Tests/Fsdk.Tests.fsproj +++ b/src/Fsdk.Tests/Fsdk.Tests.fsproj @@ -16,11 +16,11 @@ - + - - - + + + From 303c8b04d5afb4a8e25b03e781102a8f13d3ab8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Tue, 19 May 2026 15:54:50 +0800 Subject: [PATCH 4/5] One more LEGACY_FRAMEWORK wrapping to fix build Otherwise we get warnings as errors that are kinda impossible to fix today: ``` /home/runner/work/fsx/fsx/src/Fsdk/Network.fs(246,9): error FS0044: This construct is deprecated. WebRequest, HttpWebRequest, ServicePoint, and WebClient are obsolete. Use HttpClient instead. Settings on ServicePointManager no longer affect SslStream or HttpClient. [/home/runner/work/fsx/fsx/src/fsx/fsx.fsproj] ``` --- src/Fsdk/Network.fs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Fsdk/Network.fs b/src/Fsdk/Network.fs index f5637d97..4c5e432d 100644 --- a/src/Fsdk/Network.fs +++ b/src/Fsdk/Network.fs @@ -243,10 +243,12 @@ module Network = let private DownloadFileIgnoringSslCertificates (uri: Uri) : Async = +#if LEGACY_FRAMEWORK ServicePointManager.ServerCertificateValidationCallback <- System.Net.Security.RemoteCertificateValidationCallback(fun _ _ _ _ -> true ) +#endif async { try From 4afc6e096e7a92e335ef2af27af1beed436f301f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Tue, 19 May 2026 17:49:00 +0800 Subject: [PATCH 5/5] CI: remove old lanes I can't be bothered to fix them. If we need them in the future then I will create stable branches or whatever. --- .github/workflows/CI.yml | 143 --------------------------------------- 1 file changed, 143 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index dc41b0ab..8f841f59 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -42,12 +42,8 @@ jobs: sanity-check: needs: - macOS--dotnet10-and-mono - - macOS--mono - linux-oldLTS-github--dotnet-and-newmono - - linux-newLTS-vanilla--stockmono - - linux-newLTS-vanilla--newmono - linux-newLTS-vanilla--dotnet10 - - windows--legacyFramework - windows--dotnet10 runs-on: ubuntu-latest @@ -116,35 +112,6 @@ jobs: - name: compile this repo's .fsx scripts with fsx run: ./compileFSharpScripts.fsx - macOS--mono: - runs-on: macOS-14 - steps: - - uses: actions/checkout@v1 - - name: HACK to emulate dotnet uninstall - run: sudo rm -f `which dotnet` - - name: check mono version - run: mono --version - - name: configure - run: ./configure.sh - - name: build in DEBUG mode - run: make - - name: run unit tests - run: fsharpi --define:LEGACY_FRAMEWORK scripts/runUnitTests.fsx - - - name: install - run: | - # to clean Debug artifacts first (make install builds in Release config) - git clean -fdx - - ./configure.sh - make release - sudo make install - - - name: run tests - run: make check - - name: compile this repo's .fsx scripts with fsx - run: ./compileFSharpScripts.fsx - linux-oldLTS-github--dotnet-and-newmono: runs-on: ubuntu-24.04 env: @@ -176,92 +143,6 @@ jobs: - name: compile this repo's .fsx scripts with fsx run: ./compileFSharpScripts.fsx - linux-newLTS-vanilla--stockmono: - runs-on: ubuntu-latest - container: - image: "ubuntu:26.04" - steps: - - uses: actions/checkout@v1 - - name: install sudo - run: apt update && apt install --yes sudo - - name: install all dependencies - run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl fsharp nunit-console - - # workaround for https://github.com/actions/runner/issues/2033 - - name: ownership workaround - run: git config --global --add safe.directory '*' - - - name: check mono version - run: mono --version - - name: install dependencies - run: sudo apt install --yes fsharp - - name: check mono version - run: mono --version - - name: configure - run: ./configure.sh - - name: build in DEBUG mode - run: make - - - name: install - run: | - # to clean Debug artifacts first (make install builds in Release config) - git clean -fdx - - ./configure.sh - make release - sudo make install - - - name: run unit tests - run: ./scripts/runUnitTests.fsx - - name: run tests - run: make check - - name: compile this repo's .fsx scripts with fsx - run: ./compileFSharpScripts.fsx - - linux-newLTS-vanilla--newmono: - runs-on: ubuntu-latest - container: - image: "ubuntu:26.04" - steps: - - uses: actions/checkout@v1 - - name: install sudo - run: apt update && apt install --yes sudo - - name: install last version of mono (Microsoft APT repositories) - run: sudo ./scripts/CI/install_mono_from_microsoft_deb_packages.sh - - name: install rest of dependencies - run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl fsharp nunit-console - - # workaround for https://github.com/actions/runner/issues/2033 - - name: ownership workaround - run: git config --global --add safe.directory '*' - - - name: check mono version - run: mono --version - - name: install dependencies - run: sudo apt install --yes fsharp - - name: check mono version - run: mono --version - - name: configure - run: ./configure.sh - - name: build in DEBUG mode - run: make - - name: run unit tests - run: fsharpi --define:LEGACY_FRAMEWORK scripts/runUnitTests.fsx - - - name: install - run: | - # to clean Debug artifacts first (make install builds in Release config) - git clean -fdx - - ./configure.sh - make release - sudo make install - - - name: run tests - run: make check - - name: compile this repo's .fsx scripts with fsx - run: ./compileFSharpScripts.fsx - linux-newLTS-vanilla--dotnet10: runs-on: ubuntu-latest container: @@ -300,30 +181,6 @@ jobs: - name: compile this repo's .fsx scripts with fsx run: ./compileFSharpScripts.fsx - windows--legacyFramework: - runs-on: windows-2022 - steps: - - uses: actions/checkout@v1 - - name: HACK to emulate dotnet uninstall - run: del $(where.exe dotnet) - - name: build in DEBUG mode - run: .\make.bat - - name: run unit tests - run: .\Tools\fsi.bat scripts\runUnitTests.fsx - - - name: install - run: | - # to clean Debug artifacts first (make install builds in Release config) - git clean -fdx - - .\make.bat release - .\make.bat install - - - name: run tests - run: .\make.bat check - - name: compile this repo's .fsx scripts with fsx - run: .\Tools\fsi.bat compileFSharpScripts.fsx - windows--dotnet10: runs-on: windows-latest steps: