From 0c522d902339ad917593d3bde4448b7b8ef6088e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Feb 2026 12:04:01 +0000 Subject: [PATCH 1/2] Remove FSI testing setup files (SetupTesting.fsx, Test.fsx) The library is no longer actively developed using FSI for testing/development. Removes src/SetupTesting.fsx, src/Test.fsx, and updates the fsproj and CONTRIBUTING.md accordingly. Closes #1321 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 7 +- .../FSharp.Data.DesignTime.fsproj | 1 - src/SetupTesting.fsx | 53 ------- src/Test.fsx | 129 ------------------ 4 files changed, 3 insertions(+), 187 deletions(-) delete mode 100644 src/SetupTesting.fsx delete mode 100644 src/Test.fsx diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 37251f12f..e645dfbdf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -87,10 +87,9 @@ between _runtime_ and _design-time_ components, so you'll find at least two file ### Debugging -To debug the type generation, the best way is to change `FSharp.Data.DesignTime` project to a Console application, -rename `Test.fsx` to `Test.fs` and hit the Run command in the IDE, setting the breakpoints where you need them. -This will invoke all the type providers manually without locking the files in Visual Studio / Xamarin Studio. -You'll also see in the console output the complete dump of the generated types and expressions. +To debug the type generation, the best way is to change `FSharp.Data.DesignTime` project to a Console application and hit the Run command in the IDE, setting the breakpoints where you need them. +This will invoke all the type providers manually without locking the files in Visual Studio / Xamarin Studio. +You'll also see in the console output the complete dump of the generated types and expressions. This is also the process used for the signature tests. ## Documentation diff --git a/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj b/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj index 0d698e53f..d6681ce11 100755 --- a/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj +++ b/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj @@ -33,7 +33,6 @@ - diff --git a/src/SetupTesting.fsx b/src/SetupTesting.fsx deleted file mode 100644 index 62d17b245..000000000 --- a/src/SetupTesting.fsx +++ /dev/null @@ -1,53 +0,0 @@ -#r "System.Xml.Linq" - -open System -open System.IO -open System.Xml.Linq - -let generateSetupScript dir proj = - - let getElemName name = XName.Get name - - let getElemValue name (parent: XElement) = - let elem = parent.Element(getElemName name) - - if elem = null || String.IsNullOrEmpty elem.Value then - None - else - Some(elem.Value) - - let getAttrValue name (elem: XElement) = - let attr = elem.Attribute(XName.Get name) - - if attr = null || String.IsNullOrEmpty attr.Value then - None - else - Some(attr.Value) - - let (|??) (option1: 'a Option) option2 = - if option1.IsSome then option1 else option2 - - let fsProjFile = Path.Combine(dir, proj + ".fsproj") - let fsProjXml = XDocument.Load fsProjFile - - let refs = - fsProjXml.Document.Descendants(getElemName "Reference") - |> Seq.choose (fun elem -> getElemValue "HintPath" elem |?? getAttrValue "Include" elem) - |> Seq.map (fun ref -> ref.Replace(@"\", @"\\").Split(',').[0]) - |> Seq.filter (fun ref -> - ref <> "mscorlib" - && ref <> "FSharp.Core" - && not (ref.EndsWith "FSharp.Core.dll")) - |> Seq.map (fun ref -> "#r \"" + ref + "\"") - |> Seq.toList - - let fsFiles = - fsProjXml.Document.Descendants(getElemName "Compile") - |> Seq.choose (fun elem -> getAttrValue "Include" elem) - |> Seq.filter (Path.GetExtension >> (<>) ".fsi") - |> Seq.filter (Path.GetFileName >> (<>) "Test.fs") - |> Seq.map (fun path -> "#load \"" + path.Replace(@"\", @"\\") + "\"") - |> Seq.toList - - let tempFile = Path.Combine(dir, "__setup__" + proj + "__.fsx") - File.WriteAllLines(tempFile, refs @ fsFiles) diff --git a/src/Test.fsx b/src/Test.fsx deleted file mode 100644 index 2c0027122..000000000 --- a/src/Test.fsx +++ /dev/null @@ -1,129 +0,0 @@ -#load "SetupTesting.fsx" -let dir = __SOURCE_DIRECTORY__ + "/FSharp.Data.DesignTime" -let proj = "FSharp.Data.DesignTime" -SetupTesting.generateSetupScript (__SOURCE_DIRECTORY__ + "/FSharp.Data.DesignTime") "FSharp.Data.DesignTime" - -#load "FSharp.Data.DesignTime/__setup__FSharp.Data.DesignTime__.fsx" -#load "../paket-files/fsprojects/FSharp.TypeProviders.SDK/src/ProvidedTypesTesting.fs" -#load "../tests/FSharp.Data.DesignTime.Tests/TypeProviderInstantiation.fs" - -open System -open System.Globalization -open System.IO -open ProviderImplementation -open FSharp.Data -open FSharp.Data.Runtime - -let (++) a b = Path.Combine(a, b) - -let resolutionFolder = - __SOURCE_DIRECTORY__ ++ ".." ++ "tests" ++ "FSharp.Data.Tests" ++ "Data" - -let outputFolder = - __SOURCE_DIRECTORY__ - ++ ".." - ++ "tests" - ++ "FSharp.Data.DesignTime.Tests" - ++ "expected" - -let assemblyName = "FSharp.Data.dll" - -let dump signatureOnly ignoreOutput saveToFileSystem (inst: TypeProviderInstantiation) = - let root = __SOURCE_DIRECTORY__ ++ ".." ++ "bin" - let runtimeAssembly = root ++ "netstandard2.0" ++ assemblyName - let runtimeAssemblyRefs = TypeProviderInstantiation.GetRuntimeAssemblyRefs() - - inst.Dump( - resolutionFolder, - (if saveToFileSystem then outputFolder else ""), - runtimeAssembly, - runtimeAssemblyRefs, - signatureOnly, - ignoreOutput - ) - |> Console.WriteLine - -let dumpAll inst = dump false false false inst - -let parameters: HtmlInference.Parameters = - { MissingValues = TextConversions.DefaultMissingValues - CultureInfo = CultureInfo.InvariantCulture - UnitsOfMeasureProvider = StructuralInference.defaultUnitsOfMeasureProvider - PreferOptionals = false } - -let includeLayout = false - -let printTable tableName (url: string) = - url - |> HtmlDocument.Load - |> HtmlRuntime.getTables (Some parameters) includeLayout - |> List.filter (fun table -> table.Name = tableName) - |> List.iter (printfn "+++++++++++++++++++++++++++++++++++++\n%O") - -printTable "Overview" "https://en.wikipedia.org/wiki/List_of_Doctor_Who_serials" - -Html - { Sample = "doctor_who3.html" - PreferOptionals = false - IncludeLayoutTables = false - MissingValues = "NaN,NA,N/A,#N/A,:,-,TBA,TBD" - Culture = "" - Encoding = "" - ResolutionFolder = "" - EmbeddedResource = "" } -|> dumpAll - -Json - { Sample = "optionals.json" - SampleIsList = false - RootName = "" - Culture = "" - Encoding = "" - ResolutionFolder = "" - EmbeddedResource = "" - InferTypesFromValues = true - PreferDictionaries = false } -|> dumpAll - -Xml - { Sample = "JsonInXml.xml" - SampleIsList = true - Global = false - Culture = "" - Encoding = "" - ResolutionFolder = "" - EmbeddedResource = "" - InferTypesFromValues = true - Schema = "" } -|> dumpAll - -Csv - { Sample = "AirQuality.csv" - Separators = ";" - InferRows = Int32.MaxValue - Schema = "" - HasHeaders = true - IgnoreErrors = false - SkipRows = 0 - AssumeMissingValues = false - PreferOptionals = false - Quote = '"' - MissingValues = "NaN,NA,N/A,#N/A,:,-,TBA,TBD" - CacheRows = true - Culture = "" - Encoding = "" - ResolutionFolder = "" - EmbeddedResource = "" } -|> dumpAll - -let testCases = - __SOURCE_DIRECTORY__ - ++ ".." - ++ "tests" - ++ "FSharp.Data.DesignTime.Tests" - ++ "SignatureTestCases.config" - |> File.ReadAllLines - |> Array.map (TypeProviderInstantiation.Parse >> snd) - -for testCase in testCases do - dump false false true testCase From 412f01aa239e38c3c453f9ea26012f304003fd5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Feb 2026 12:06:41 +0000 Subject: [PATCH 2/2] ci: trigger CI checks