From 38c1629762e9f1be6da49ce36c6448319ea2bb19 Mon Sep 17 00:00:00 2001 From: HLWeil Date: Thu, 23 Jan 2025 13:51:48 +0100 Subject: [PATCH 1/7] update ARCtrl dependency --- build/BasicTasks.fs | 12 +- build/TestTasks.fs | 1 + global.json | 2 +- src/arc-to-invenio/API.fs | 4 +- src/arc-to-invenio/Program.fs | 34 +- src/arc-to-invenio/arc-to-invenio.fsproj | 6 +- src/arc-to-invenio/packages.lock.json | 555 +++++++---------------- tests/ConverterTests.fsproj | 6 +- tests/InternalUtils.fs | 35 -- tests/Main.fs | 2 +- tests/TestObjects.fs | 62 ++- 11 files changed, 207 insertions(+), 512 deletions(-) delete mode 100644 tests/InternalUtils.fs diff --git a/build/BasicTasks.fs b/build/BasicTasks.fs index d7f28ad..18d19ba 100644 --- a/build/BasicTasks.fs +++ b/build/BasicTasks.fs @@ -26,5 +26,15 @@ let clean = BuildTask.create "Clean" [] { let build = BuildTask.create "Build" [clean] { solutionFile - |> DotNet.build id + |> DotNet.build (fun p -> + let msBuildParams = + {p.MSBuildParams with + DisableInternalBinLog = true + } + { + p with + MSBuildParams = msBuildParams + } + |> DotNet.Options.withCustomParams (Some "-tl") + ) } \ No newline at end of file diff --git a/build/TestTasks.fs b/build/TestTasks.fs index 113f964..7a802b7 100644 --- a/build/TestTasks.fs +++ b/build/TestTasks.fs @@ -15,6 +15,7 @@ let runTests = BuildTask.create "RunTests" [clean; build] { Logger = Some "console;verbosity=detailed" Configuration = DotNet.BuildConfiguration.fromString configuration NoBuild = true + MSBuildParams = { testParams.MSBuildParams with DisableInternalBinLog = true } } ) testProject ) diff --git a/global.json b/global.json index 08fc58c..989a69c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.100", + "version": "8.0.100", "rollForward": "latestMinor" } } \ No newline at end of file diff --git a/src/arc-to-invenio/API.fs b/src/arc-to-invenio/API.fs index b71fdd9..7e1666e 100644 --- a/src/arc-to-invenio/API.fs +++ b/src/arc-to-invenio/API.fs @@ -1,14 +1,12 @@ module API open ARCtrl -open ARCtrl.ISA -open ARCtrl.NET open System.Text.Json open JsonDSL type JSONCreation() = - static member tryGetOrcid (p: ISA.Person) = + static member tryGetOrcid (p: Person) = match p.ORCID with | Option.Some orcid -> Option.Some( diff --git a/src/arc-to-invenio/Program.fs b/src/arc-to-invenio/Program.fs index 1bc4fb7..f1e427c 100644 --- a/src/arc-to-invenio/Program.fs +++ b/src/arc-to-invenio/Program.fs @@ -3,39 +3,9 @@ open Argu open ARCtrl open ARCtrl.FileSystem -open ARCtrl.ISA -open ARCtrl.NET -open Argu -open ARCtrl.NET.Contract - -let getAllFilePaths (directoryPath : string) = - let directoryPath = System.IO.Path.GetFullPath(directoryPath) - let rec allFiles dirs = - if Seq.isEmpty dirs then Seq.empty else - seq { yield! dirs |> Seq.collect Directory.EnumerateFiles - yield! dirs |> Seq.collect Directory.EnumerateDirectories |> allFiles } - - allFiles [directoryPath] - |> Seq.toArray - |> Array.map System.IO.Path.GetFullPath - |> Array.map (fun p -> p.Replace(directoryPath, "").Replace("\\","/")) -let loadARCCustom (arcPath : string) = - - //// EINFACH DIESE ZEIELE AUSTAUSCHEN - - let paths = getAllFilePaths arcPath - - let arc = ARC.fromFilePaths paths - - let contracts = arc.GetReadContracts() - - let fulFilledContracts = - contracts - |> Array.map (fulfillReadContract arcPath) +open Argu - arc.SetISAFromContracts(fulFilledContracts,true) - arc try let args = CLIArgs.cliArgParser.ParseCommandLine() @@ -58,7 +28,7 @@ try else Defaults.UnformattedSerializerOptions - (loadARCCustom arcPath) + ARC.load(arcPath) .ISA .Value |> API.JSONCreation.CreateMetadataRecordFromInvestigation(?PublicationDate = publicationDate) diff --git a/src/arc-to-invenio/arc-to-invenio.fsproj b/src/arc-to-invenio/arc-to-invenio.fsproj index 307c861..e9e0237 100644 --- a/src/arc-to-invenio/arc-to-invenio.fsproj +++ b/src/arc-to-invenio/arc-to-invenio.fsproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 true @@ -14,11 +14,9 @@ - - + - diff --git a/src/arc-to-invenio/packages.lock.json b/src/arc-to-invenio/packages.lock.json index 8cffa4c..b120aba 100644 --- a/src/arc-to-invenio/packages.lock.json +++ b/src/arc-to-invenio/packages.lock.json @@ -1,35 +1,22 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "ARCtrl": { "type": "Direct", - "requested": "[1.0.0-alpha3, 1.0.0-alpha3]", - "resolved": "1.0.0-alpha3", - "contentHash": "ykJkD4C57FS9Yvd50L3tqZv0d0/XXLVRLINLM2CuwMCpqAgSP4CW7I5T4na9v6elPyhiLHmvCRBYtwu3oTNtEw==", + "requested": "[2.3.1, )", + "resolved": "2.3.1", + "contentHash": "V9FUoSoqof+/qcjojIsvPxSzH5RtI7HPzikSS/r0t5E4us7JkJqSC3h+uqBdrnLcFVuAFlTDk+rWBpafuVVgtw==", "dependencies": { - "ARCtrl.CWL": "1.0.0-alpha3", - "ARCtrl.Contract": "1.0.0-alpha3", - "ARCtrl.FileSystem": "1.0.0-alpha3", - "ARCtrl.ISA": "1.0.0-alpha3", - "ARCtrl.ISA.Json": "1.0.0-alpha3", - "ARCtrl.ISA.Spreadsheet": "1.0.0-alpha3", - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)" - } - }, - "ARCtrl.NET": { - "type": "Direct", - "requested": "[1.0.0-alpha1, 1.0.0-alpha1]", - "resolved": "1.0.0-alpha1", - "contentHash": "o2zPJRHcBH/zIfrMxzQ8YOm7TkfXZItdIrRDl24pnniFkSrQkCBEk4wOstX6X65ei0EFedj5P5azbEtQUmethg==", - "dependencies": { - "ARCtrl": "1.0.0-alpha3", - "FSharp.Core": "7.0.400", - "FsSpreadsheet.ExcelIO": "4.1.0", - "JsonDSL": "0.0.5", - "LitXml": "0.1.0", - "NLog": "5.1.2" + "ARCtrl.CWL": "2.3.1", + "ARCtrl.Contract": "2.3.1", + "ARCtrl.FileSystem": "2.3.1", + "ARCtrl.Json": "2.3.1", + "ARCtrl.ROCrate": "2.3.1", + "ARCtrl.Spreadsheet": "2.3.1", + "Fable.SimpleHttp": "3.5.0", + "FsSpreadsheet.NET": "6.3.1", + "Thoth.Json.Newtonsoft": "0.2.0" } }, "Argu": { @@ -44,9 +31,9 @@ }, "FSharp.Core": { "type": "Direct", - "requested": "[7.*, )", - "resolved": "7.0.400", - "contentHash": "kJQ7TBQqd1d2VoODSgwFSAaApaBN0Fuu8mZt2XExmd3UzUxLjUsMn5Y5XhpsUWdnxOL8amp7VFg7cwhPllR4Qw==" + "requested": "[8.0.301, )", + "resolved": "8.0.301", + "contentHash": "I94+2zfAhWMJwPzVDFSlsutZvjPkaRvLVipf8b2O4AyzxKUBmevDkUBzcJBqSQNB1Ikig8xdphswoeKrObqx7Q==" }, "JsonDSL": { "type": "Direct", @@ -60,492 +47,262 @@ }, "ARCtrl.Contract": { "type": "Transitive", - "resolved": "1.0.0-alpha3", - "contentHash": "hPiauKVKPHzLMYwrx4f4ejwSltZ5MKAvuyJdfRvmDc1aCMezZVJT00hDcfKAXgokMV6Z4uyvlGrSoTJLdEqWHA==", + "resolved": "2.3.1", + "contentHash": "5G8Oa+yc22J1UPo7flfY/ZoWl8H+dfchqyTaY9vDPHUiKQc4Ck6yRBnvDOYG59fYL3OLKXSKnvNeIpmIu10Keg==", "dependencies": { - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)" + "ARCtrl.Core": "2.3.1", + "ARCtrl.Json": "2.3.1", + "ARCtrl.Spreadsheet": "2.3.1", + "ARCtrl.Yaml": "2.3.1" } }, - "ARCtrl.CWL": { + "ARCtrl.Core": { "type": "Transitive", - "resolved": "1.0.0-alpha3", - "contentHash": "0N5q3XUqY4PoN3K+Iujlsvvj4hW6Ss/8QeQflRdf8TKWMYWtNOw/cLgyUOHFCWuhypzfjWedf1JkfXQXcxvw0Q==", + "resolved": "2.3.1", + "contentHash": "7+/cy6XnpYyKm5Ia8aVq3tW6O7UU1WVEBrzvWVpwQPhgf1AJ9737sEZ6XdvEsq/l6NtdUFEFs4GC6SF0FZCFXA==", "dependencies": { - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)" + "ARCtrl.CWL": "2.3.1", + "ARCtrl.FileSystem": "2.3.1" } }, - "ARCtrl.FileSystem": { + "ARCtrl.CWL": { "type": "Transitive", - "resolved": "1.0.0-alpha3", - "contentHash": "GLm0+sVz92ikODdELHTdLky46jmEpnE+3haWpcxfwRIheJyyP2YSgkozILiXDZ3li/CqvH7pZ0dJKS/eNRdd9w==", + "resolved": "2.3.1", + "contentHash": "Gs/vzcE9He6vXwXrdT9ECSBqOG5ChxNh58o3XTzk4KCHXkxBzJSc9RFG3m/doTkjVfxMOblbIf8nCouv/ug1CQ==", "dependencies": { - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)" + "DynamicObj": "4.0.3", + "YAMLicious": "0.0.3" } }, - "ARCtrl.ISA": { + "ARCtrl.FileSystem": { "type": "Transitive", - "resolved": "1.0.0-alpha3", - "contentHash": "o5V9afp9G5zfa1fWpAm78hZ/aLK8B2L6KE3k/DwZY0xZJxJOHr0L7voXzl1nhYovASwBr68gFqHOtp1kKP51Pw==", + "resolved": "2.3.1", + "contentHash": "KI+MxH3Fst2VjQtDblNueUfEA2tZ0nozm0qaZ5hvApxu7fOvoHYtmTkELcvV0c1GvaKpNsSH/F0fgxtYoNXvnw==", "dependencies": { - "ARCtrl.FileSystem": "1.0.0-alpha3", - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)" + "Fable.Core": "4.3.0" } }, - "ARCtrl.ISA.Json": { + "ARCtrl.Json": { "type": "Transitive", - "resolved": "1.0.0-alpha3", - "contentHash": "yd9AkngQ1XEvUEAFNyQn474uh8XMncB+RrPxKc8IfoSC6q/lrAasa41agfcRpKh6SlC4yeNWxJiUV71oC53XwA==", + "resolved": "2.3.1", + "contentHash": "TMW98l2I60x87QaOwvvrCP84/5Sr4e6G/7fYDSVeaNQFg44S5/3u9v+WnAM1oiJIJFh841J7YXlzbpoKafHRRg==", "dependencies": { - "ARCtrl.ISA": "1.0.0-alpha3", - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)", - "NJsonSchema": "10.8.0", - "Thoth.Json": "10.1.0", - "Thoth.Json.Net": "11.0.0" + "ARCtrl.Core": "2.3.1", + "ARCtrl.ROCrate": "2.3.1", + "Thoth.Json.Core": "0.4.0" } }, - "ARCtrl.ISA.Spreadsheet": { + "ARCtrl.ROCrate": { "type": "Transitive", - "resolved": "1.0.0-alpha3", - "contentHash": "SwCG/FNAB6Ho95iR1iL4cOewRv2PdMIaQNgdYbAOjuQmnxesW5cn2u2y17K6x0DnARmuaulZFmVMy0ufOzfBvQ==", + "resolved": "2.3.1", + "contentHash": "5OoRJG5Iwa8R7q+DVyH7sp/q3bi3pdlIMHNy5HFcRxFjEBYp2q5wsPalczLs09v969J29ScTF0sVOOUrq46/vg==", "dependencies": { - "ARCtrl.FileSystem": "1.0.0-alpha3", - "ARCtrl.ISA": "1.0.0-alpha3", - "FSharp.Core": "7.0.400", - "Fable.Core": "[4.0.0, 4.1.0)", - "FsSpreadsheet": "[4.1.0]" + "DynamicObj": "4.0.3", + "Thoth.Json.Core": "0.4.0" } }, - "DocumentFormat.OpenXml": { + "ARCtrl.Spreadsheet": { "type": "Transitive", - "resolved": "2.12.3", - "contentHash": "qLww6khV25dTzGU3+9rG5vB6RbMoWuNA015151ZmazoepkvxW6/4a5u4QQASoXsZsBITsw5ZO0/Xpzm31tQ43g==", + "resolved": "2.3.1", + "contentHash": "dMgblfqnhQJiSu0D4BAcmL7MvPtjI4/X6bixm1zdPtbTekuQGs9pwOW+3qdwdmRakAmFgGiliFOPN0k/vxiFgw==", "dependencies": { - "System.IO.Packaging": "4.7.0" + "ARCtrl.Core": "2.3.1", + "ARCtrl.FileSystem": "2.3.1", + "FsSpreadsheet": "6.3.1" } }, - "Fable.Core": { - "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "crDLkyN4xADgnCqIneMUGVDo2oS92W4oufbIH/jwc8Fk7nIH6pS/Ds1rBB4R1jUfU1WM1k9GEPa4Up8cNj5VYw==" - }, - "FsSpreadsheet": { + "ARCtrl.ValidationPackages": { "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "le3gCV13dNtOYnIN5e8GblSFnwaAHeIKlNdMTi9Luh5CqfFUrNiTT2kwCaf3pC6blCwmOIJXgNGaH7TZdXCSTw==", + "resolved": "2.3.1", + "contentHash": "GpecsMHEHoM+WsfArPfXY3sI2tl8Cohp3zJnpkGmZELvCRgULhNRg/cAe1pICf9VwgOPyGkX0Dpo+PDAzyLTRg==", "dependencies": { - "FSharp.Core": "6.0.7", - "Fable.Core": "4.0.0" + "ARCtrl.Core": "2.3.1" } }, - "FsSpreadsheet.ExcelIO": { + "ARCtrl.Yaml": { "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "jcSb5sX3BU32bvt2wUt07fB4K4172dVp8beS/QTAL+ze84+3ur3SC+d++QYObQmHF9g8vmyGnni+c1wkAjtkWg==", + "resolved": "2.3.1", + "contentHash": "8eSzXGyR+mAaQJGVYpWj8DhVpEJAlxzeC1Q9sXmmKE4yHHtgEEwFGPREbEDOewdpDv5axJzoJKHFcZR9iMHf/g==", "dependencies": { - "DocumentFormat.OpenXml": "[2.12.3]", - "FSharp.Core": "6.0.7", - "FsSpreadsheet": "[4.0.0, 5.0.0)" + "ARCtrl.Core": "2.3.1", + "ARCtrl.ValidationPackages": "2.3.1", + "YAMLicious": "0.0.3" } }, - "LitXml": { + "DocumentFormat.OpenXml": { "type": "Transitive", - "resolved": "0.1.0", - "contentHash": "hSCzlK5V4f5Krlt3YjnEgFWmMUJZ8Ixp2BmTPnNEg4Cjat3NJ+QFejykC5REkXqtfI1U9AWoCLrBs4u2gRV7Mg==", + "resolved": "2.16.0", + "contentHash": "RhpnDgyyx1KjZm98T3w3bSXFHG/7ZNUaVmz4NAUA+jmV3PcVNZeW87Y04CpBNLdDHEMSspirfo0B5kLRaoE97w==", "dependencies": { - "FSharp.Core": "6.0.1" + "System.IO.Packaging": "4.7.0" } }, - "Microsoft.CSharp": { + "DynamicObj": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==", + "resolved": "4.0.3", + "contentHash": "lC9H9sMEBZPOCfPKrUFm9Hsh2RGWTIoy7yJCmZDn1+A564E4QFPMKki+FxNEVhKPLI6YkNANeaerU4BebfOBiw==", "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Dynamic.Runtime": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0" + "FSharp.Core": "8.0.301", + "Fable.Core": "4.3.0" } }, - "Microsoft.NETCore.Platforms": { + "Fable.Browser.Blob": { "type": "Transitive", "resolved": "1.1.0", - "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" - }, - "Microsoft.NETCore.Targets": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" - }, - "Namotion.Reflection": { - "type": "Transitive", - "resolved": "2.1.0", - "contentHash": "9t63RauDp+CWzMCcCRAGXLRqEVIw0djYisGaDWhgHuXSaz/Djjpp9gpumCWVLpuDHLNf4HUmYWJeBt4AUyJSWA==", - "dependencies": { - "Microsoft.CSharp": "4.3.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "11.0.2", - "contentHash": "IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==" - }, - "NJsonSchema": { - "type": "Transitive", - "resolved": "10.8.0", - "contentHash": "lChjsLWaxyvElh4WJjVhdIiCtx7rimYGFTxtSi2pAkZf0ZnKaXYIX484HCVyzbDDHejDZPgOrcfAJ3kqNSTONw==", - "dependencies": { - "Namotion.Reflection": "2.1.0", - "Newtonsoft.Json": "9.0.1" - } - }, - "NLog": { - "type": "Transitive", - "resolved": "5.1.2", - "contentHash": "JfQY93ure3IPVTN3eabBewBGvrcXcWIlaesFEXdy5UzIymfIT9yCgLISYtM0cOhjWziIaUr/6Z9NC2RwtjwrsQ==" - }, - "System.Collections": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "4.4.0" - } - }, - "System.Diagnostics.Debug": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Dynamic.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Globalization": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.Packaging": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "9VV4KAbgRQZ79iEoG40KIeZy38O30oWwewScAST879+oki8g/Wa2HXZQgrhDDxQM4GkP1PnRJll05NMiVPbYAw==" - }, - "System.Linq": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" } }, - "System.Linq.Expressions": { + "Fable.Browser.Dom": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.ObjectModel": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" } }, - "System.Reflection": { + "Fable.Browser.Event": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" } }, - "System.Reflection.Emit": { + "Fable.Browser.WebStorage": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" } }, - "System.Reflection.Emit.ILGeneration": { + "Fable.Browser.XMLHttpRequest": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" } }, - "System.Reflection.Emit.Lightweight": { + "Fable.Core": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "System.Reflection.Extensions": { + "Fable.Package.SDK": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" }, - "System.Reflection.Primitives": { + "Fable.SimpleHttp": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" } }, - "System.Reflection.TypeExtensions": { + "FsSpreadsheet": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "resolved": "6.3.1", + "contentHash": "vJUjS9fR1QftcWAFDtZxBKNuTe/PCAapI0Kj3ag46SzHbmlOIzz+Yu5INQ/0kgxoR5ZguX8ojNbLRHpeiaGGfQ==", "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" + "FSharp.Core": "8.0.301", + "Thoth.Json.Core": "0.2.1" } }, - "System.Resources.ResourceManager": { + "FsSpreadsheet.Net": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "resolved": "6.3.1", + "contentHash": "2Kw1QM6eJak1HIZipsGRROXb5hTEe5WPxmy3S/L+VzsA/nFNHMfKuY+BPmTJp2AY+2ybp+vDHd5tt9vi9o2Mcg==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" + "DocumentFormat.OpenXml": "2.16.0", + "FSharp.Core": "8.0.301", + "FsSpreadsheet": "[6.0.0, 7.0.0)", + "Thoth.Json.Newtonsoft": "0.1.0" } }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Runtime.Extensions": { + "Newtonsoft.Json": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, - "System.Runtime.Handles": { + "System.Configuration.ConfigurationManager": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "resolved": "4.4.0", + "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" + "System.Security.Cryptography.ProtectedData": "4.4.0" } }, - "System.Runtime.InteropServices": { + "System.IO.Packaging": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } + "resolved": "4.7.0", + "contentHash": "9VV4KAbgRQZ79iEoG40KIeZy38O30oWwewScAST879+oki8g/Wa2HXZQgrhDDxQM4GkP1PnRJll05NMiVPbYAw==" }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" }, - "System.Text.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", - "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" }, "System.Text.Json": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "/LZf/JrGyilojqwpaywb+sSz8Tew7ij4K/Sk+UW8AKfAK7KRhR6mKpKtTm06cYA7bCpGTWfYksIW+mVsdxPegQ==", "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "7.0.0" } }, - "System.Threading": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks": { + "Thoth.Json.Core": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" } }, - "Thoth.Json": { + "Thoth.Json.Newtonsoft": { "type": "Transitive", - "resolved": "10.1.0", - "contentHash": "2KpHPR0646KzD4WBlBgbLL4rgkoQ6yXKzqHCuSETlklb2dax/YzuLeUHc7axEBY9wHYiIMfpO0mtXmTu0XPh5w==", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.1.6" + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" } }, - "Thoth.Json.Net": { + "YAMLicious": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "ugheFKMHRO3ReobCENha5J6uexPrp+Bn2d+WEcFbXaA77sNBWtTlx2StB+7lX8prMqdvO5uqlPeHlg+9dSpkNg==", + "resolved": "0.0.3", + "contentHash": "hpvlVVMi+ZNMKt2Eg4XTo2VQtp7alcJdzNuRWiej9b2cD6N0Z4Ly4ksoju8H4Od20lNR29ftMg+Bb5ZuLZt7Wg==", "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.1.6", - "Newtonsoft.Json": "11.0.2" + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" } } } diff --git a/tests/ConverterTests.fsproj b/tests/ConverterTests.fsproj index 9c314f7..2950a6e 100644 --- a/tests/ConverterTests.fsproj +++ b/tests/ConverterTests.fsproj @@ -2,13 +2,12 @@ Exe - net6.0 + net8.0 false - @@ -17,11 +16,10 @@ - + - diff --git a/tests/InternalUtils.fs b/tests/InternalUtils.fs deleted file mode 100644 index 1b1a18f..0000000 --- a/tests/InternalUtils.fs +++ /dev/null @@ -1,35 +0,0 @@ -module internal InternalUtils - -open ARCtrl -open ARCtrl.NET.Contract -open ARCtrl.NET -open System.IO - -let getAllFilePaths (directoryPath : string) = - let directoryPath = System.IO.Path.GetFullPath(directoryPath) - let rec allFiles dirs = - if Seq.isEmpty dirs then Seq.empty else - seq { yield! dirs |> Seq.collect Directory.EnumerateFiles - yield! dirs |> Seq.collect Directory.EnumerateDirectories |> allFiles } - - allFiles [directoryPath] - |> Seq.toArray - |> Array.map System.IO.Path.GetFullPath - |> Array.map (fun p -> p.Replace(directoryPath, "").Replace("\\","/")) - -let loadARCCustom (arcPath : string) = - - //// EINFACH DIESE ZEIELE AUSTAUSCHEN - - let paths = getAllFilePaths arcPath - - let arc = ARC.fromFilePaths paths - - let contracts = arc.GetReadContracts() - - let fulFilledContracts = - contracts - |> Array.map (fulfillReadContract arcPath) - - arc.SetISAFromContracts(fulFilledContracts,true) - arc diff --git a/tests/Main.fs b/tests/Main.fs index 7cfd165..acc769d 100644 --- a/tests/Main.fs +++ b/tests/Main.fs @@ -3,4 +3,4 @@ open Expecto [] let main argv = - Tests.runTestsInAssembly defaultConfig argv + Tests.runTestsInAssemblyWithCLIArgs [||] argv diff --git a/tests/TestObjects.fs b/tests/TestObjects.fs index d667d54..964cbea 100644 --- a/tests/TestObjects.fs +++ b/tests/TestObjects.fs @@ -1,45 +1,44 @@ module TestObjects -open InternalUtils module Programmatic = open ARCtrl - open ARCtrl.NET - open ARCtrl.ISA + + let investigation_1 = ArcInvestigation( - Identifier.createMissingIdentifier(), + ARCtrl.Helper.Identifier.createMissingIdentifier(), title = "Programmatically created test investigation", description = "This is a test investigation created programmatically", contacts = - [| + ResizeArray [| Person.create( - FirstName = "John", - LastName = "Doe", - Email = "yes@yes.yes", - ORCID = "0000-0000-0000-0000", - Affiliation = "Institute 1" + firstName = "John", + lastName = "Doe", + email = "yes@yes.yes", + orcid = "0000-0000-0000-0000", + affiliation = "Institute 1" ) |] ) let investigation_invalid = ArcInvestigation( - Identifier.createMissingIdentifier(), + ARCtrl.Helper.Identifier.createMissingIdentifier(), title = "Programmatically created test investigation without persons" ) let investigation_invalid_no_email = ArcInvestigation( - Identifier.createMissingIdentifier(), + ARCtrl.Helper.Identifier.createMissingIdentifier(), title = "Programmatically created test investigation", contacts = - [| + ResizeArray [| Person.create( - FirstName = "John", - LastName = "Doe", - ORCID = "0000-0000-0000-0000" + firstName = "John", + lastName = "Doe", + orcid = "0000-0000-0000-0000" ) |] @@ -47,38 +46,37 @@ module Programmatic = let investigation_invalid_no_affiliation = ArcInvestigation( - Identifier.createMissingIdentifier(), + ARCtrl.Helper.Identifier.createMissingIdentifier(), title = "Programmatically created test investigation", contacts = - [| + ResizeArray [| Person.create( - FirstName = "John", - LastName = "Doe", - Email = "yes@yes.yes", - ORCID = "0000-0000-0000-0000" + firstName = "John", + lastName = "Doe", + email = "yes@yes.yes", + orcid = "0000-0000-0000-0000" ) |] ) let investigation_invalid_no_description = ArcInvestigation( - Identifier.createMissingIdentifier(), + ARCtrl.Helper.Identifier.createMissingIdentifier(), title = "Programmatically created test investigation", contacts = - [| + ResizeArray [| Person.create( - FirstName = "John", - LastName = "Doe", - Email = "yes@yes.yes", - ORCID = "0000-0000-0000-0000", - Affiliation = "Institute 1" + firstName = "John", + lastName = "Doe", + email = "yes@yes.yes", + orcid = "0000-0000-0000-0000", + affiliation = "Institute 1" ) |] ) module IO = open ARCtrl - open ARCtrl.NET - let investigation_1 = (loadARCCustom "fixtures/test-arc").ISA.Value - let investigation_invalid = (loadARCCustom "fixtures/invalid-arc").ISA.Value \ No newline at end of file + let investigation_1 = ARC.load("fixtures/test-arc").ISA.Value + let investigation_invalid = ARC.load("fixtures/invalid-arc").ISA.Value \ No newline at end of file From dbf8ff4e9a742f7752295c48e5914fea8acec751 Mon Sep 17 00:00:00 2001 From: HLWeil Date: Thu, 23 Jan 2025 13:52:17 +0100 Subject: [PATCH 2/7] add test against freetext component in study file #19 --- tests/CLITests.fs | 7 +++++++ .../test-arc-freetextComponent/.arc/.gitkeep | 0 .../test-arc-freetextComponent/assays/.gitkeep | 0 .../isa.investigation.xlsx | Bin 0 -> 12957 bytes .../test-arc-freetextComponent/runs/.gitkeep | 0 .../test-arc-freetextComponent/studies/.gitkeep | 0 .../studies/testerino/README.md | 0 .../studies/testerino/isa.study.xlsx | Bin 0 -> 9439 bytes .../studies/testerino/protocols/.gitkeep | 0 .../studies/testerino/resources/.gitkeep | 0 .../workflows/.gitkeep | 0 11 files changed, 7 insertions(+) create mode 100644 tests/fixtures/test-arc-freetextComponent/.arc/.gitkeep create mode 100644 tests/fixtures/test-arc-freetextComponent/assays/.gitkeep create mode 100644 tests/fixtures/test-arc-freetextComponent/isa.investigation.xlsx create mode 100644 tests/fixtures/test-arc-freetextComponent/runs/.gitkeep create mode 100644 tests/fixtures/test-arc-freetextComponent/studies/.gitkeep create mode 100644 tests/fixtures/test-arc-freetextComponent/studies/testerino/README.md create mode 100644 tests/fixtures/test-arc-freetextComponent/studies/testerino/isa.study.xlsx create mode 100644 tests/fixtures/test-arc-freetextComponent/studies/testerino/protocols/.gitkeep create mode 100644 tests/fixtures/test-arc-freetextComponent/studies/testerino/resources/.gitkeep create mode 100644 tests/fixtures/test-arc-freetextComponent/workflows/.gitkeep diff --git a/tests/CLITests.fs b/tests/CLITests.fs index c7eb878..7b7a11b 100644 --- a/tests/CLITests.fs +++ b/tests/CLITests.fs @@ -15,6 +15,7 @@ type CLIContext() = ?fmt: bool ) = fun f -> + let tool = $"arc-to-invenio" let args = [ @@ -56,5 +57,11 @@ let ``CLI Tests`` = yield! testFixture (CLIContext.create(p = "fixtures/test-arc", fmt=true)) [ "arc-to-invenio -p fixtures/test-arc -pd 2023-04-25 -fmt", (fun json -> fun () -> Expect.equal json ReferenceObjects.IO.investigation_1_formatted "json created by cli copmmand was incorrect") ] + yield! testFixture (CLIContext.create(p = "fixtures/test-arc-freetextComponent")) [ + "arc-to-invenio -p fixtures/test-arc-freetextComponent -pd 2023-04-25", (fun json -> fun () -> Expect.equal json ReferenceObjects.IO.investigation_1_unformatted "json created by cli copmmand was incorrect") + ] + yield! testFixture (CLIContext.create(p = "fixtures/test-arc-freetextComponent", fmt=true)) [ + "arc-to-invenio -p fixtures/test-arc-freetextComponent -pd 2023-04-25 -fmt", (fun json -> fun () -> Expect.equal json ReferenceObjects.IO.investigation_1_formatted "json created by cli copmmand was incorrect") + ] ] ] \ No newline at end of file diff --git a/tests/fixtures/test-arc-freetextComponent/.arc/.gitkeep b/tests/fixtures/test-arc-freetextComponent/.arc/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/fixtures/test-arc-freetextComponent/assays/.gitkeep b/tests/fixtures/test-arc-freetextComponent/assays/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/fixtures/test-arc-freetextComponent/isa.investigation.xlsx b/tests/fixtures/test-arc-freetextComponent/isa.investigation.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..24a4a346073874939770848d0e598bbe046d61c3 GIT binary patch literal 12957 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 literal 0 HcmV?d00001 diff --git a/tests/fixtures/test-arc-freetextComponent/studies/testerino/protocols/.gitkeep b/tests/fixtures/test-arc-freetextComponent/studies/testerino/protocols/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/fixtures/test-arc-freetextComponent/studies/testerino/resources/.gitkeep b/tests/fixtures/test-arc-freetextComponent/studies/testerino/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/fixtures/test-arc-freetextComponent/workflows/.gitkeep b/tests/fixtures/test-arc-freetextComponent/workflows/.gitkeep new file mode 100644 index 0000000..e69de29 From fa3786739db4d30e181ee3634e886b2a7a64b4d1 Mon Sep 17 00:00:00 2001 From: Kevin Schneider Date: Thu, 23 Jan 2025 14:04:04 +0100 Subject: [PATCH 3/7] update ci config --- .github/workflows/build-and-test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 74dead6..181eadf 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -21,11 +21,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.x.x + dotnet-version: 8.x.x - name: make script executable run: chmod u+x build.sh - name: Build and test @@ -37,11 +37,11 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.x.x + dotnet-version: 8.x.x - name: Build and test working-directory: ./ run: ./build.cmd runtests From 16f0d6b5ce29f0f51110d31aae4f2e2caca49bf7 Mon Sep 17 00:00:00 2001 From: HLWeil Date: Thu, 23 Jan 2025 14:24:18 +0100 Subject: [PATCH 4/7] increase dotnet version of build project --- build/build.fsproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.fsproj b/build/build.fsproj index 8c83a51..f7ed9a6 100644 --- a/build/build.fsproj +++ b/build/build.fsproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 Exe From 9c98347e0a4c7791fccc0d5afd69487470159ec9 Mon Sep 17 00:00:00 2001 From: Kevin Schneider Date: Thu, 23 Jan 2025 14:40:24 +0100 Subject: [PATCH 5/7] get rid of lockfile --- src/arc-to-invenio/arc-to-invenio.fsproj | 1 - src/arc-to-invenio/packages.lock.json | 310 ----------------------- 2 files changed, 311 deletions(-) delete mode 100644 src/arc-to-invenio/packages.lock.json diff --git a/src/arc-to-invenio/arc-to-invenio.fsproj b/src/arc-to-invenio/arc-to-invenio.fsproj index e9e0237..d1e3892 100644 --- a/src/arc-to-invenio/arc-to-invenio.fsproj +++ b/src/arc-to-invenio/arc-to-invenio.fsproj @@ -3,7 +3,6 @@ Exe net8.0 - true diff --git a/src/arc-to-invenio/packages.lock.json b/src/arc-to-invenio/packages.lock.json deleted file mode 100644 index b120aba..0000000 --- a/src/arc-to-invenio/packages.lock.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "version": 1, - "dependencies": { - "net8.0": { - "ARCtrl": { - "type": "Direct", - "requested": "[2.3.1, )", - "resolved": "2.3.1", - "contentHash": "V9FUoSoqof+/qcjojIsvPxSzH5RtI7HPzikSS/r0t5E4us7JkJqSC3h+uqBdrnLcFVuAFlTDk+rWBpafuVVgtw==", - "dependencies": { - "ARCtrl.CWL": "2.3.1", - "ARCtrl.Contract": "2.3.1", - "ARCtrl.FileSystem": "2.3.1", - "ARCtrl.Json": "2.3.1", - "ARCtrl.ROCrate": "2.3.1", - "ARCtrl.Spreadsheet": "2.3.1", - "Fable.SimpleHttp": "3.5.0", - "FsSpreadsheet.NET": "6.3.1", - "Thoth.Json.Newtonsoft": "0.2.0" - } - }, - "Argu": { - "type": "Direct", - "requested": "[6.1.1, 6.1.1]", - "resolved": "6.1.1", - "contentHash": "5SBLYihaZ6/YNpRU+0v0QLsCk7ABmOWNOUwkXVUql2w7kJ6Hi4AFhgIv5XLTtxTid5/xrJAL+PglQkNcjANCJg==", - "dependencies": { - "FSharp.Core": "4.3.2", - "System.Configuration.ConfigurationManager": "4.4.0" - } - }, - "FSharp.Core": { - "type": "Direct", - "requested": "[8.0.301, )", - "resolved": "8.0.301", - "contentHash": "I94+2zfAhWMJwPzVDFSlsutZvjPkaRvLVipf8b2O4AyzxKUBmevDkUBzcJBqSQNB1Ikig8xdphswoeKrObqx7Q==" - }, - "JsonDSL": { - "type": "Direct", - "requested": "[0.2.0, 0.2.0]", - "resolved": "0.2.0", - "contentHash": "bq41FAkRAlG+b1aWz5ZejrtJng2Pg8KqEotjGlucmacLOwEF/+qr0Remrn/GH/MPlYJsKcFTOY5IkN3/0ArqIg==", - "dependencies": { - "FSharp.Core": "6.0.6", - "System.Text.Json": "7.0.2" - } - }, - "ARCtrl.Contract": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "5G8Oa+yc22J1UPo7flfY/ZoWl8H+dfchqyTaY9vDPHUiKQc4Ck6yRBnvDOYG59fYL3OLKXSKnvNeIpmIu10Keg==", - "dependencies": { - "ARCtrl.Core": "2.3.1", - "ARCtrl.Json": "2.3.1", - "ARCtrl.Spreadsheet": "2.3.1", - "ARCtrl.Yaml": "2.3.1" - } - }, - "ARCtrl.Core": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "7+/cy6XnpYyKm5Ia8aVq3tW6O7UU1WVEBrzvWVpwQPhgf1AJ9737sEZ6XdvEsq/l6NtdUFEFs4GC6SF0FZCFXA==", - "dependencies": { - "ARCtrl.CWL": "2.3.1", - "ARCtrl.FileSystem": "2.3.1" - } - }, - "ARCtrl.CWL": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "Gs/vzcE9He6vXwXrdT9ECSBqOG5ChxNh58o3XTzk4KCHXkxBzJSc9RFG3m/doTkjVfxMOblbIf8nCouv/ug1CQ==", - "dependencies": { - "DynamicObj": "4.0.3", - "YAMLicious": "0.0.3" - } - }, - "ARCtrl.FileSystem": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "KI+MxH3Fst2VjQtDblNueUfEA2tZ0nozm0qaZ5hvApxu7fOvoHYtmTkELcvV0c1GvaKpNsSH/F0fgxtYoNXvnw==", - "dependencies": { - "Fable.Core": "4.3.0" - } - }, - "ARCtrl.Json": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "TMW98l2I60x87QaOwvvrCP84/5Sr4e6G/7fYDSVeaNQFg44S5/3u9v+WnAM1oiJIJFh841J7YXlzbpoKafHRRg==", - "dependencies": { - "ARCtrl.Core": "2.3.1", - "ARCtrl.ROCrate": "2.3.1", - "Thoth.Json.Core": "0.4.0" - } - }, - "ARCtrl.ROCrate": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "5OoRJG5Iwa8R7q+DVyH7sp/q3bi3pdlIMHNy5HFcRxFjEBYp2q5wsPalczLs09v969J29ScTF0sVOOUrq46/vg==", - "dependencies": { - "DynamicObj": "4.0.3", - "Thoth.Json.Core": "0.4.0" - } - }, - "ARCtrl.Spreadsheet": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "dMgblfqnhQJiSu0D4BAcmL7MvPtjI4/X6bixm1zdPtbTekuQGs9pwOW+3qdwdmRakAmFgGiliFOPN0k/vxiFgw==", - "dependencies": { - "ARCtrl.Core": "2.3.1", - "ARCtrl.FileSystem": "2.3.1", - "FsSpreadsheet": "6.3.1" - } - }, - "ARCtrl.ValidationPackages": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "GpecsMHEHoM+WsfArPfXY3sI2tl8Cohp3zJnpkGmZELvCRgULhNRg/cAe1pICf9VwgOPyGkX0Dpo+PDAzyLTRg==", - "dependencies": { - "ARCtrl.Core": "2.3.1" - } - }, - "ARCtrl.Yaml": { - "type": "Transitive", - "resolved": "2.3.1", - "contentHash": "8eSzXGyR+mAaQJGVYpWj8DhVpEJAlxzeC1Q9sXmmKE4yHHtgEEwFGPREbEDOewdpDv5axJzoJKHFcZR9iMHf/g==", - "dependencies": { - "ARCtrl.Core": "2.3.1", - "ARCtrl.ValidationPackages": "2.3.1", - "YAMLicious": "0.0.3" - } - }, - "DocumentFormat.OpenXml": { - "type": "Transitive", - "resolved": "2.16.0", - "contentHash": "RhpnDgyyx1KjZm98T3w3bSXFHG/7ZNUaVmz4NAUA+jmV3PcVNZeW87Y04CpBNLdDHEMSspirfo0B5kLRaoE97w==", - "dependencies": { - "System.IO.Packaging": "4.7.0" - } - }, - "DynamicObj": { - "type": "Transitive", - "resolved": "4.0.3", - "contentHash": "lC9H9sMEBZPOCfPKrUFm9Hsh2RGWTIoy7yJCmZDn1+A564E4QFPMKki+FxNEVhKPLI6YkNANeaerU4BebfOBiw==", - "dependencies": { - "FSharp.Core": "8.0.301", - "Fable.Core": "4.3.0" - } - }, - "Fable.Browser.Blob": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Dom": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Browser.Blob": "1.0.0", - "Fable.Browser.Event": "1.0.0", - "Fable.Browser.WebStorage": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Event": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.WebStorage": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Browser.Event": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.XMLHttpRequest": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Browser.Blob": "1.1.0", - "Fable.Browser.Event": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Core": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" - }, - "Fable.Package.SDK": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" - }, - "Fable.SimpleHttp": { - "type": "Transitive", - "resolved": "3.5.0", - "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Browser.Dom": "1.0.0", - "Fable.Browser.XMLHttpRequest": "1.1.0", - "Fable.Core": "3.0.0" - } - }, - "FsSpreadsheet": { - "type": "Transitive", - "resolved": "6.3.1", - "contentHash": "vJUjS9fR1QftcWAFDtZxBKNuTe/PCAapI0Kj3ag46SzHbmlOIzz+Yu5INQ/0kgxoR5ZguX8ojNbLRHpeiaGGfQ==", - "dependencies": { - "FSharp.Core": "8.0.301", - "Thoth.Json.Core": "0.2.1" - } - }, - "FsSpreadsheet.Net": { - "type": "Transitive", - "resolved": "6.3.1", - "contentHash": "2Kw1QM6eJak1HIZipsGRROXb5hTEe5WPxmy3S/L+VzsA/nFNHMfKuY+BPmTJp2AY+2ybp+vDHd5tt9vi9o2Mcg==", - "dependencies": { - "DocumentFormat.OpenXml": "2.16.0", - "FSharp.Core": "8.0.301", - "FsSpreadsheet": "[6.0.0, 7.0.0)", - "Thoth.Json.Newtonsoft": "0.1.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.1", - "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "4.4.0" - } - }, - "System.IO.Packaging": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "9VV4KAbgRQZ79iEoG40KIeZy38O30oWwewScAST879+oki8g/Wa2HXZQgrhDDxQM4GkP1PnRJll05NMiVPbYAw==" - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "7.0.2", - "contentHash": "/LZf/JrGyilojqwpaywb+sSz8Tew7ij4K/Sk+UW8AKfAK7KRhR6mKpKtTm06cYA7bCpGTWfYksIW+mVsdxPegQ==", - "dependencies": { - "System.Text.Encodings.Web": "7.0.0" - } - }, - "Thoth.Json.Core": { - "type": "Transitive", - "resolved": "0.4.0", - "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", - "dependencies": { - "FSharp.Core": "5.0.0", - "Fable.Core": "4.1.0", - "Fable.Package.SDK": "1.0.0" - } - }, - "Thoth.Json.Newtonsoft": { - "type": "Transitive", - "resolved": "0.2.0", - "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", - "dependencies": { - "FSharp.Core": "5.0.0", - "Fable.Core": "4.1.0", - "Fable.Package.SDK": "0.1.0", - "Newtonsoft.Json": "13.0.1", - "Thoth.Json.Core": "0.3.0" - } - }, - "YAMLicious": { - "type": "Transitive", - "resolved": "0.0.3", - "contentHash": "hpvlVVMi+ZNMKt2Eg4XTo2VQtp7alcJdzNuRWiej9b2cD6N0Z4Ly4ksoju8H4Od20lNR29ftMg+Bb5ZuLZt7Wg==", - "dependencies": { - "FSharp.Core": "8.0.300", - "Fable.Core": "4.3.0" - } - } - } - } -} \ No newline at end of file From 1d1d956d15c4720dce30bb65339e71458445e024 Mon Sep 17 00:00:00 2001 From: Kevin Schneider Date: Thu, 23 Jan 2025 14:40:55 +0100 Subject: [PATCH 6/7] pin arctrl version --- src/arc-to-invenio/arc-to-invenio.fsproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arc-to-invenio/arc-to-invenio.fsproj b/src/arc-to-invenio/arc-to-invenio.fsproj index d1e3892..49643fb 100644 --- a/src/arc-to-invenio/arc-to-invenio.fsproj +++ b/src/arc-to-invenio/arc-to-invenio.fsproj @@ -13,7 +13,7 @@ - + From 7b4b5ee0a7fc4bb376b5cda41637f843e07321db Mon Sep 17 00:00:00 2001 From: Kevin Schneider Date: Thu, 23 Jan 2025 14:59:46 +0100 Subject: [PATCH 7/7] update ci and dockerfile --- .github/dependabot.yml | 47 +++++++++ .github/workflows/build-and-test.yml | 47 --------- .github/workflows/manage-issues.yml | 31 ++++++ .github/workflows/manage-prs.yml | 21 ++++ .github/workflows/pipeline.yml | 137 ++++++++++++++++++--------- Dockerfile | 21 ++-- 6 files changed, 205 insertions(+), 99 deletions(-) create mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/build-and-test.yml create mode 100644 .github/workflows/manage-issues.yml create mode 100644 .github/workflows/manage-prs.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..a0a42ad --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,47 @@ +version: 2 +updates: + # Daily updates for NuGet packages + - package-ecosystem: nuget + directory: "/" + schedule: + interval: daily + groups: + DataPLANT: + patterns: + - "ARCtrl*" + - "FSSpreadsheet*" + - "DynamicObj*" + - "ARCTokenization*" + - "ControlledVocabulary*" + - "ARCExpect*" + - "ARCValidationPackages*" + - "AVPRClient*" + - "AVPRIndex*" + Tests: + patterns: + - "xunit*" + - "Expecto*" + - "Fable.Pyxpecto*" + Fable: + patterns: + - "Fable*" + Other: + exclude-patterns: + - "ARCtrl*" + - "FSSpreadsheet*" + - "DynamicObj*" + - "ARCTokenization*" + - "ControlledVocabulary*" + - "ARCExpect*" + - "ARCValidationPackages*" + - "AVPRClient*" + - "AVPRIndex*" + - "xunit*" + - "Expecto*" + - "Fable.Pyxpecto*" + + # Weekly updates for GitHub Actions + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: weekly diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml deleted file mode 100644 index 181eadf..0000000 --- a/.github/workflows/build-and-test.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Build and test - -on: - push: - branches: [ main ] - paths: -# this ensures that tests are run when adding new tests, but docker image is only published with the other pipeline when source code is changed - - 'tests/**' - - 'build/**' - pull_request: - branches: [ main ] - paths: -# here, also run tests when a pr targets source files - - 'tests/**' - - 'src/**' - - 'build/**' - -jobs: - build-and-test-linux: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 8.x.x - - name: make script executable - run: chmod u+x build.sh - - name: Build and test - working-directory: ./ - run: ./build.sh runtests - - build-and-test-windows: - - runs-on: windows-latest - - steps: - - uses: actions/checkout@v4 - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 8.x.x - - name: Build and test - working-directory: ./ - run: ./build.cmd runtests diff --git a/.github/workflows/manage-issues.yml b/.github/workflows/manage-issues.yml new file mode 100644 index 0000000..e22ce3d --- /dev/null +++ b/.github/workflows/manage-issues.yml @@ -0,0 +1,31 @@ +name: Manage issues + +on: + issues: + types: + - opened + - reopened + +jobs: + label_issues: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - run: gh issue edit "$NUMBER" --add-label "$LABELS" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + NUMBER: ${{ github.event.issue.number }} + LABELS: "Status: Needs Triage" + + add-to-project: + name: Add issue to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v1.0.2 + with: + # You can target a project in a different organization + # to the issue + project-url: https://github.com/orgs/nfdi4plants/projects/10 + github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} diff --git a/.github/workflows/manage-prs.yml b/.github/workflows/manage-prs.yml new file mode 100644 index 0000000..86a8037 --- /dev/null +++ b/.github/workflows/manage-prs.yml @@ -0,0 +1,21 @@ +name: Manage PRs + +on: + pull_request: + types: + - opened + - reopened + +jobs: + add-to-project: + name: Add PR to project + runs-on: ubuntu-latest + steps: + # add PR to project if it is a depdendabot PR + - uses: actions/add-to-project@v1.0.2 + if: ${{ contains(github.event.pull_request.labels.*.name, 'dependencies') }} + with: + # You can target a project in a different organization + # to the issue + project-url: https://github.com/orgs/nfdi4plants/projects/10 + github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index d8fcb5d..4aaf178 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -1,62 +1,112 @@ -name: Build, Test, and publish Docker image +name: "pipeline" on: push: branches: ['main'] - paths: -# this ensures that docker image is only published when source code or Dockerfile is changed - - 'src/**' - - 'Dockerfile' -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} + pull_request: + branches: ['main'] -jobs: - build-and-test-linux: +jobs: + setup: runs-on: ubuntu-latest + outputs: - steps: - - uses: actions/checkout@v3 - - name: Setup .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: 6.x.x - - name: make script executable - run: chmod u+x build.sh - - name: Build and test - working-directory: ./ - run: ./build.sh runtests - - build-and-test-windows: - - runs-on: windows-latest + # changed files output, might be relevant for other jobs + global_any_modified: ${{ steps.changed-files-yaml.outputs.global_any_modified }} + global_all_modified_files: ${{ steps.changed-files-yaml.outputs.global_all_modified_files }} + + tests_all_modified_files: ${{ steps.changed-files-yaml.outputs.tests_all_modified_files }} + tests_any_modified: ${{ steps.changed-files-yaml.outputs.tests_any_modified }} + + src_all_modified_files: ${{ steps.changed-files-yaml.outputs.src_all_modified_files }} + src_any_modified: ${{ steps.changed-files-yaml.outputs.src_any_modified }} + + dockerfile_modified: ${{ steps.changed-files-yaml.outputs.dockerfile_any_modified }} + + # trigger other jobs + trigger-build-and-test: ${{steps.set-triggers.outputs.trigger-build-and-test}} + trigger-release-docker: ${{steps.set-triggers.outputs.trigger-release-docker}} steps: - - uses: actions/checkout@v3 - - name: Setup .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: 6.x.x - - name: Build and test - working-directory: ./ - run: ./build.cmd runtests - - build-and-push-image: -# only publish docker images when tests succeed - needs: [build-and-test-linux, build-and-test-windows] + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. + submodules: true + - name: Get all relevant file changes + id: changed-files-yaml + uses: tj-actions/changed-files@v45 + with: + files_yaml: | + global: + - '**' + tests: + - tests/** + src: + - src/** + dockerfile: + - Dockerfile + + - name: set triggers + id: set-triggers + run: | + echo "trigger-build-and-test=${{ steps.changed-files-yaml.outputs.tests_any_modified == 'true' || steps.changed-files-yaml.outputs.src_any_modified == 'true' }}" >> $GITHUB_OUTPUT + echo "trigger-release-docker=${{ github.event_name == 'push' && (steps.changed-files-yaml.outputs.tests_any_modified == 'true' || steps.changed-files-yaml.outputs.src_any_modified == 'true' || steps.changed-files-yaml.outputs.dockerfile_modified == 'true') }}" >> $GITHUB_OUTPUT + + echo "$GITHUB_OUTPUT" + + - name: list outputs + run: | + echo "global:" + echo "- any: ${{ steps.changed-files-yaml.outputs.global_any_modified }}" + echo "- all: ${{ steps.changed-files-yaml.outputs.global_all_modified_files }}" + echo "tests:" + echo "- any: ${{ steps.changed-files-yaml.outputs.tests_any_modified }}" + echo "- all: ${{ steps.changed-files-yaml.outputs.tests_all_modified_files }}" + echo "src:" + echo "- any: ${{ steps.changed-files-yaml.outputs.src_any_modified }}" + echo "- all: ${{ steps.changed-files-yaml.outputs.src_all_modified_files }}" + echo "dockerfile: ${{ steps.changed-files-yaml.outputs.dockerfile_modified }}" + echo "computed outputs:" + echo "trigger build-and-test: ${{steps.set-triggers.outputs.trigger-build-and-test}}" + echo "trigger docker release: ${{steps.set-triggers.outputs.trigger-release-docker}}" + + - name: list triggered jobs + run: | + echo "this should trigger the following jobs:" + echo "build-and-test-projects: ${{steps.set-triggers.outputs.trigger-build-and-test}}" + echo "release-docker-image: ${{steps.set-triggers.outputs.trigger-release-docker}}" + + build-and-test: + name: "Build and test" + needs: setup + # https://github.com/actions/runner/issues/1173 + if: needs.setup.outputs.trigger-build-and-test == 'true' + uses: nfdi4plants/actions-workflows/.github/workflows/build-and-test-solution.yml@main + with: + macos: false + solution: ./arc-to-invenio.sln + checkout-submodules: true + configuration: Release + + release-docker-image: + name: "Release Docker image" + needs: [setup, build-and-test] + if: needs.setup.outputs.trigger-release-docker == 'true' runs-on: ubuntu-latest + env: + REGISTRY: ghcr.io + IMAGE_NAME: nfdi4plants/arc-to-invenio permissions: contents: read packages: write - steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to the Container registry - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + uses: docker/login-action@v3.3.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -64,14 +114,15 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + uses: docker/metadata-action@v5.6.1 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + uses: docker/build-push-action@v5.1.0 with: context: . + file: ./Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile index 80850c4..9b898c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,15 @@ -FROM mcr.microsoft.com/dotnet/sdk:6.0 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS base -ENV ARC_PATH=/arc +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY "src/arc-to-invenio" . +RUN dotnet restore "./arc-to-invenio.fsproj" +RUN dotnet build "./arc-to-invenio.fsproj" -c $BUILD_CONFIGURATION -o /build -COPY ./ /opt/arc-to-invenio -WORKDIR /opt/arc-to-invenio -RUN chmod +x build.sh -RUN ./build.sh runtests +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./arc-to-invenio" -c $BUILD_CONFIGURATION -o /publish -ENV PATH="${PATH}:/opt/arc-to-invenio/src/arc-to-invenio/bin/Release/net6.0" - -WORKDIR /arc \ No newline at end of file +FROM base AS final +COPY --from=publish /publish .