From f8f60e0e0c5491e89e8402ac56cbef3fe00aefb7 Mon Sep 17 00:00:00 2001 From: fpellet Date: Mon, 27 Jan 2025 19:31:12 +0100 Subject: [PATCH 1/2] Ignore only FSharp.Core --- .../Installation/ScriptGeneration.fs | 6 ++-- .../ScriptGeneration/LoadingScriptTests.fs | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Paket.Core/Installation/ScriptGeneration.fs b/src/Paket.Core/Installation/ScriptGeneration.fs index bdc6b24e08..3e429216d3 100644 --- a/src/Paket.Core/Installation/ScriptGeneration.fs +++ b/src/Paket.Core/Installation/ScriptGeneration.fs @@ -55,9 +55,9 @@ module ScriptGeneration = refls |> List.filter ( fun ref -> if scriptType = ScriptType.FSharp then match ref with - | Assembly info -> not (String.containsIgnoreCase "FSharp.Core" info.Name) - | Framework info -> not (String.containsIgnoreCase "FSharp.Core" info) - | LoadScript info -> not (String.containsIgnoreCase "FSharp.Core" info) + | Assembly info -> not (String.startsWithIgnoreCase "FSharp.Core" info.Name) + | Framework info -> not (String.startsWithIgnoreCase "FSharp.Core" info) + | LoadScript info -> not (String.startsWithIgnoreCase "FSharp.Core" info) else true ) diff --git a/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs b/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs index 55b5d15f09..5d9c00eba4 100644 --- a/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs +++ b/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs @@ -51,6 +51,34 @@ let ``generateFSharpScript generates load script``() = | Generate [ ReferenceType.LoadScript _ ] -> () | _ -> Assert.Fail("generated script was expected to be a single load script") +[] +let ``generateFSharpScript not generates load script for FSharp.Core``() = + let output = ScriptGeneration.generateScript ScriptType.FSharp { + PackageName = Paket.Domain.PackageName "FSharp.Core" + DependentScripts = List.empty + FrameworkReferences = List.empty + OrderedDllReferences = List.empty + PackageLoadScripts = ["foo.fsx"] + } + + match output with + | DoNotGenerate -> () + | _ -> Assert.Fail("generated script was expected to be a single load script") + +[] +let ``generateFSharpScript generates load script if contains FSharp.Core but not FSharp.Core``() = + let output = ScriptGeneration.generateScript ScriptType.FSharp { + PackageName = Paket.Domain.PackageName "Company.FSharp.Core" + DependentScripts = List.empty + FrameworkReferences = List.empty + OrderedDllReferences = List.empty + PackageLoadScripts = ["foo.fsx"] + } + + match output with + | Generate [ ReferenceType.LoadScript _ ] -> () + | _ -> Assert.Fail("generated script was expected to be a single load script") + let lockFileData = """NUGET From 180ccd2a1f6d67ae9fdb8e1e108449fadd2f10cf Mon Sep 17 00:00:00 2001 From: fpellet Date: Tue, 28 Jan 2025 09:55:44 +0100 Subject: [PATCH 2/2] Add test cases --- .../ScriptGeneration/LoadingScriptTests.fs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs b/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs index 5d9c00eba4..be7e8746f9 100644 --- a/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs +++ b/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs @@ -65,10 +65,21 @@ let ``generateFSharpScript not generates load script for FSharp.Core``() = | DoNotGenerate -> () | _ -> Assert.Fail("generated script was expected to be a single load script") +let ``generateFSharpScript generates load script if contains FSharp.Core but not FSharp.Core - case`` () = + [ + "Company.FSharp.Core" + "CompanyFSharp.Core" + "FSharp.Core.Company" + "FSharp.CoreCompany" + "CompanyFsharp.Core.Company" + "Company.Fsharp.CoreCompany" + ] + [] -let ``generateFSharpScript generates load script if contains FSharp.Core but not FSharp.Core``() = +[] +let ``generateFSharpScript generates load script if contains FSharp.Core but not FSharp.Core`` packageName = let output = ScriptGeneration.generateScript ScriptType.FSharp { - PackageName = Paket.Domain.PackageName "Company.FSharp.Core" + PackageName = Paket.Domain.PackageName packageName DependentScripts = List.empty FrameworkReferences = List.empty OrderedDllReferences = List.empty @@ -79,8 +90,6 @@ let ``generateFSharpScript generates load script if contains FSharp.Core but not | Generate [ ReferenceType.LoadScript _ ] -> () | _ -> Assert.Fail("generated script was expected to be a single load script") - - let lockFileData = """NUGET remote: http://www.nuget.org/api/v2 specs: