From 1d7bb79369a1b2bc9e1500f18c847f1b9eb44438 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 30 Mar 2024 14:50:50 -0300 Subject: [PATCH 001/113] allow digits in pulumi provider name (e.g auth0) (#1) --- Pulumi.FSharp.Myriad/Builder.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pulumi.FSharp.Myriad/Builder.fs b/Pulumi.FSharp.Myriad/Builder.fs index eef794f..f9d14a7 100644 --- a/Pulumi.FSharp.Myriad/Builder.fs +++ b/Pulumi.FSharp.Myriad/Builder.fs @@ -14,7 +14,7 @@ open FSharp.Text.RegexProvider // "azure:compute/virtualMachine:VirtualMachine" // CloudProvider - Always the same for each schema (azure here) type InfoProvider = - Regex<"(?[a-z-]+):(?[A-Za-z0-9.]+)(/(?\w+))?:(?\w+)"> + Regex<"(?[a-z0-9-]+):(?[A-Za-z0-9.]+)(/(?\w+))?:(?\w+)"> let typeInfoProvider = InfoProvider(RegexOptions.Compiled) From 8b94db7c065f5439d1a83befc4b4190bf1819619 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 13 Apr 2024 18:14:06 -0300 Subject: [PATCH 002/113] VSCode debugger profiles for debugging Myriad codegen (#2) * Add launch.json --- .vscode/launch.json | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..630a0c5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,39 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "inputs": [ + { + "id": "provider", + "description": "Pulumi provider name", + "type": "pickString", + "options": [ + "Aws", + "Azure", + "AzureAD", + "AzureNative", + "AzureNativeV2", + "Command", + "Docker", + "Gcp", + "Kubernetes", + "Random", + "Tls"] + } + ], + "configurations": [ + { + "name": "Debug Myriad code generation", + "type": "coreclr", + "request": "launch", + "program": "${userHome}/.nuget/packages/myriad.sdk/0.8.1/tools/net6.0/any/Myriad.dll", + "args": ["--inputfile", "${workspaceFolder}/Pulumi.FSharp.${input:provider}/Myriad.fs", "--outputfile", "${workspaceFolder}/Pulumi.FSharp.${input:provider}/Generated.fs", "--plugin", "${workspaceFolder}/Pulumi.FSharp.Myriad/bin/Debug/net6.0/Pulumi.FSharp.Myriad.dll"], + "cwd": "${workspaceFolder}/Pulumi.FSharp.${input:provider}/", + "stopAtEntry": true, + "justMyCode": true, + "console": "internalConsole" + }, + + ] +} From 40339978b91737d4dec7f9ab97dd79531f0d798a Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 13 Apr 2024 19:38:52 -0300 Subject: [PATCH 003/113] Upgrade Pulumi.Kubernetes to 4.10.0 (#3) * fix codegen for k8s 4.10.0 provider * clean up myriad and k8s fsproj files --- Pulumi.FSharp.Kubernetes/Myriad.fs | 2 +- .../Pulumi.FSharp.Kubernetes.fsproj | 100 ++++++++---------- Pulumi.FSharp.Myriad/Builder.fs | 28 +++-- Pulumi.FSharp.Myriad/Modules.fs | 1 + Pulumi.FSharp.Myriad/Operations.fs | 7 +- .../Pulumi.FSharp.Myriad.fsproj | 14 +-- 6 files changed, 72 insertions(+), 80 deletions(-) diff --git a/Pulumi.FSharp.Kubernetes/Myriad.fs b/Pulumi.FSharp.Kubernetes/Myriad.fs index 0de574b..538313d 100644 --- a/Pulumi.FSharp.Kubernetes/Myriad.fs +++ b/Pulumi.FSharp.Kubernetes/Myriad.fs @@ -1,3 +1,3 @@ module private Kubernetes -//module Force = let private nonce = 22515 \ No newline at end of file +module Force = let private nonce = 2060885708 \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj b/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj index 22c1b6a..7d58708 100644 --- a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj +++ b/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj @@ -1,58 +1,50 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi kubernetes - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + net6.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2020 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi kubernetes + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + 6.0.* + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - - + + + + + + + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Builder.fs b/Pulumi.FSharp.Myriad/Builder.fs index f9d14a7..3078e2c 100644 --- a/Pulumi.FSharp.Myriad/Builder.fs +++ b/Pulumi.FSharp.Myriad/Builder.fs @@ -120,13 +120,21 @@ let mapOperationType yieldSelector opsSelector = | { Type = PArchive _ } & pt -> opsSelector pt let createBuilderClass isType name pTypes = - let argsType = - name + "Args" + let argsType = $"{name}Args" let apply varname = + let args = + match varname with + | "args" -> argsType + // in Pulumi.Kubernetes 4.10.0, two new types were added which + // use ComponentResourceOptions instead of CustomResourceOptions + // This check should be made generic for all ResourceOption types + | _ when ["ConfigFile"; "ConfigGroup"] |> List.contains name -> "ComponentResourceOptions" + | _ -> "CustomResourceOptions" + Expr.app("List.fold", [ Expr.paren(Expr.lambda([ varname; "f" ], Expr.app("f", varname))) - Expr.paren(createInstance (match varname with | "args" -> argsType | _ -> "CustomResourceOptions") Expr.unit) + Expr.paren(createInstance args Expr.unit) Expr.ident(varname) ]) @@ -140,21 +148,23 @@ let createBuilderClass isType name pTypes = createInstance name let createOperations = - mapOperationType (createYieldFor argsType) - (createOperationsFor' argsType) + mapOperationType (createYieldFor argsType) (createOperationsFor' argsType) let operations = pTypes |> Seq.collect createOperations let inputListOfInput argName = - Expr.app(Expr.ident("inputList"), - Expr.list([Expr.app(Expr.ident("input"), - Expr.ident(argName))])) + Expr.app( + Expr.ident("inputList"), + Expr.list( + [Expr.app( + Expr.ident("input"), + Expr.ident(argName))])) let inputListOfResources argName = Expr.app(Expr.ident("inputList"), - Expr.paren(Expr.app(Expr.longIdent("Seq.map"), + Expr.paren(Expr.app(Expr.longIdent("Seq.map"), Expr.app(Expr.ident("input"), Expr.ident(argName))))) diff --git a/Pulumi.FSharp.Myriad/Modules.fs b/Pulumi.FSharp.Myriad/Modules.fs index 3ba7395..cc1e768 100644 --- a/Pulumi.FSharp.Myriad/Modules.fs +++ b/Pulumi.FSharp.Myriad/Modules.fs @@ -238,6 +238,7 @@ let private missingStatusTypes = "ResourceClaim" "PodScheduling" "ValidatingAdmissionPolicy" + "ServiceCIDR" |] |> Set.ofArray let createTypes (schema : JsonValue) = diff --git a/Pulumi.FSharp.Myriad/Operations.fs b/Pulumi.FSharp.Myriad/Operations.fs index 2025d4a..1cd217f 100644 --- a/Pulumi.FSharp.Myriad/Operations.fs +++ b/Pulumi.FSharp.Myriad/Operations.fs @@ -299,18 +299,15 @@ let croOperation operationName description argumentName (setAssignmentExpression PreXmlDoc.Create([ description ]) |> Some let updateCrosExpression setAssignmentExpression = - let setExpression = - Expr.set($"cros.{operationName}", setAssignmentExpression) - let lambdaExpression = Expr.sequential([ - setExpression + Expr.set($"cros.{operationName}", setAssignmentExpression) Expr.ident("cros") ]) let listConsLambdaFirstExpression = Expr.lambda([ - SimplePat.typed("cros", "CustomResourceOptions") + SimplePat.typed("cros", "ResourceOptions") ], lambdaExpression) let listConsExpressions = diff --git a/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj b/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj index f7f9dc6..794c302 100644 --- a/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj +++ b/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj @@ -1,14 +1,11 @@ - - + net6.0 preview NU1605,NU1608 true Pulumi.FSharp.Myriad - 6.0.* - true @@ -17,7 +14,6 @@ - @@ -37,15 +33,11 @@ - - - - - - + + \ No newline at end of file From d1582a9c69ff0191e902e9ac56dc4f034c7e8eb0 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 13 Apr 2024 23:06:24 -0300 Subject: [PATCH 004/113] fix(k8s): ast helper generates hash constraint for ResourceOptions (#4) --- Pulumi.FSharp.Myriad/AstHelpers.fs | 16 ++++++++++++---- Pulumi.FSharp.Myriad/Operations.fs | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Pulumi.FSharp.Myriad/AstHelpers.fs b/Pulumi.FSharp.Myriad/AstHelpers.fs index 0ace3cd..a2e028b 100644 --- a/Pulumi.FSharp.Myriad/AstHelpers.fs +++ b/Pulumi.FSharp.Myriad/AstHelpers.fs @@ -11,11 +11,19 @@ type SimplePat = /// str static member id(str) = SynSimplePat.Id(Ident.Create(str), None, false, false, false, range.Zero) - + + static member hashTyped (str, type': string) = + SynSimplePat.CreateTyped( + Ident.Create str, + SynType.HashConstraint( + SynType.CreateLongIdent(type'), + range.Zero)) + static member typed(str, type' : string) = - SynSimplePat.Typed(SimplePat.id(str), - SynType.CreateLongIdent(type'), - range.Zero) + SynSimplePat.Typed( + SimplePat.id(str), + SynType.CreateLongIdent(type'), + range.Zero) type SynPat with static member CreateTuple(args : SynPat list) = diff --git a/Pulumi.FSharp.Myriad/Operations.fs b/Pulumi.FSharp.Myriad/Operations.fs index 1cd217f..b31a8db 100644 --- a/Pulumi.FSharp.Myriad/Operations.fs +++ b/Pulumi.FSharp.Myriad/Operations.fs @@ -307,7 +307,7 @@ let croOperation operationName description argumentName (setAssignmentExpression let listConsLambdaFirstExpression = Expr.lambda([ - SimplePat.typed("cros", "ResourceOptions") + SimplePat.hashTyped("cros", "ResourceOptions") ], lambdaExpression) let listConsExpressions = From ba0b770b33d2978f369b152b5e148d45c2b0f865 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 13 Apr 2024 23:13:15 -0300 Subject: [PATCH 005/113] Use .NET 8 and Paket instead of NuGet where possible; upgrade all providers (#5) * convert nuget to paket, use .net8 --- .config/dotnet-tools.json | 2 +- .paket/Paket.Restore.targets | 560 +++++++++++++++++ Pulumi.FSharp.Aws/Myriad.fs | 2 +- Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj | 94 ++- Pulumi.FSharp.Aws/paket.references | 4 + Pulumi.FSharp.Azure/Myriad.fs | 2 +- .../Pulumi.FSharp.Azure.fsproj | 100 ++-- Pulumi.FSharp.Azure/paket.references | 4 + Pulumi.FSharp.AzureAD/Myriad.fs | 2 +- .../Pulumi.FSharp.AzureAD.fsproj | 93 ++- Pulumi.FSharp.AzureAD/paket.references | 4 + .../Pulumi.FSharp.AzureNative.Common.fsproj | 29 +- .../paket.references | 2 + Pulumi.FSharp.AzureNative/Myriad.fs | 4 +- .../Pulumi.FSharp.AzureNative.fsproj | 100 ++-- Pulumi.FSharp.AzureNative/paket.references | 4 + Pulumi.FSharp.AzureNativeV2/Myriad.fs | 2 +- .../Pulumi.FSharp.AzureNativeV2.fsproj | 97 ++- Pulumi.FSharp.AzureNativeV2/paket.references | 4 + Pulumi.FSharp.Command/Myriad.fs | 2 +- .../Pulumi.FSharp.Command.fsproj | 93 ++- Pulumi.FSharp.Command/paket.references | 4 + Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj | 60 +- Pulumi.FSharp.Core/paket.references | 2 + Pulumi.FSharp.Docker/.gitignore | 2 +- Pulumi.FSharp.Docker/Myriad.fs | 2 +- .../Pulumi.FSharp.Docker.fsproj | 95 ++- Pulumi.FSharp.Docker/paket.references | 4 + Pulumi.FSharp.Extensions.sln | 5 + Pulumi.FSharp.Gcp/Myriad.fs | 2 +- Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj | 93 ++- Pulumi.FSharp.Gcp/paket.references | 4 + .../.paket/Paket.Restore.targets | 560 +++++++++++++++++ Pulumi.FSharp.Kubernetes/Myriad.fs | 2 +- .../Pulumi.FSharp.Kubernetes.fsproj | 15 +- Pulumi.FSharp.Kubernetes/paket.references | 4 + Pulumi.FSharp.Myriad/Generator.fs | 87 ++- .../Pulumi.FSharp.Myriad.fsproj | 80 ++- Pulumi.FSharp.Myriad/paket.references | 6 + .../Pulumi.FSharp.NuGet.Test.fsproj | 24 +- Pulumi.FSharp.NuGet.Test/paket.references | 10 + Pulumi.FSharp.Random/Myriad.fs | 2 +- .../Pulumi.FSharp.Random.fsproj | 93 ++- Pulumi.FSharp.Random/paket.references | 4 + Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj | 17 +- Pulumi.FSharp.Test/paket.references | 1 + Pulumi.FSharp.Tls/Myriad.fs | 2 +- Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj | 93 ++- Pulumi.FSharp.Tls/paket.references | 4 + global.json | 3 +- paket.dependencies | 46 ++ paket.lock | 565 ++++++++++++++++++ 52 files changed, 2370 insertions(+), 725 deletions(-) create mode 100644 .paket/Paket.Restore.targets create mode 100644 Pulumi.FSharp.Aws/paket.references create mode 100644 Pulumi.FSharp.Azure/paket.references create mode 100644 Pulumi.FSharp.AzureAD/paket.references create mode 100644 Pulumi.FSharp.AzureNative.Common/paket.references create mode 100644 Pulumi.FSharp.AzureNative/paket.references create mode 100644 Pulumi.FSharp.AzureNativeV2/paket.references create mode 100644 Pulumi.FSharp.Command/paket.references create mode 100644 Pulumi.FSharp.Core/paket.references create mode 100644 Pulumi.FSharp.Docker/paket.references create mode 100644 Pulumi.FSharp.Gcp/paket.references create mode 100644 Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets create mode 100644 Pulumi.FSharp.Kubernetes/paket.references create mode 100644 Pulumi.FSharp.Myriad/paket.references create mode 100644 Pulumi.FSharp.NuGet.Test/paket.references create mode 100644 Pulumi.FSharp.Random/paket.references create mode 100644 Pulumi.FSharp.Test/paket.references create mode 100644 Pulumi.FSharp.Tls/paket.references create mode 100644 paket.dependencies create mode 100644 paket.lock diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index da3c625..00d5ac3 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -9,7 +9,7 @@ ] }, "paket": { - "version": "6.0.6", + "version": "8.0.3", "commands": [ "paket" ] diff --git a/.paket/Paket.Restore.targets b/.paket/Paket.Restore.targets new file mode 100644 index 0000000..c66062b --- /dev/null +++ b/.paket/Paket.Restore.targets @@ -0,0 +1,560 @@ + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + $(MSBuildVersion) + 15.0.0 + false + true + + true + $(MSBuildThisFileDirectory) + $(MSBuildThisFileDirectory)..\ + $(PaketRootPath)paket-files\paket.restore.cached + $(PaketRootPath)paket.lock + classic + proj + assembly + native + /Library/Frameworks/Mono.framework/Commands/mono + mono + + + $(PaketRootPath)paket.bootstrapper.exe + $(PaketToolsPath)paket.bootstrapper.exe + $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\ + + "$(PaketBootStrapperExePath)" + $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)" + + + + + true + true + + + True + + + False + + $(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/')) + + + + + + + + + $(PaketRootPath)paket + $(PaketToolsPath)paket + + + + + + $(PaketRootPath)paket.exe + $(PaketToolsPath)paket.exe + + + + + + <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json")) + <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"')) + <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false + + + + + + + + + + + <_PaketCommand>dotnet paket + + + + + + $(PaketToolsPath)paket + $(PaketBootStrapperExeDir)paket + + + paket + + + + + <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)")) + <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)" + <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" + <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)" + + + + + + + + + + + + + + + + + + + + + true + $(NoWarn);NU1603;NU1604;NU1605;NU1608 + false + true + + + + + + + + + $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) + + + + + + + $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[0].Replace(`"`, ``).Replace(` `, ``)) + $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[1].Replace(`"`, ``).Replace(` `, ``)) + + + + + %(PaketRestoreCachedKeyValue.Value) + %(PaketRestoreCachedKeyValue.Value) + + + + + true + false + true + + + + + true + + + + + + + + + + + + + + + + + + + $(PaketIntermediateOutputPath)\$(MSBuildProjectFile).paket.references.cached + + $(MSBuildProjectFullPath).paket.references + + $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references + + $(MSBuildProjectDirectory)\paket.references + + false + true + true + references-file-or-cache-not-found + + + + + $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)')) + $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)')) + references-file + false + + + + + false + + + + + true + target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) + + + + + + + + + + + false + true + + + + + + + + + + + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[6]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[7]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[8]) + + + %(PaketReferencesFileLinesInfo.PackageVersion) + All + runtime + $(ExcludeAssets);contentFiles + $(ExcludeAssets);build;buildMultitargeting;buildTransitive + %(PaketReferencesFileLinesInfo.Aliases) + true + true + + + + + + $(PaketIntermediateOutputPath)/$(MSBuildProjectFile).paket.clitools + + + + + + + + + $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0]) + $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1]) + + + %(PaketCliToolFileLinesInfo.PackageVersion) + + + + + + + + + + false + + + + + + <_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/> + + + + + + $(MSBuildProjectDirectory)/$(MSBuildProjectFile) + true + false + true + false + true + false + true + false + true + false + true + $(PaketIntermediateOutputPath)\$(Configuration) + $(PaketIntermediateOutputPath) + + + + <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.$(PackageVersion.Split(`+`)[0]).nuspec"/> + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pulumi.FSharp.Aws/Myriad.fs b/Pulumi.FSharp.Aws/Myriad.fs index 72521b5..32318d5 100644 --- a/Pulumi.FSharp.Aws/Myriad.fs +++ b/Pulumi.FSharp.Aws/Myriad.fs @@ -1,3 +1,3 @@ module private Aws -//module Force = let private nonce = 16490 \ No newline at end of file +module Force = let private nonce = 1304539646 \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj b/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj index aa23bc4..3d9dc0d 100644 --- a/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj +++ b/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj @@ -1,58 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi aws - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2020 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi aws + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/paket.references b/Pulumi.FSharp.Aws/paket.references new file mode 100644 index 0000000..6352dd5 --- /dev/null +++ b/Pulumi.FSharp.Aws/paket.references @@ -0,0 +1,4 @@ +Pulumi.Aws +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Myriad.fs b/Pulumi.FSharp.Azure/Myriad.fs index adc311d..a0a8ec8 100644 --- a/Pulumi.FSharp.Azure/Myriad.fs +++ b/Pulumi.FSharp.Azure/Myriad.fs @@ -1,3 +1,3 @@ module private Azure -//module Force = let private nonce = 965 \ No newline at end of file +module Force = let private nonce = 389621788 \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj b/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj index 9bf2874..863590d 100644 --- a/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj +++ b/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj @@ -1,62 +1,46 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2020 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi azure + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - - - - + + + + + + + + + + + + + + + Myriad.fs + + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/paket.references b/Pulumi.FSharp.Azure/paket.references new file mode 100644 index 0000000..b51f677 --- /dev/null +++ b/Pulumi.FSharp.Azure/paket.references @@ -0,0 +1,4 @@ +Pulumi.Azure +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/Myriad.fs b/Pulumi.FSharp.AzureAD/Myriad.fs index 7440b95..3f8d47b 100644 --- a/Pulumi.FSharp.AzureAD/Myriad.fs +++ b/Pulumi.FSharp.AzureAD/Myriad.fs @@ -1,3 +1,3 @@ module private AzureAD -//module Force = let private nonce = 27550 \ No newline at end of file +module Force = let private nonce = 345009259 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj b/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj index 45c6c49..b856324 100644 --- a/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj +++ b/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj @@ -1,57 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azuread - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi azuread + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/paket.references b/Pulumi.FSharp.AzureAD/paket.references new file mode 100644 index 0000000..c20466d --- /dev/null +++ b/Pulumi.FSharp.AzureAD/paket.references @@ -0,0 +1,4 @@ +Pulumi.AzureAD +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj b/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj index ff83af5..25296a9 100644 --- a/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj +++ b/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj @@ -1,17 +1,12 @@ - - - - net6.0 - true - - - - - - - - - - - - + + + + net8.0 + true + + + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative.Common/paket.references b/Pulumi.FSharp.AzureNative.Common/paket.references new file mode 100644 index 0000000..a84520e --- /dev/null +++ b/Pulumi.FSharp.AzureNative.Common/paket.references @@ -0,0 +1,2 @@ +Pulumi.FSharp +FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/Myriad.fs b/Pulumi.FSharp.AzureNative/Myriad.fs index 6cda004..492702a 100644 --- a/Pulumi.FSharp.AzureNative/Myriad.fs +++ b/Pulumi.FSharp.AzureNative/Myriad.fs @@ -1,3 +1,3 @@ -module private AzureNative +module private Azure -module Force = let private nonce = 1738045662 \ No newline at end of file +module Force = let private nonce = 275494408 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj b/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj index 8a531b2..8786f89 100644 --- a/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj +++ b/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj @@ -1,61 +1,47 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi azure + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - - - + + + + + + + + + + + + + + + Myriad.fs + + + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/paket.references b/Pulumi.FSharp.AzureNative/paket.references new file mode 100644 index 0000000..4733feb --- /dev/null +++ b/Pulumi.FSharp.AzureNative/paket.references @@ -0,0 +1,4 @@ +Pulumi.AzureNative +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/Myriad.fs b/Pulumi.FSharp.AzureNativeV2/Myriad.fs index 28fb767..3f04143 100644 --- a/Pulumi.FSharp.AzureNativeV2/Myriad.fs +++ b/Pulumi.FSharp.AzureNativeV2/Myriad.fs @@ -1,3 +1,3 @@ module private AzureNativeV2 -module Force = let private nonce = 1827270720 \ No newline at end of file +module Force = let private nonce = 11448757 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj b/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj index c69af4b..23d3ccd 100644 --- a/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj +++ b/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj @@ -1,59 +1,46 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi azure + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/paket.references b/Pulumi.FSharp.AzureNativeV2/paket.references new file mode 100644 index 0000000..4733feb --- /dev/null +++ b/Pulumi.FSharp.AzureNativeV2/paket.references @@ -0,0 +1,4 @@ +Pulumi.AzureNative +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Command/Myriad.fs b/Pulumi.FSharp.Command/Myriad.fs index e9ff8c9..e37f3f0 100644 --- a/Pulumi.FSharp.Command/Myriad.fs +++ b/Pulumi.FSharp.Command/Myriad.fs @@ -1,3 +1,3 @@ module private Command -module Force = let private nonce = 1734416139 \ No newline at end of file +module Force = let private nonce = 1049483746 \ No newline at end of file diff --git a/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj b/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj index 2d7edef..f3887ce 100644 --- a/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj +++ b/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj @@ -1,57 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi command - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi command + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Command/paket.references b/Pulumi.FSharp.Command/paket.references new file mode 100644 index 0000000..1213caa --- /dev/null +++ b/Pulumi.FSharp.Command/paket.references @@ -0,0 +1,4 @@ +Pulumi.Command +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj b/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj index f7a160a..e88c272 100644 --- a/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj +++ b/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj @@ -1,34 +1,26 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - 3.1.4 - NU1605,NU1608 - true - 6.0.* - - - - - - - - - - - - - - - - - + + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2020 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi azure + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + 3.1.4 + NU1605,NU1608 + true + + + + + + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Core/paket.references b/Pulumi.FSharp.Core/paket.references new file mode 100644 index 0000000..a84520e --- /dev/null +++ b/Pulumi.FSharp.Core/paket.references @@ -0,0 +1,2 @@ +Pulumi.FSharp +FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/.gitignore b/Pulumi.FSharp.Docker/.gitignore index 58f4e8c..06ca7a4 100644 --- a/Pulumi.FSharp.Docker/.gitignore +++ b/Pulumi.FSharp.Docker/.gitignore @@ -351,6 +351,6 @@ MigrationBackup/ .idea/ -/azure-native.*.json +/docker.*.json /Generated.fs /Generated.*.fs \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/Myriad.fs b/Pulumi.FSharp.Docker/Myriad.fs index 254b796..d0e79e5 100644 --- a/Pulumi.FSharp.Docker/Myriad.fs +++ b/Pulumi.FSharp.Docker/Myriad.fs @@ -1,3 +1,3 @@ module private Docker -module Force = let private nonce = 780245980 \ No newline at end of file +module Force = let private nonce = 1998461790 \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj b/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj index d66d794..80f79ad 100644 --- a/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj +++ b/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj @@ -1,59 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi docker - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi docker + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/paket.references b/Pulumi.FSharp.Docker/paket.references new file mode 100644 index 0000000..98df8f5 --- /dev/null +++ b/Pulumi.FSharp.Docker/paket.references @@ -0,0 +1,4 @@ +Pulumi.Docker +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Extensions.sln b/Pulumi.FSharp.Extensions.sln index b903f42..20d39ee 100644 --- a/Pulumi.FSharp.Extensions.sln +++ b/Pulumi.FSharp.Extensions.sln @@ -1,6 +1,11 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{B1545C13-170F-42E0-9BAF-29DCA80951E7}" + ProjectSection(SolutionItems) = preProject + paket.dependencies = paket.dependencies + EndProjectSection +EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Myriad", "Pulumi.FSharp.Myriad\Pulumi.FSharp.Myriad.fsproj", "{EDDFE9E5-9B82-4ECF-AB23-86F3347D77EC}" EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Azure", "Pulumi.FSharp.Azure\Pulumi.FSharp.Azure.fsproj", "{0CDB4B8E-343B-45A5-A1C6-951470C965F9}" diff --git a/Pulumi.FSharp.Gcp/Myriad.fs b/Pulumi.FSharp.Gcp/Myriad.fs index 73ea4e4..d518e0d 100644 --- a/Pulumi.FSharp.Gcp/Myriad.fs +++ b/Pulumi.FSharp.Gcp/Myriad.fs @@ -1,3 +1,3 @@ module private Gcp -module Force = let private nonce = 2005552723 \ No newline at end of file +module Force = let private nonce = 1529332996 \ No newline at end of file diff --git a/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj b/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj index 824e9f3..9a14a43 100644 --- a/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj +++ b/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj @@ -1,57 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi gcp - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi gcp + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Gcp/paket.references b/Pulumi.FSharp.Gcp/paket.references new file mode 100644 index 0000000..af28fa5 --- /dev/null +++ b/Pulumi.FSharp.Gcp/paket.references @@ -0,0 +1,4 @@ +Pulumi.Gcp +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets b/Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets new file mode 100644 index 0000000..c66062b --- /dev/null +++ b/Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets @@ -0,0 +1,560 @@ + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + $(MSBuildVersion) + 15.0.0 + false + true + + true + $(MSBuildThisFileDirectory) + $(MSBuildThisFileDirectory)..\ + $(PaketRootPath)paket-files\paket.restore.cached + $(PaketRootPath)paket.lock + classic + proj + assembly + native + /Library/Frameworks/Mono.framework/Commands/mono + mono + + + $(PaketRootPath)paket.bootstrapper.exe + $(PaketToolsPath)paket.bootstrapper.exe + $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\ + + "$(PaketBootStrapperExePath)" + $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)" + + + + + true + true + + + True + + + False + + $(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/')) + + + + + + + + + $(PaketRootPath)paket + $(PaketToolsPath)paket + + + + + + $(PaketRootPath)paket.exe + $(PaketToolsPath)paket.exe + + + + + + <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json")) + <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"')) + <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false + + + + + + + + + + + <_PaketCommand>dotnet paket + + + + + + $(PaketToolsPath)paket + $(PaketBootStrapperExeDir)paket + + + paket + + + + + <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)")) + <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)" + <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" + <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)" + + + + + + + + + + + + + + + + + + + + + true + $(NoWarn);NU1603;NU1604;NU1605;NU1608 + false + true + + + + + + + + + $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) + + + + + + + $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[0].Replace(`"`, ``).Replace(` `, ``)) + $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[1].Replace(`"`, ``).Replace(` `, ``)) + + + + + %(PaketRestoreCachedKeyValue.Value) + %(PaketRestoreCachedKeyValue.Value) + + + + + true + false + true + + + + + true + + + + + + + + + + + + + + + + + + + $(PaketIntermediateOutputPath)\$(MSBuildProjectFile).paket.references.cached + + $(MSBuildProjectFullPath).paket.references + + $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references + + $(MSBuildProjectDirectory)\paket.references + + false + true + true + references-file-or-cache-not-found + + + + + $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)')) + $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)')) + references-file + false + + + + + false + + + + + true + target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) + + + + + + + + + + + false + true + + + + + + + + + + + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[6]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[7]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[8]) + + + %(PaketReferencesFileLinesInfo.PackageVersion) + All + runtime + $(ExcludeAssets);contentFiles + $(ExcludeAssets);build;buildMultitargeting;buildTransitive + %(PaketReferencesFileLinesInfo.Aliases) + true + true + + + + + + $(PaketIntermediateOutputPath)/$(MSBuildProjectFile).paket.clitools + + + + + + + + + $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0]) + $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1]) + + + %(PaketCliToolFileLinesInfo.PackageVersion) + + + + + + + + + + false + + + + + + <_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/> + + + + + + $(MSBuildProjectDirectory)/$(MSBuildProjectFile) + true + false + true + false + true + false + true + false + true + false + true + $(PaketIntermediateOutputPath)\$(Configuration) + $(PaketIntermediateOutputPath) + + + + <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.$(PackageVersion.Split(`+`)[0]).nuspec"/> + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pulumi.FSharp.Kubernetes/Myriad.fs b/Pulumi.FSharp.Kubernetes/Myriad.fs index 538313d..04b26ee 100644 --- a/Pulumi.FSharp.Kubernetes/Myriad.fs +++ b/Pulumi.FSharp.Kubernetes/Myriad.fs @@ -1,3 +1,3 @@ module private Kubernetes -module Force = let private nonce = 2060885708 \ No newline at end of file +module Force = let private nonce = 400342244 \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj b/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj index 7d58708..de9cb52 100644 --- a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj +++ b/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj @@ -1,6 +1,7 @@ + - net6.0 + net8.0 F# computational expressions to reduce boilerplate in Pulumi code Copyright 2020 https://github.com/UnoSD/Pulumi.FSharp.Extensions @@ -31,20 +32,14 @@ - - - - - - + - - + Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/paket.references b/Pulumi.FSharp.Kubernetes/paket.references new file mode 100644 index 0000000..05c2393 --- /dev/null +++ b/Pulumi.FSharp.Kubernetes/paket.references @@ -0,0 +1,4 @@ +Pulumi.Kubernetes +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Generator.fs b/Pulumi.FSharp.Myriad/Generator.fs index 4079892..6658b12 100644 --- a/Pulumi.FSharp.Myriad/Generator.fs +++ b/Pulumi.FSharp.Myriad/Generator.fs @@ -7,53 +7,74 @@ open AstModules open System.Xml open System.IO open Schema +open Paket [] type PulumiFSharpGenerator() = + interface IMyriadGenerator with - member _.Generate(context) = + member this.Generate(context) = + + let getVersionFromFsproj (projectFile: FileInfo) (provider: string) = + let fsproj : XmlDocument = XmlDocument() + in do fsproj.Load (projectFile.OpenText()) + + fsproj.SelectNodes("/Project/ItemGroup") + |> Seq.cast + |> Seq.collect (fun y -> + y.SelectNodes("PackageReference") + |> Seq.cast) + |> Seq.pick (fun x -> + if x.Attributes["Include"].Value = $"Pulumi.{provider}" then + x.Attributes["Version"].Value |> Some + else + None) + let projectFile = FileInfo(context.InputFilename).Directory.EnumerateFiles("*.fsproj") |> Seq.exactlyOne let provider = - projectFile.Name["Pulumi.FSharp.".Length..^".fsproj".Length] + let providerName = projectFile.Name["Pulumi.FSharp.".Length..^".fsproj".Length] + let providerNameOverride = + Map.ofList ["AzureNativeV2", "AzureNative"] - let providerNameOverride = - Map.empty - .Add("AzureNativeV2", "AzureNative") + providerNameOverride + |> Map.tryFind providerName + |> Option.defaultValue providerName - let provider = - providerNameOverride |> - Map.tryFind provider |> - Option.defaultValue provider - - let fsproj = - XmlDocument() in fsproj.Load (projectFile.OpenText()) - - let version = - fsproj.SelectNodes("/Project/ItemGroup") |> - Seq.cast |> - Seq.collect (fun y -> y.SelectNodes("PackageReference") |> Seq.cast) |> - Seq.pick (fun x -> if x.Attributes["Include"].Value = $"Pulumi.{provider}" then - x.Attributes["Version"].Value |> Some - else - None) + let paketDeps = + FileInfo(context.InputFilename).DirectoryName + |> Paket.Dependencies.TryLocate + + let paketProviderVersion = + paketDeps + |> Option.bind(fun deps -> + deps.GetInstalledVersion $"Pulumi.{provider}") + |> Option.map (fun version -> + let semver = (SemVer.Parse version) in + $"{semver.Major}.{semver.Minor}.{semver.Patch}") + + + let version = + match paketProviderVersion with + | Some version -> version + | None -> getVersionFromFsproj projectFile provider let providerRepositoryNameOverride = - Map.empty - .Add("AzureNative", "azure-native") + ["AzureNative", "azure-native"] + |> Map.ofList let providerRepository = - providerRepositoryNameOverride |> - Map.tryFind provider |> - Option.defaultValue provider - - loadSchema providerRepository version |> - createTypes |> - createModules provider |> - createNamespace |> - List.singleton |> - Output.Ast + providerRepositoryNameOverride + |> Map.tryFind provider + |> Option.defaultValue provider + + loadSchema providerRepository version + |> createTypes + |> createModules provider + |> createNamespace + |> List.singleton + |> Output.Ast member this.ValidInputExtensions = seq { ".fs" } \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj b/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj index 794c302..abcdcde 100644 --- a/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj +++ b/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj @@ -1,43 +1,41 @@ + - - net6.0 - preview - NU1605,NU1608 - true - Pulumi.FSharp.Myriad - - - - true - %(Identity) - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + net6.0 + preview + NU1605,NU1608 + true + Pulumi.FSharp.Myriad + + + + true + %(Identity) + true + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/paket.references b/Pulumi.FSharp.Myriad/paket.references new file mode 100644 index 0000000..dbff8e6 --- /dev/null +++ b/Pulumi.FSharp.Myriad/paket.references @@ -0,0 +1,6 @@ +group Myriad + FSharp.Core + FSharp.Data + FSharp.Text.RegexProvider + Myriad.Sdk + Paket.Core \ No newline at end of file diff --git a/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj b/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj index d41161e..afee494 100644 --- a/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj +++ b/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj @@ -1,30 +1,16 @@ - - + + Exe - net6.0 + net8.0 enable NU1605;NU1608;NU1603;FS0020 6.0.* - - - - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/Pulumi.FSharp.NuGet.Test/paket.references b/Pulumi.FSharp.NuGet.Test/paket.references new file mode 100644 index 0000000..cfd2313 --- /dev/null +++ b/Pulumi.FSharp.NuGet.Test/paket.references @@ -0,0 +1,10 @@ +group Test + Pulumi.FSharp.Aws + Pulumi.FSharp.Azure + Pulumi.FSharp.AzureAD + Pulumi.FSharp.AzureNative + Pulumi.FSharp.Core + Pulumi.FSharp.Gcp + Pulumi.FSharp.Kubernetes + Pulumi.FSharp.Tls + FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.Random/Myriad.fs b/Pulumi.FSharp.Random/Myriad.fs index 88da9ab..25edfe3 100644 --- a/Pulumi.FSharp.Random/Myriad.fs +++ b/Pulumi.FSharp.Random/Myriad.fs @@ -1,3 +1,3 @@ module private Random -module Force = let private nonce = 2071606164 +module Force = let private nonce = 1461548850 \ No newline at end of file diff --git a/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj b/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj index 47d60fe..f41de20 100644 --- a/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj +++ b/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj @@ -1,57 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi random - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi random + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Random/paket.references b/Pulumi.FSharp.Random/paket.references new file mode 100644 index 0000000..f481ac1 --- /dev/null +++ b/Pulumi.FSharp.Random/paket.references @@ -0,0 +1,4 @@ +Pulumi.Random +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj b/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj index 28b2a22..fcbc93f 100644 --- a/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj +++ b/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj @@ -1,13 +1,11 @@ - - + + Exe - net6.0 + net8.0 enable NU1605;NU1608;FS0020 - 6.0.* - @@ -18,15 +16,10 @@ - - - - - - - + + \ No newline at end of file diff --git a/Pulumi.FSharp.Test/paket.references b/Pulumi.FSharp.Test/paket.references new file mode 100644 index 0000000..640cf91 --- /dev/null +++ b/Pulumi.FSharp.Test/paket.references @@ -0,0 +1 @@ +FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/Myriad.fs b/Pulumi.FSharp.Tls/Myriad.fs index 0aa51bc..29bd48a 100644 --- a/Pulumi.FSharp.Tls/Myriad.fs +++ b/Pulumi.FSharp.Tls/Myriad.fs @@ -1,3 +1,3 @@ module private Tls -module Force = let private nonce = 453776411 \ No newline at end of file +module Force = let private nonce = 926534728 \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj b/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj index 34dd00e..8be1cac 100644 --- a/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj +++ b/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj @@ -1,57 +1,44 @@ - - - - net6.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi tls - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - 6.0.* - - - - - - - + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi tls + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + - - - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/paket.references b/Pulumi.FSharp.Tls/paket.references new file mode 100644 index 0000000..9e0672a --- /dev/null +++ b/Pulumi.FSharp.Tls/paket.references @@ -0,0 +1,4 @@ +Pulumi.Tls +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/global.json b/global.json index 4052a2d..bff197c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,7 @@ { "sdk": { - "version": "6.0.100", + + "version": "8.0.204", "rollForward": "latestMinor", "allowPrerelease": true } diff --git a/paket.dependencies b/paket.dependencies new file mode 100644 index 0000000..cc159b8 --- /dev/null +++ b/paket.dependencies @@ -0,0 +1,46 @@ +group Myriad + framework: net8.0 + source https://api.nuget.org/v3/index.json + storage: none + + nuget FSharp.Core ~> 6 + nuget FSharp.Data ~> 6 + nuget FSharp.Text.RegexProvider ~> 2 + nuget Myriad.Core 0.8.1 + nuget Myriad.Sdk 0.8.1 + nuget Paket.Core ~> 8 + +group Main + framework: net8.0 + source https://api.nuget.org/v3/index.json + storage: none + + nuget FSharp.Core ~> 8 + nuget Myriad.Sdk 0.8.1 + + nuget Pulumi.Aws + nuget Pulumi.Azure + nuget Pulumi.AzureAD + nuget Pulumi.AzureNative + nuget Pulumi.Command + nuget Pulumi.Docker + nuget Pulumi.FSharp + nuget Pulumi.Gcp + nuget Pulumi.Kubernetes + nuget Pulumi.Random + nuget Pulumi.Tls + +group Test + framework: net8.0 + source https://api.nuget.org/v3/index.json + storage: none + + nuget FSharp.Core ~> 8.0 + nuget Pulumi.FSharp.Aws + nuget Pulumi.FSharp.Azure + nuget Pulumi.FSharp.AzureAD + nuget Pulumi.FSharp.AzureNative + nuget Pulumi.FSharp.Core + nuget Pulumi.FSharp.Gcp + nuget Pulumi.FSharp.Kubernetes + nuget Pulumi.FSharp.Tls diff --git a/paket.lock b/paket.lock new file mode 100644 index 0000000..dc11ff6 --- /dev/null +++ b/paket.lock @@ -0,0 +1,565 @@ +STORAGE: NONE +RESTRICTION: == net8.0 +NUGET + remote: https://api.nuget.org/v3/index.json + Ben.Demystifier (0.4.1) + System.Reflection.Metadata (>= 5.0) + FSharp.Core (8.0.200) + Glob (1.1.9) + Google.Protobuf (3.26.1) + Grpc.AspNetCore.Server (2.62) + Grpc.Net.Common (>= 2.62) + Grpc.AspNetCore.Server.Reflection (2.62) + Google.Protobuf (>= 3.24) + Grpc.AspNetCore.Server (>= 2.62) + Grpc.Reflection (>= 2.62) + Grpc.Core.Api (2.62) + Grpc.Net.Client (2.62) + Grpc.Net.Common (>= 2.62) + Microsoft.Extensions.Logging.Abstractions (>= 6.0) + Grpc.Net.Common (2.62) + Grpc.Core.Api (>= 2.62) + Grpc.Reflection (2.62) + Google.Protobuf (>= 3.24) + Grpc.Core.Api (>= 2.62) + Microsoft.Extensions.DependencyInjection (8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) + Microsoft.Extensions.Logging (8.0) + Microsoft.Extensions.DependencyInjection (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (>= 8.0) + Microsoft.Extensions.Options (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (8.0.1) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) + Microsoft.Extensions.Options (8.0.2) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.Primitives (>= 8.0) + Microsoft.Extensions.Primitives (8.0) + Myriad.Sdk (0.8.1) + OneOf (3.0.263) + Pulumi (3.60) + Ben.Demystifier (>= 0.4.1) + Grpc.AspNetCore.Server (>= 2.51) + Grpc.AspNetCore.Server.Reflection (>= 2.51) + Grpc.Net.Client (>= 2.51) + Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) + OneOf (>= 3.0.216) + Pulumi.Protobuf (>= 3.20.1) + Semver (>= 2.1) + Serilog.Extensions.Logging (>= 3.0.1) + Serilog.Sinks.Console (>= 4.0.1) + Pulumi.Aws (6.30) + Pulumi (>= 3.60) + Pulumi.Azure (5.71) + Pulumi (>= 3.60) + Pulumi.AzureAD (5.47.2) + Pulumi (>= 3.59) + Pulumi.AzureNative (2.36) + Pulumi (>= 3.60) + System.Collections.Immutable (>= 5.0) + Pulumi.Command (0.9.2) + Pulumi (>= 3.58) + Pulumi.Docker (4.5.3) + Pulumi (>= 3.60) + Pulumi.FSharp (3.60) + FSharp.Core (>= 4.7.2) + Pulumi (>= 3.60) + Pulumi.Gcp (7.18) + Pulumi (>= 3.60) + Pulumi.Kubernetes (4.10) + Glob (>= 1.1.5) + Pulumi (>= 3.60) + Pulumi.Protobuf (3.20.1) + Pulumi.Random (4.16) + Pulumi (>= 3.59) + Pulumi.Tls (5.0.2) + Pulumi (>= 3.60) + Semver (2.3) + Serilog (3.1.1) + Serilog.Extensions.Logging (8.0) + Microsoft.Extensions.Logging (>= 8.0) + Serilog (>= 3.1.1) + Serilog.Sinks.Console (5.0.1) + Serilog (>= 3.1.1) + System.Collections.Immutable (8.0) + System.Reflection.Metadata (8.0) + System.Collections.Immutable (>= 8.0) + +GROUP Myriad +STORAGE: NONE +NUGET + remote: https://api.nuget.org/v3/index.json + Chessie (0.6) - restriction: || (>= net461) (>= netstandard2.0) + FSharp.Core - restriction: < netstandard1.6 + FSharp.Core (>= 4.0.1.7-alpha) - restriction: >= netstandard1.6 + NETStandard.Library (>= 1.6) - restriction: >= netstandard1.6 + fantomas (6.3.3) - restriction: >= netstandard2.1 + FSharp.Core (6.0.3) + FSharp.Data (6.4) + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Csv.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Html.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Json.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.WorldBank.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Xml.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Csv.Core (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Html.Core (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Csv.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Http (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Json.Core (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.WorldBank.Core (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Json.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Xml.Core (6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 + FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Json.Core (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Text.RegexProvider (2.1) + FSharp.Core (>= 4.3.4) + Microsoft.NETCore.Platforms (7.0.4) - restriction: || (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= net45) (< netstandard1.3) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net461) (>= netstandard1.6)) (&& (>= net461) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (< netstandard1.0) (>= netstandard2.0) (< portable-net45+win8)) (&& (< netstandard1.0) (>= netstandard2.0) (>= win8)) (&& (< netstandard1.0) (>= netstandard2.0) (< win8)) (&& (< netstandard1.3) (>= netstandard2.0) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= netstandard2.0) (>= uap10.0)) (&& (>= netstandard2.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= wp8)) + Microsoft.NETCore.Targets (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Mono.Cecil (0.11.5) - restriction: || (>= net461) (>= netstandard2.0) + Myriad.Core (0.8.1) + fantomas (>= 4.7.9) - restriction: >= netstandard2.1 + Myriad.Sdk (0.8.1) + NETStandard.Library (2.0.3) - restriction: || (&& (>= net461) (>= netstandard1.6)) (>= netstandard2.0) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4)) (>= net461) (>= netcoreapp2.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8) (< win8)) (&& (< netstandard1.0) (< portable-net45+win8) (>= portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (>= uap10.1) (>= wp8) + Newtonsoft.Json (13.0.3) - restriction: || (>= net461) (>= netstandard2.0) + NuGet.Common (6.9.1) - restriction: >= netstandard2.0 + NuGet.Frameworks (>= 6.9.1) - restriction: >= netstandard2.0 + NuGet.Configuration (6.9.1) - restriction: >= netstandard2.0 + NuGet.Common (>= 6.9.1) - restriction: >= netstandard2.0 + System.Security.Cryptography.ProtectedData (>= 4.4) - restriction: && (< net472) (>= netstandard2.0) + NuGet.Frameworks (6.9.1) - restriction: >= netstandard2.0 + NuGet.Packaging (6.9.1) - restriction: || (>= net461) (>= netstandard2.0) + Newtonsoft.Json (>= 13.0.3) - restriction: >= netstandard2.0 + NuGet.Configuration (>= 6.9.1) - restriction: >= netstandard2.0 + NuGet.Versioning (>= 6.9.1) - restriction: >= netstandard2.0 + System.Security.Cryptography.Pkcs (>= 6.0.4) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= net5.0) + NuGet.Versioning (6.9.1) - restriction: >= netstandard2.0 + Paket.Core (8.0.3) + Chessie (>= 0.6) - restriction: || (>= net461) (>= netstandard2.0) + FSharp.Core (6.0.3) - restriction: || (>= net461) (>= netstandard2.0) + Mono.Cecil (>= 0.11.3 < 0.12) - restriction: || (>= net461) (>= netstandard2.0) + Newtonsoft.Json (>= 13.0.1) - restriction: || (>= net461) (>= netstandard2.0) + NuGet.Packaging (>= 5.9.1) - restriction: || (>= net461) (>= netstandard2.0) + System.Net.Http (>= 4.3.4) - restriction: && (< net461) (>= netstandard2.0) + System.Net.Http.WinHttpHandler (>= 5.0) - restriction: || (>= net461) (>= netstandard2.0) + System.Security.Cryptography.ProtectedData (>= 5.0) - restriction: || (>= net461) (>= netstandard2.0) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Net.Http (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Buffers (4.5.1) - restriction: || (>= net462) (&& (>= net5.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.0)) (&& (< net6.0) (>= netstandard2.1)) (&& (>= netstandard2.0) (< netstandard2.1)) + System.Collections (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Collections.Concurrent (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Collections (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Diagnostics.Tracing (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) + System.Diagnostics.Debug (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Diagnostics.DiagnosticSource (8.0.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net6.0) (>= netstandard2.0)) + System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) + System.Diagnostics.Tracing (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Formats.Asn1 (8.0) - restriction: || (&& (< net462) (>= netstandard2.0)) (&& (>= net5.0) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp3.0) (< xamarintvos) (< xamarinwatchos)) (>= netstandard2.1) + System.Buffers (>= 4.5.1) - restriction: || (>= net462) (&& (< net6.0) (>= netstandard2.0)) + System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net6.0) (>= netstandard2.0)) + System.Globalization (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Globalization.Calendars (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization.Extensions (4.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.IO.FileSystem (4.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO.FileSystem.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO.FileSystem.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= net46) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Linq (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Diagnostics.Debug (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Memory (4.5.5) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (>= net461) (>= netstandard2.0)) (>= net462) (&& (>= net5.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.0)) (&& (>= netstandard2.0) (< netstandard2.1)) + System.Buffers (>= 4.5.1) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) + System.Numerics.Vectors (>= 4.5) - restriction: >= net461 + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) + System.Net.Http (4.3.4) - restriction: && (< net461) (>= netstandard2.0) + Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + runtime.native.System (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Net.Http (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Diagnostics.DiagnosticSource (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Globalization.Extensions (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.IO.FileSystem (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Net.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Security.Cryptography.Algorithms (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.X509Certificates (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) + System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Net.Http.WinHttpHandler (8.0) - restriction: || (>= net461) (>= netstandard2.0) + System.Buffers (>= 4.5.1) - restriction: >= net462 + System.Memory (>= 4.5.5) - restriction: >= net462 + System.Net.Primitives (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) + Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) + System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) + System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Numerics.Vectors (4.5) - restriction: >= net462 + System.Reflection (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (>= netcoreapp1.1) (< netstandard1.6) (>= netstandard2.0)) (&& (< net45) (< netcoreapp1.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Reflection.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (>= netcoreapp1.1) (< netstandard1.6) (>= netstandard2.0)) (&& (< net45) (< netcoreapp1.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.CompilerServices.Unsafe (6.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= net6.0) (< netstandard1.6)) (&& (< net45) (< net6.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net462) (&& (>= net6.0) (< net7.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Extensions (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Handles (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netcoreapp1.1) (< netstandard1.6) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.InteropServices (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net462) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Numerics (4.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= net46) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Collections (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Handles (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.InteropServices (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Numerics (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< netstandard1.4)) (&& (>= net461) (< netstandard1.6)) (>= net463) + System.Text.Encoding (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Cng (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< net462) (>= netstandard2.0) (< netstandard2.1)) (&& (>= net5.0) (< net6.0)) (&& (>= net5.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.1)) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: && (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1) (< xamarintvos) (< xamarinwatchos) + System.Formats.Asn1 (>= 5.0) - restriction: && (>= netcoreapp3.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Csp (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) + System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Collections (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Collections.Concurrent (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Linq (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.OpenSsl (5.0) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: && (>= netcoreapp2.0) (< netcoreapp2.1) + System.Formats.Asn1 (>= 5.0) - restriction: >= netcoreapp3.0 + System.Security.Cryptography.Pkcs (8.0) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= net5.0) + System.Buffers (>= 4.5.1) - restriction: && (< net462) (>= netstandard2.0) (< netstandard2.1) + System.Formats.Asn1 (>= 8.0) - restriction: || (&& (< net462) (>= netstandard2.0)) (>= netstandard2.1) + System.Memory (>= 4.5.5) - restriction: && (< net462) (>= netstandard2.0) (< netstandard2.1) + System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (< net462) (>= netstandard2.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.1)) + System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.ProtectedData (8.0) - restriction: || (>= net461) (>= netstandard2.0) + System.Memory (>= 4.5.5) - restriction: && (< net462) (< net6.0) (>= netstandard2.0) + System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< net461) (>= netstandard2.0)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Net.Http (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Collections (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Diagnostics.Debug (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Globalization.Calendars (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO.FileSystem (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.IO.FileSystem.Primitives (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.Extensions (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime.InteropServices (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Runtime.Numerics (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< netstandard1.4)) (>= net461) + System.Security.Cryptography.Cng (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Csp (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< netstandard1.4)) (>= net461) + System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Text.Encoding (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Threading (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + System.Text.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Threading (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Threading.Tasks (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + +GROUP Test +STORAGE: NONE +RESTRICTION: == net8.0 +NUGET + remote: https://api.nuget.org/v3/index.json + Ben.Demystifier (0.4.1) + System.Reflection.Metadata (>= 5.0) + FSharp.Core (8.0.200) + Glob (1.1.9) + Google.Protobuf (3.26.1) + Grpc.AspNetCore.Server (2.62) + Grpc.Net.Common (>= 2.62) + Grpc.AspNetCore.Server.Reflection (2.62) + Google.Protobuf (>= 3.24) + Grpc.AspNetCore.Server (>= 2.62) + Grpc.Reflection (>= 2.62) + Grpc.Core.Api (2.62) + Grpc.Net.Client (2.62) + Grpc.Net.Common (>= 2.62) + Microsoft.Extensions.Logging.Abstractions (>= 6.0) + Grpc.Net.Common (2.62) + Grpc.Core.Api (>= 2.62) + Grpc.Reflection (2.62) + Google.Protobuf (>= 3.24) + Grpc.Core.Api (>= 2.62) + Microsoft.Extensions.DependencyInjection (8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) + Microsoft.Extensions.Logging (8.0) + Microsoft.Extensions.DependencyInjection (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (>= 8.0) + Microsoft.Extensions.Options (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (8.0.1) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) + Microsoft.Extensions.Options (8.0.2) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.Primitives (>= 8.0) + Microsoft.Extensions.Primitives (8.0) + OneOf (3.0.263) + Pulumi (3.60) + Ben.Demystifier (>= 0.4.1) + Grpc.AspNetCore.Server (>= 2.51) + Grpc.AspNetCore.Server.Reflection (>= 2.51) + Grpc.Net.Client (>= 2.51) + Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) + OneOf (>= 3.0.216) + Pulumi.Protobuf (>= 3.20.1) + Semver (>= 2.1) + Serilog.Extensions.Logging (>= 3.0.1) + Serilog.Sinks.Console (>= 4.0.1) + Pulumi.Aws (6.30) + Pulumi (>= 3.60) + Pulumi.Azure (5.71) + Pulumi (>= 3.60) + Pulumi.AzureAD (5.47.2) + Pulumi (>= 3.59) + Pulumi.AzureNative (2.36) + Pulumi (>= 3.60) + System.Collections.Immutable (>= 5.0) + Pulumi.FSharp (3.60) + FSharp.Core (>= 4.7.2) + Pulumi (>= 3.60) + Pulumi.FSharp.Aws (5.11.0.7) + FSharp.Core (>= 6.0.5) + Pulumi.Aws (>= 5.11) + Pulumi.FSharp (>= 3.38) + Pulumi.FSharp.Azure (5.22.0.10) + FSharp.Core (>= 6.0.6) + Pulumi.Azure (>= 5.22) + Pulumi.FSharp (>= 3.43.1) + Pulumi.FSharp.AzureAD (5.29.1.12) + FSharp.Core (>= 6.0.6) + Pulumi.AzureAD (>= 5.29.1) + Pulumi.FSharp (>= 3.43.1) + Pulumi.FSharp.AzureNative (1.104.0.21) + FSharp.Core (>= 6.0.6) + Pulumi.AzureNative (>= 1.104) + Pulumi.FSharp (>= 3.43.1) + Pulumi.FSharp.Core (3.1.4) + FSharp.Core (>= 6.0.6) + Pulumi.FSharp (>= 3.43.1) + Pulumi.FSharp.Gcp (6.41.0.13) + FSharp.Core (>= 6.0.6) + Pulumi.FSharp (>= 3.43.1) + Pulumi.Gcp (>= 6.41) + Pulumi.FSharp.Kubernetes (4.5.2.13) + FSharp.Core (>= 6.0.6) + Pulumi.FSharp (>= 3.43.1) + Pulumi.Kubernetes (>= 4.5.2) + Pulumi.FSharp.Tls (4.6.1.13) + FSharp.Core (>= 6.0.6) + Pulumi.FSharp (>= 3.43.1) + Pulumi.Tls (>= 4.6.1) + Pulumi.Gcp (7.18) + Pulumi (>= 3.60) + Pulumi.Kubernetes (4.10) + Glob (>= 1.1.5) + Pulumi (>= 3.60) + Pulumi.Protobuf (3.20.1) + Pulumi.Tls (5.0.2) + Pulumi (>= 3.60) + Semver (2.3) + Serilog (3.1.1) + Serilog.Extensions.Logging (8.0) + Microsoft.Extensions.Logging (>= 8.0) + Serilog (>= 3.1.1) + Serilog.Sinks.Console (5.0.1) + Serilog (>= 3.1.1) + System.Collections.Immutable (8.0) + System.Reflection.Metadata (8.0) + System.Collections.Immutable (>= 8.0) From eebc76003aa89039f6565335548314c642dc2b3a Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 29 Apr 2024 20:11:56 -0300 Subject: [PATCH 006/113] fix provider repo name override for azure-native (#6) --- Pulumi.FSharp.Myriad/Generator.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pulumi.FSharp.Myriad/Generator.fs b/Pulumi.FSharp.Myriad/Generator.fs index 6658b12..eb5fea9 100644 --- a/Pulumi.FSharp.Myriad/Generator.fs +++ b/Pulumi.FSharp.Myriad/Generator.fs @@ -62,7 +62,7 @@ type PulumiFSharpGenerator() = | None -> getVersionFromFsproj projectFile provider let providerRepositoryNameOverride = - ["AzureNative", "azure-native"] + ["azure-native", "AzureNative"] |> Map.ofList let providerRepository = From 89633d0c4b5a40db93684bc4bc25e94d3b44bfd9 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 4 May 2024 17:52:27 -0300 Subject: [PATCH 007/113] fix azure-native naming overrides, add auth+digitalocean (#7) --- Pulumi.FSharp.Auth0/.gitignore | 356 +++++++++ Pulumi.FSharp.Auth0/Myriad.fs | 3 + .../Pulumi.FSharp.Auth0.fsproj | 44 ++ Pulumi.FSharp.Auth0/myriad.toml | 0 Pulumi.FSharp.Auth0/paket.references | 4 + Pulumi.FSharp.Aws/Myriad.fs | 2 +- Pulumi.FSharp.Azure/Myriad.fs | 2 +- Pulumi.FSharp.AzureAD/Myriad.fs | 2 +- Pulumi.FSharp.AzureNative/Myriad.fs | 2 +- Pulumi.FSharp.Command/Myriad.fs | 2 +- Pulumi.FSharp.DigitalOcean/.gitignore | 356 +++++++++ Pulumi.FSharp.DigitalOcean/Myriad.fs | 3 + .../Pulumi.FSharp.DigitalOcean.fsproj | 44 ++ Pulumi.FSharp.DigitalOcean/myriad.toml | 0 Pulumi.FSharp.DigitalOcean/paket.references | 4 + Pulumi.FSharp.Docker/Myriad.fs | 2 +- Pulumi.FSharp.Extensions.sln | 14 +- Pulumi.FSharp.Gcp/Myriad.fs | 2 +- .../Pulumi.FSharp.Kubernetes.fsproj | 2 +- Pulumi.FSharp.Myriad/Generator.fs | 2 +- Pulumi.FSharp.Myriad/Modules.fs | 2 + Pulumi.FSharp.Random/Myriad.fs | 2 +- Pulumi.FSharp.Tls/Myriad.fs | 2 +- build.fsx | 2 +- paket.dependencies | 4 +- paket.lock | 731 +++++++++--------- 26 files changed, 1203 insertions(+), 386 deletions(-) create mode 100644 Pulumi.FSharp.Auth0/.gitignore create mode 100644 Pulumi.FSharp.Auth0/Myriad.fs create mode 100644 Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj create mode 100644 Pulumi.FSharp.Auth0/myriad.toml create mode 100644 Pulumi.FSharp.Auth0/paket.references create mode 100644 Pulumi.FSharp.DigitalOcean/.gitignore create mode 100644 Pulumi.FSharp.DigitalOcean/Myriad.fs create mode 100644 Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj create mode 100644 Pulumi.FSharp.DigitalOcean/myriad.toml create mode 100644 Pulumi.FSharp.DigitalOcean/paket.references diff --git a/Pulumi.FSharp.Auth0/.gitignore b/Pulumi.FSharp.Auth0/.gitignore new file mode 100644 index 0000000..7a84deb --- /dev/null +++ b/Pulumi.FSharp.Auth0/.gitignore @@ -0,0 +1,356 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +.idea/ + +/auth0.*.json +/Generated.fs +/Generated.*.fs \ No newline at end of file diff --git a/Pulumi.FSharp.Auth0/Myriad.fs b/Pulumi.FSharp.Auth0/Myriad.fs new file mode 100644 index 0000000..3a4e013 --- /dev/null +++ b/Pulumi.FSharp.Auth0/Myriad.fs @@ -0,0 +1,3 @@ +module private Auth0 + +module Force = let private nonce = 134565888 \ No newline at end of file diff --git a/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj b/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj new file mode 100644 index 0000000..9cda84d --- /dev/null +++ b/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj @@ -0,0 +1,44 @@ + + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi auth0 identity oidc oauth + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Auth0/myriad.toml b/Pulumi.FSharp.Auth0/myriad.toml new file mode 100644 index 0000000..e69de29 diff --git a/Pulumi.FSharp.Auth0/paket.references b/Pulumi.FSharp.Auth0/paket.references new file mode 100644 index 0000000..578556e --- /dev/null +++ b/Pulumi.FSharp.Auth0/paket.references @@ -0,0 +1,4 @@ +Pulumi.Auth0 +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/Myriad.fs b/Pulumi.FSharp.Aws/Myriad.fs index 32318d5..93d2f12 100644 --- a/Pulumi.FSharp.Aws/Myriad.fs +++ b/Pulumi.FSharp.Aws/Myriad.fs @@ -1,3 +1,3 @@ module private Aws -module Force = let private nonce = 1304539646 \ No newline at end of file +module Force = let private nonce = 1179691810 \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Myriad.fs b/Pulumi.FSharp.Azure/Myriad.fs index a0a8ec8..d210fe9 100644 --- a/Pulumi.FSharp.Azure/Myriad.fs +++ b/Pulumi.FSharp.Azure/Myriad.fs @@ -1,3 +1,3 @@ module private Azure -module Force = let private nonce = 389621788 \ No newline at end of file +module Force = let private nonce = 1245745251 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/Myriad.fs b/Pulumi.FSharp.AzureAD/Myriad.fs index 3f8d47b..907f299 100644 --- a/Pulumi.FSharp.AzureAD/Myriad.fs +++ b/Pulumi.FSharp.AzureAD/Myriad.fs @@ -1,3 +1,3 @@ module private AzureAD -module Force = let private nonce = 345009259 \ No newline at end of file +module Force = let private nonce = 919275682 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/Myriad.fs b/Pulumi.FSharp.AzureNative/Myriad.fs index 492702a..db4c6e0 100644 --- a/Pulumi.FSharp.AzureNative/Myriad.fs +++ b/Pulumi.FSharp.AzureNative/Myriad.fs @@ -1,3 +1,3 @@ module private Azure -module Force = let private nonce = 275494408 \ No newline at end of file +module Force = let private nonce = 1183321333 \ No newline at end of file diff --git a/Pulumi.FSharp.Command/Myriad.fs b/Pulumi.FSharp.Command/Myriad.fs index e37f3f0..42179af 100644 --- a/Pulumi.FSharp.Command/Myriad.fs +++ b/Pulumi.FSharp.Command/Myriad.fs @@ -1,3 +1,3 @@ module private Command -module Force = let private nonce = 1049483746 \ No newline at end of file +module Force = let private nonce = 1777297963 \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/.gitignore b/Pulumi.FSharp.DigitalOcean/.gitignore new file mode 100644 index 0000000..1f1a8aa --- /dev/null +++ b/Pulumi.FSharp.DigitalOcean/.gitignore @@ -0,0 +1,356 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +.idea/ + +/digitalocean.*.json +/Generated.fs +/Generated.*.fs \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/Myriad.fs b/Pulumi.FSharp.DigitalOcean/Myriad.fs new file mode 100644 index 0000000..0410105 --- /dev/null +++ b/Pulumi.FSharp.DigitalOcean/Myriad.fs @@ -0,0 +1,3 @@ +module private DigitalOcean + +module Force = let private nonce = 2107228942 \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj b/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj new file mode 100644 index 0000000..6f79cf2 --- /dev/null +++ b/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj @@ -0,0 +1,44 @@ + + + + net8.0 + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + https://github.com/UnoSD/Pulumi.FSharp.Extensions + GPL-2.0-only + $(MSBuildProjectName) + https://github.com/UnoSD/Pulumi.FSharp.Extensions + fsharp pulumi digitalocean + Stefano d'Antonio (UnoSD) + Stefano d'Antonio (UnoSD) + NU1605,NU1608,FS0058,FS0044 + true + + + + + + + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/myriad.toml b/Pulumi.FSharp.DigitalOcean/myriad.toml new file mode 100644 index 0000000..e69de29 diff --git a/Pulumi.FSharp.DigitalOcean/paket.references b/Pulumi.FSharp.DigitalOcean/paket.references new file mode 100644 index 0000000..0e778c0 --- /dev/null +++ b/Pulumi.FSharp.DigitalOcean/paket.references @@ -0,0 +1,4 @@ +Pulumi.DigitalOcean +Pulumi.FSharp +FSharp.Core +Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/Myriad.fs b/Pulumi.FSharp.Docker/Myriad.fs index d0e79e5..400bcd6 100644 --- a/Pulumi.FSharp.Docker/Myriad.fs +++ b/Pulumi.FSharp.Docker/Myriad.fs @@ -1,3 +1,3 @@ module private Docker -module Force = let private nonce = 1998461790 \ No newline at end of file +module Force = let private nonce = 412793405 \ No newline at end of file diff --git a/Pulumi.FSharp.Extensions.sln b/Pulumi.FSharp.Extensions.sln index 20d39ee..9b93e06 100644 --- a/Pulumi.FSharp.Extensions.sln +++ b/Pulumi.FSharp.Extensions.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# +# Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{B1545C13-170F-42E0-9BAF-29DCA80951E7}" ProjectSection(SolutionItems) = preProject paket.dependencies = paket.dependencies @@ -49,6 +49,10 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNativeV2 EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNative.Common", "Pulumi.FSharp.AzureNative.Common\Pulumi.FSharp.AzureNative.Common.fsproj", "{A01D65E8-98E4-41A2-BA49-67CC4CB9126A}" EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.DigitalOcean", "Pulumi.FSharp.DigitalOcean\Pulumi.FSharp.DigitalOcean.fsproj", "{D42BC874-1B4F-487B-A342-182773EB57CE}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Auth0", "Pulumi.FSharp.Auth0\Pulumi.FSharp.Auth0.fsproj", "{7157AB07-6831-4ABC-AA30-3B947E85A660}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -119,5 +123,13 @@ Global {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Debug|Any CPU.Build.0 = Debug|Any CPU {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Release|Any CPU.ActiveCfg = Release|Any CPU {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Release|Any CPU.Build.0 = Release|Any CPU + {D42BC874-1B4F-487B-A342-182773EB57CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D42BC874-1B4F-487B-A342-182773EB57CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D42BC874-1B4F-487B-A342-182773EB57CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D42BC874-1B4F-487B-A342-182773EB57CE}.Release|Any CPU.Build.0 = Release|Any CPU + {7157AB07-6831-4ABC-AA30-3B947E85A660}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7157AB07-6831-4ABC-AA30-3B947E85A660}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7157AB07-6831-4ABC-AA30-3B947E85A660}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7157AB07-6831-4ABC-AA30-3B947E85A660}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Pulumi.FSharp.Gcp/Myriad.fs b/Pulumi.FSharp.Gcp/Myriad.fs index d518e0d..05b53b7 100644 --- a/Pulumi.FSharp.Gcp/Myriad.fs +++ b/Pulumi.FSharp.Gcp/Myriad.fs @@ -1,3 +1,3 @@ module private Gcp -module Force = let private nonce = 1529332996 \ No newline at end of file +module Force = let private nonce = 123845432 \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj b/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj index de9cb52..2786663 100644 --- a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj +++ b/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj @@ -41,5 +41,5 @@ - + \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Generator.fs b/Pulumi.FSharp.Myriad/Generator.fs index eb5fea9..6658b12 100644 --- a/Pulumi.FSharp.Myriad/Generator.fs +++ b/Pulumi.FSharp.Myriad/Generator.fs @@ -62,7 +62,7 @@ type PulumiFSharpGenerator() = | None -> getVersionFromFsproj projectFile provider let providerRepositoryNameOverride = - ["azure-native", "AzureNative"] + ["AzureNative", "azure-native"] |> Map.ofList let providerRepository = diff --git a/Pulumi.FSharp.Myriad/Modules.fs b/Pulumi.FSharp.Myriad/Modules.fs index cc1e768..f17dafa 100644 --- a/Pulumi.FSharp.Myriad/Modules.fs +++ b/Pulumi.FSharp.Myriad/Modules.fs @@ -389,6 +389,8 @@ let createTypes (schema : JsonValue) = -> properties |> Array.filter (function pName, _ -> pName <> "conditionSets") | "azure-native", false, x when Array.contains x [| "HybridRunbookWorkerGroup" |] -> properties |> Array.filter (function pName, _ -> pName <> "name") + | "azure-native", false, x when Array.contains x [| "StorageVersionMigrationArgs" |] + -> properties |> Array.filter (function pName, _ -> pName <> "status") | _ -> properties diff --git a/Pulumi.FSharp.Random/Myriad.fs b/Pulumi.FSharp.Random/Myriad.fs index 25edfe3..fe43caa 100644 --- a/Pulumi.FSharp.Random/Myriad.fs +++ b/Pulumi.FSharp.Random/Myriad.fs @@ -1,3 +1,3 @@ module private Random -module Force = let private nonce = 1461548850 \ No newline at end of file +module Force = let private nonce = 1142338327 \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/Myriad.fs b/Pulumi.FSharp.Tls/Myriad.fs index 29bd48a..c43b634 100644 --- a/Pulumi.FSharp.Tls/Myriad.fs +++ b/Pulumi.FSharp.Tls/Myriad.fs @@ -1,3 +1,3 @@ module private Tls -module Force = let private nonce = 926534728 \ No newline at end of file +module Force = let private nonce = 1680981972 \ No newline at end of file diff --git a/build.fsx b/build.fsx index ae7e678..cf5477b 100644 --- a/build.fsx +++ b/build.fsx @@ -208,7 +208,7 @@ Target.create "Pack" (fun _ -> let pulumiPackageName = Map.empty |> - Map.add "AzureNativeV2" "AzureNative" |> + Map.add "AzureNativeV2" "azure-native" |> Map.tryFind provider |> Option.defaultValue provider diff --git a/paket.dependencies b/paket.dependencies index cc159b8..2bd86df 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -1,5 +1,5 @@ group Myriad - framework: net8.0 + framework: net6.0 source https://api.nuget.org/v3/index.json storage: none @@ -19,10 +19,12 @@ group Main nuget Myriad.Sdk 0.8.1 nuget Pulumi.Aws + nuget Pulumi.Auth0 nuget Pulumi.Azure nuget Pulumi.AzureAD nuget Pulumi.AzureNative nuget Pulumi.Command + nuget Pulumi.DigitalOcean nuget Pulumi.Docker nuget Pulumi.FSharp nuget Pulumi.Gcp diff --git a/paket.lock b/paket.lock index dc11ff6..e5f42bb 100644 --- a/paket.lock +++ b/paket.lock @@ -37,41 +37,45 @@ NUGET Microsoft.Extensions.Primitives (8.0) Myriad.Sdk (0.8.1) OneOf (3.0.263) - Pulumi (3.60) + Pulumi (3.63.1) Ben.Demystifier (>= 0.4.1) - Grpc.AspNetCore.Server (>= 2.51) - Grpc.AspNetCore.Server.Reflection (>= 2.51) - Grpc.Net.Client (>= 2.51) + Grpc.AspNetCore.Server (>= 2.37) + Grpc.AspNetCore.Server.Reflection (>= 2.37) + Grpc.Net.Client (>= 2.52) Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) OneOf (>= 3.0.216) Pulumi.Protobuf (>= 3.20.1) Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Aws (6.30) + Pulumi.Auth0 (3.3.1) Pulumi (>= 3.60) - Pulumi.Azure (5.71) - Pulumi (>= 3.60) - Pulumi.AzureAD (5.47.2) - Pulumi (>= 3.59) - Pulumi.AzureNative (2.36) + Pulumi.Aws (6.32) + Pulumi (>= 3.61) + Pulumi.Azure (5.74) + Pulumi (>= 3.63.1) + Pulumi.AzureAD (5.48) Pulumi (>= 3.60) + Pulumi.AzureNative (2.39) + Pulumi (>= 3.63.1) System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.9.2) - Pulumi (>= 3.58) + Pulumi.Command (0.10) + Pulumi (>= 3.60) + Pulumi.DigitalOcean (4.28.1) + Pulumi (>= 3.63.1) Pulumi.Docker (4.5.3) Pulumi (>= 3.60) - Pulumi.FSharp (3.60) + Pulumi.FSharp (3.63.1) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.60) - Pulumi.Gcp (7.18) - Pulumi (>= 3.60) - Pulumi.Kubernetes (4.10) + Pulumi (>= 3.63.1) + Pulumi.Gcp (7.20) + Pulumi (>= 3.62) + Pulumi.Kubernetes (4.11) Glob (>= 1.1.5) - Pulumi (>= 3.60) + Pulumi (>= 3.61) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16) - Pulumi (>= 3.59) + Pulumi.Random (4.16.1) + Pulumi (>= 3.61) Pulumi.Tls (5.0.2) Pulumi (>= 3.60) Semver (2.3) @@ -87,96 +91,96 @@ NUGET GROUP Myriad STORAGE: NONE +RESTRICTION: == net6.0 NUGET remote: https://api.nuget.org/v3/index.json - Chessie (0.6) - restriction: || (>= net461) (>= netstandard2.0) - FSharp.Core - restriction: < netstandard1.6 - FSharp.Core (>= 4.0.1.7-alpha) - restriction: >= netstandard1.6 - NETStandard.Library (>= 1.6) - restriction: >= netstandard1.6 - fantomas (6.3.3) - restriction: >= netstandard2.1 + Chessie (0.6) + FSharp.Core (>= 4.0.1.7-alpha) + NETStandard.Library (>= 1.6) + fantomas (6.3.4) FSharp.Core (6.0.3) FSharp.Data (6.4) - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Csv.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Html.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Json.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.WorldBank.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Xml.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Csv.Core (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Html.Core (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Csv.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Http (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Json.Core (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.WorldBank.Core (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Json.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Xml.Core (6.4) - restriction: >= netstandard2.0 - FSharp.Core (>= 6.0.1) - restriction: >= netstandard2.0 - FSharp.Data.Http (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Json.Core (>= 6.4) - restriction: >= netstandard2.0 - FSharp.Data.Runtime.Utilities (>= 6.4) - restriction: >= netstandard2.0 + FSharp.Core (>= 6.0.1) + FSharp.Data.Csv.Core (>= 6.4) + FSharp.Data.Html.Core (>= 6.4) + FSharp.Data.Http (>= 6.4) + FSharp.Data.Json.Core (>= 6.4) + FSharp.Data.Runtime.Utilities (>= 6.4) + FSharp.Data.WorldBank.Core (>= 6.4) + FSharp.Data.Xml.Core (>= 6.4) + FSharp.Data.Csv.Core (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Runtime.Utilities (>= 6.4) + FSharp.Data.Html.Core (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Csv.Core (>= 6.4) + FSharp.Data.Runtime.Utilities (>= 6.4) + FSharp.Data.Http (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Json.Core (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Http (>= 6.4) + FSharp.Data.Runtime.Utilities (>= 6.4) + FSharp.Data.Runtime.Utilities (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Http (>= 6.4) + FSharp.Data.WorldBank.Core (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Http (>= 6.4) + FSharp.Data.Json.Core (>= 6.4) + FSharp.Data.Runtime.Utilities (>= 6.4) + FSharp.Data.Xml.Core (6.4) + FSharp.Core (>= 6.0.1) + FSharp.Data.Http (>= 6.4) + FSharp.Data.Json.Core (>= 6.4) + FSharp.Data.Runtime.Utilities (>= 6.4) FSharp.Text.RegexProvider (2.1) FSharp.Core (>= 4.3.4) - Microsoft.NETCore.Platforms (7.0.4) - restriction: || (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= net45) (< netstandard1.3) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net461) (>= netstandard1.6)) (&& (>= net461) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (< netstandard1.0) (>= netstandard2.0) (< portable-net45+win8)) (&& (< netstandard1.0) (>= netstandard2.0) (>= win8)) (&& (< netstandard1.0) (>= netstandard2.0) (< win8)) (&& (< netstandard1.3) (>= netstandard2.0) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= netstandard2.0) (>= uap10.0)) (&& (>= netstandard2.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= wp8)) - Microsoft.NETCore.Targets (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Mono.Cecil (0.11.5) - restriction: || (>= net461) (>= netstandard2.0) + Microsoft.NETCore.Platforms (7.0.4) + Microsoft.NETCore.Targets (5.0) + Mono.Cecil (0.11.5) Myriad.Core (0.8.1) - fantomas (>= 4.7.9) - restriction: >= netstandard2.1 + fantomas (>= 4.7.9) Myriad.Sdk (0.8.1) - NETStandard.Library (2.0.3) - restriction: || (&& (>= net461) (>= netstandard1.6)) (>= netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4)) (>= net461) (>= netcoreapp2.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8) (< win8)) (&& (< netstandard1.0) (< portable-net45+win8) (>= portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (>= uap10.1) (>= wp8) - Newtonsoft.Json (13.0.3) - restriction: || (>= net461) (>= netstandard2.0) - NuGet.Common (6.9.1) - restriction: >= netstandard2.0 - NuGet.Frameworks (>= 6.9.1) - restriction: >= netstandard2.0 - NuGet.Configuration (6.9.1) - restriction: >= netstandard2.0 - NuGet.Common (>= 6.9.1) - restriction: >= netstandard2.0 - System.Security.Cryptography.ProtectedData (>= 4.4) - restriction: && (< net472) (>= netstandard2.0) - NuGet.Frameworks (6.9.1) - restriction: >= netstandard2.0 - NuGet.Packaging (6.9.1) - restriction: || (>= net461) (>= netstandard2.0) - Newtonsoft.Json (>= 13.0.3) - restriction: >= netstandard2.0 - NuGet.Configuration (>= 6.9.1) - restriction: >= netstandard2.0 - NuGet.Versioning (>= 6.9.1) - restriction: >= netstandard2.0 - System.Security.Cryptography.Pkcs (>= 6.0.4) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= net5.0) - NuGet.Versioning (6.9.1) - restriction: >= netstandard2.0 + NETStandard.Library (2.0.3) + Microsoft.NETCore.Platforms (>= 1.1) + Newtonsoft.Json (13.0.3) + NuGet.Common (6.9.1) + NuGet.Frameworks (>= 6.9.1) + NuGet.Configuration (6.9.1) + NuGet.Common (>= 6.9.1) + System.Security.Cryptography.ProtectedData (>= 4.4) + NuGet.Frameworks (6.9.1) + NuGet.Packaging (6.9.1) + Newtonsoft.Json (>= 13.0.3) + NuGet.Configuration (>= 6.9.1) + NuGet.Versioning (>= 6.9.1) + System.Security.Cryptography.Pkcs (>= 6.0.4) + NuGet.Versioning (6.9.1) Paket.Core (8.0.3) - Chessie (>= 0.6) - restriction: || (>= net461) (>= netstandard2.0) - FSharp.Core (6.0.3) - restriction: || (>= net461) (>= netstandard2.0) - Mono.Cecil (>= 0.11.3 < 0.12) - restriction: || (>= net461) (>= netstandard2.0) - Newtonsoft.Json (>= 13.0.1) - restriction: || (>= net461) (>= netstandard2.0) - NuGet.Packaging (>= 5.9.1) - restriction: || (>= net461) (>= netstandard2.0) - System.Net.Http (>= 4.3.4) - restriction: && (< net461) (>= netstandard2.0) - System.Net.Http.WinHttpHandler (>= 5.0) - restriction: || (>= net461) (>= netstandard2.0) - System.Security.Cryptography.ProtectedData (>= 5.0) - restriction: || (>= net461) (>= netstandard2.0) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + Chessie (>= 0.6) + FSharp.Core (6.0.3) + Mono.Cecil (>= 0.11.3 < 0.12) + Newtonsoft.Json (>= 13.0.1) + NuGet.Packaging (>= 5.9.1) + System.Net.Http (>= 4.3.4) + System.Net.Http.WinHttpHandler (>= 5.0) + System.Security.Cryptography.ProtectedData (>= 5.0) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.native.System (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.Net.Http (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Net.Http (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System.Security.Cryptography.Apple (4.3.1) runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) @@ -192,265 +196,248 @@ NUGET runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Buffers (4.5.1) - restriction: || (>= net462) (&& (>= net5.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.0)) (&& (< net6.0) (>= netstandard2.1)) (&& (>= netstandard2.0) (< netstandard2.1)) - System.Collections (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Collections.Concurrent (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Collections (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Diagnostics.Tracing (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) - System.Diagnostics.Debug (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Diagnostics.DiagnosticSource (8.0.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net6.0) (>= netstandard2.0)) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) - System.Diagnostics.Tracing (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Formats.Asn1 (8.0) - restriction: || (&& (< net462) (>= netstandard2.0)) (&& (>= net5.0) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp3.0) (< xamarintvos) (< xamarinwatchos)) (>= netstandard2.1) - System.Buffers (>= 4.5.1) - restriction: || (>= net462) (&& (< net6.0) (>= netstandard2.0)) - System.Memory (>= 4.5.5) - restriction: || (>= net462) (&& (< net6.0) (>= netstandard2.0)) - System.Globalization (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Globalization.Calendars (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization.Extensions (4.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.IO.FileSystem (4.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO.FileSystem.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO.FileSystem.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= net46) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Linq (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Diagnostics.Debug (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Memory (4.5.5) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (>= net461) (>= netstandard2.0)) (>= net462) (&& (>= net5.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.0)) (&& (>= netstandard2.0) (< netstandard2.1)) - System.Buffers (>= 4.5.1) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) - System.Numerics.Vectors (>= 4.5) - restriction: >= net461 - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) - System.Net.Http (4.3.4) - restriction: && (< net461) (>= netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - runtime.native.System (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Net.Http (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Diagnostics.DiagnosticSource (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Globalization.Extensions (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.IO.FileSystem (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Net.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Security.Cryptography.Algorithms (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.X509Certificates (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) - System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Net.Http.WinHttpHandler (8.0) - restriction: || (>= net461) (>= netstandard2.0) - System.Buffers (>= 4.5.1) - restriction: >= net462 - System.Memory (>= 4.5.5) - restriction: >= net462 - System.Net.Primitives (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) - Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) - System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) - System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Numerics.Vectors (4.5) - restriction: >= net462 - System.Reflection (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (>= netcoreapp1.1) (< netstandard1.6) (>= netstandard2.0)) (&& (< net45) (< netcoreapp1.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Reflection.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (>= netcoreapp1.1) (< netstandard1.6) (>= netstandard2.0)) (&& (< net45) (< netcoreapp1.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.CompilerServices.Unsafe (6.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= net6.0) (< netstandard1.6)) (&& (< net45) (< net6.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net462) (&& (>= net6.0) (< net7.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Extensions (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Handles (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netcoreapp1.1) (< netstandard1.6) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net462) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= netcoreapp1.1) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Numerics (4.3) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= net46) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Collections (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Handles (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Numerics (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< netstandard1.4)) (&& (>= net461) (< netstandard1.6)) (>= net463) - System.Text.Encoding (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Cng (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< net462) (>= netstandard2.0) (< netstandard2.1)) (&& (>= net5.0) (< net6.0)) (&& (>= net5.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.1)) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: && (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1) (< xamarintvos) (< xamarinwatchos) - System.Formats.Asn1 (>= 5.0) - restriction: && (>= netcoreapp3.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Csp (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) - System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Collections (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Collections.Concurrent (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Linq (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.OpenSsl (5.0) - restriction: && (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: && (>= netcoreapp2.0) (< netcoreapp2.1) - System.Formats.Asn1 (>= 5.0) - restriction: >= netcoreapp3.0 - System.Security.Cryptography.Pkcs (8.0) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= net5.0) - System.Buffers (>= 4.5.1) - restriction: && (< net462) (>= netstandard2.0) (< netstandard2.1) - System.Formats.Asn1 (>= 8.0) - restriction: || (&& (< net462) (>= netstandard2.0)) (>= netstandard2.1) - System.Memory (>= 4.5.5) - restriction: && (< net462) (>= netstandard2.0) (< netstandard2.1) - System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (< net462) (>= netstandard2.0) (< netstandard2.1)) (&& (< net6.0) (>= netstandard2.1)) - System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.ProtectedData (8.0) - restriction: || (>= net461) (>= netstandard2.0) - System.Memory (>= 4.5.5) - restriction: && (< net462) (< net6.0) (>= netstandard2.0) - System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< net461) (>= netstandard2.0)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Net.Http (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Collections (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Diagnostics.Debug (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Globalization.Calendars (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO.FileSystem (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO.FileSystem.Primitives (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime.InteropServices (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Numerics (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< netstandard1.4)) (>= net461) - System.Security.Cryptography.Cng (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Csp (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (>= net46) (< netstandard1.4)) (>= net461) - System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Text.Encoding (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Threading (>= 4.3) - restriction: && (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Text.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Threading (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Threading.Tasks (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + System.Collections (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Collections.Concurrent (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Diagnostics.Debug (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Diagnostics.DiagnosticSource (8.0.1) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Diagnostics.Tracing (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Formats.Asn1 (8.0) + System.Globalization (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Globalization.Calendars (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Runtime (>= 4.3) + System.Globalization.Extensions (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.IO (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.IO.FileSystem (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.IO (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.IO.FileSystem.Primitives (4.3) + System.Runtime (>= 4.3) + System.Linq (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Net.Http (4.3.4) + Microsoft.NETCore.Platforms (>= 1.1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.DiagnosticSource (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Http.WinHttpHandler (8.0) + System.Net.Primitives (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (>= 4.3) + System.Reflection (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.IO (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Reflection.Primitives (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Resources.ResourceManager (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime.CompilerServices.Unsafe (6.0) + System.Runtime.Extensions (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Reflection (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.Numerics (4.3) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Security.Cryptography.Algorithms (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Security.Cryptography.Cng (5.0) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Csp (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.IO (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Security.Cryptography.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) + System.Collections (>= 4.3) + System.Collections.Concurrent (>= 4.3) + System.Linq (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (5.0) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Pkcs (8.0) + System.Formats.Asn1 (>= 8.0) + System.Security.Cryptography.Primitives (4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Security.Cryptography.ProtectedData (8.0) + System.Security.Cryptography.X509Certificates (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Calendars (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Cng (>= 4.3) + System.Security.Cryptography.Csp (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Text.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Threading (4.3) + System.Runtime (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Tasks (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) GROUP Test STORAGE: NONE @@ -491,29 +478,29 @@ NUGET Microsoft.Extensions.Primitives (>= 8.0) Microsoft.Extensions.Primitives (8.0) OneOf (3.0.263) - Pulumi (3.60) + Pulumi (3.63.1) Ben.Demystifier (>= 0.4.1) - Grpc.AspNetCore.Server (>= 2.51) - Grpc.AspNetCore.Server.Reflection (>= 2.51) - Grpc.Net.Client (>= 2.51) + Grpc.AspNetCore.Server (>= 2.37) + Grpc.AspNetCore.Server.Reflection (>= 2.37) + Grpc.Net.Client (>= 2.52) Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) OneOf (>= 3.0.216) Pulumi.Protobuf (>= 3.20.1) Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Aws (6.30) - Pulumi (>= 3.60) - Pulumi.Azure (5.71) - Pulumi (>= 3.60) - Pulumi.AzureAD (5.47.2) - Pulumi (>= 3.59) - Pulumi.AzureNative (2.36) + Pulumi.Aws (6.32) + Pulumi (>= 3.61) + Pulumi.Azure (5.74) + Pulumi (>= 3.63.1) + Pulumi.AzureAD (5.48) Pulumi (>= 3.60) + Pulumi.AzureNative (2.39) + Pulumi (>= 3.63.1) System.Collections.Immutable (>= 5.0) - Pulumi.FSharp (3.60) + Pulumi.FSharp (3.63.1) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.60) + Pulumi (>= 3.63.1) Pulumi.FSharp.Aws (5.11.0.7) FSharp.Core (>= 6.0.5) Pulumi.Aws (>= 5.11) @@ -545,11 +532,11 @@ NUGET FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) Pulumi.Tls (>= 4.6.1) - Pulumi.Gcp (7.18) - Pulumi (>= 3.60) - Pulumi.Kubernetes (4.10) + Pulumi.Gcp (7.20) + Pulumi (>= 3.62) + Pulumi.Kubernetes (4.11) Glob (>= 1.1.5) - Pulumi (>= 3.60) + Pulumi (>= 3.61) Pulumi.Protobuf (3.20.1) Pulumi.Tls (5.0.2) Pulumi (>= 3.60) From 5e9228e078b94c708123d5f0f6465d15de1d3b56 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 4 May 2024 20:14:12 -0300 Subject: [PATCH 008/113] Use .NET 6.0 for Pulumi.FSharp.Myriad compiler plugin (#8) * aws 6.32->6.33; tls 5.0.2->5.0.3; fix kubernetes and azure providers * indicate rebuild of all providers --- Pulumi.FSharp.Auth0/Myriad.fs | 2 +- Pulumi.FSharp.Aws/Myriad.fs | 2 +- Pulumi.FSharp.Azure/Myriad.fs | 2 +- Pulumi.FSharp.AzureAD/Myriad.fs | 2 +- Pulumi.FSharp.AzureNative/Myriad.fs | 2 +- Pulumi.FSharp.AzureNativeV2/Myriad.fs | 2 +- Pulumi.FSharp.Command/Myriad.fs | 2 +- Pulumi.FSharp.DigitalOcean/Myriad.fs | 2 +- Pulumi.FSharp.Docker/Myriad.fs | 2 +- Pulumi.FSharp.Gcp/Myriad.fs | 2 +- Pulumi.FSharp.Kubernetes/Myriad.fs | 2 +- Pulumi.FSharp.Myriad/Modules.fs | 39 +++++++++++++-------------- Pulumi.FSharp.Random/Myriad.fs | 2 +- Pulumi.FSharp.Tls/Myriad.fs | 2 +- paket.lock | 16 +++++------ 15 files changed, 40 insertions(+), 41 deletions(-) diff --git a/Pulumi.FSharp.Auth0/Myriad.fs b/Pulumi.FSharp.Auth0/Myriad.fs index 3a4e013..4f619da 100644 --- a/Pulumi.FSharp.Auth0/Myriad.fs +++ b/Pulumi.FSharp.Auth0/Myriad.fs @@ -1,3 +1,3 @@ module private Auth0 -module Force = let private nonce = 134565888 \ No newline at end of file +module Force = let private nonce = 1060204202 \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/Myriad.fs b/Pulumi.FSharp.Aws/Myriad.fs index 93d2f12..68807c2 100644 --- a/Pulumi.FSharp.Aws/Myriad.fs +++ b/Pulumi.FSharp.Aws/Myriad.fs @@ -1,3 +1,3 @@ module private Aws -module Force = let private nonce = 1179691810 \ No newline at end of file +module Force = let private nonce = 1834361653 \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Myriad.fs b/Pulumi.FSharp.Azure/Myriad.fs index d210fe9..074026e 100644 --- a/Pulumi.FSharp.Azure/Myriad.fs +++ b/Pulumi.FSharp.Azure/Myriad.fs @@ -1,3 +1,3 @@ module private Azure -module Force = let private nonce = 1245745251 \ No newline at end of file +module Force = let private nonce = 2039444796 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/Myriad.fs b/Pulumi.FSharp.AzureAD/Myriad.fs index 907f299..d2ed735 100644 --- a/Pulumi.FSharp.AzureAD/Myriad.fs +++ b/Pulumi.FSharp.AzureAD/Myriad.fs @@ -1,3 +1,3 @@ module private AzureAD -module Force = let private nonce = 919275682 \ No newline at end of file +module Force = let private nonce = 1324249853 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/Myriad.fs b/Pulumi.FSharp.AzureNative/Myriad.fs index db4c6e0..ac97709 100644 --- a/Pulumi.FSharp.AzureNative/Myriad.fs +++ b/Pulumi.FSharp.AzureNative/Myriad.fs @@ -1,3 +1,3 @@ module private Azure -module Force = let private nonce = 1183321333 \ No newline at end of file +module Force = let private nonce = 785606208 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/Myriad.fs b/Pulumi.FSharp.AzureNativeV2/Myriad.fs index 3f04143..767d643 100644 --- a/Pulumi.FSharp.AzureNativeV2/Myriad.fs +++ b/Pulumi.FSharp.AzureNativeV2/Myriad.fs @@ -1,3 +1,3 @@ module private AzureNativeV2 -module Force = let private nonce = 11448757 \ No newline at end of file +module Force = let private nonce = 1019221196 \ No newline at end of file diff --git a/Pulumi.FSharp.Command/Myriad.fs b/Pulumi.FSharp.Command/Myriad.fs index 42179af..71cc2d4 100644 --- a/Pulumi.FSharp.Command/Myriad.fs +++ b/Pulumi.FSharp.Command/Myriad.fs @@ -1,3 +1,3 @@ module private Command -module Force = let private nonce = 1777297963 \ No newline at end of file +module Force = let private nonce = 1868253726 \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/Myriad.fs b/Pulumi.FSharp.DigitalOcean/Myriad.fs index 0410105..ff6761c 100644 --- a/Pulumi.FSharp.DigitalOcean/Myriad.fs +++ b/Pulumi.FSharp.DigitalOcean/Myriad.fs @@ -1,3 +1,3 @@ module private DigitalOcean -module Force = let private nonce = 2107228942 \ No newline at end of file +module Force = let private nonce = 237972812 \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/Myriad.fs b/Pulumi.FSharp.Docker/Myriad.fs index 400bcd6..4cd7ef4 100644 --- a/Pulumi.FSharp.Docker/Myriad.fs +++ b/Pulumi.FSharp.Docker/Myriad.fs @@ -1,3 +1,3 @@ module private Docker -module Force = let private nonce = 412793405 \ No newline at end of file +module Force = let private nonce = 1504430674 \ No newline at end of file diff --git a/Pulumi.FSharp.Gcp/Myriad.fs b/Pulumi.FSharp.Gcp/Myriad.fs index 05b53b7..d560a70 100644 --- a/Pulumi.FSharp.Gcp/Myriad.fs +++ b/Pulumi.FSharp.Gcp/Myriad.fs @@ -1,3 +1,3 @@ module private Gcp -module Force = let private nonce = 123845432 \ No newline at end of file +module Force = let private nonce = 1149429260 \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/Myriad.fs b/Pulumi.FSharp.Kubernetes/Myriad.fs index 04b26ee..37de23b 100644 --- a/Pulumi.FSharp.Kubernetes/Myriad.fs +++ b/Pulumi.FSharp.Kubernetes/Myriad.fs @@ -1,3 +1,3 @@ module private Kubernetes -module Force = let private nonce = 400342244 \ No newline at end of file +module Force = let private nonce = 293305797 \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Modules.fs b/Pulumi.FSharp.Myriad/Modules.fs index f17dafa..8815075 100644 --- a/Pulumi.FSharp.Myriad/Modules.fs +++ b/Pulumi.FSharp.Myriad/Modules.fs @@ -209,36 +209,37 @@ let private createPTypes isType allTypes properties = let private missingStatusTypes = [| - "VolumeAttachment" - "PodDisruptionBudget" - "Ingress" - "FlowSchema" - "PriorityLevelConfiguration" + "APIService" + "CertificateSigningRequest" + "CronJob" + "CustomResourceDefinition" "DaemonSet" "Deployment" - "ReplicaSet" + "FlowSchema" + "HorizontalPodAutoscaler" + "Ingress" + "Job" "Namespace" + "NetworkPolicy" "Node" "PersistentVolume" "PersistentVolumeClaim" + "PersistentVolumeClaimPatch" "Pod" + "PodDisruptionBudget" + "PodScheduling" + "PodSchedulingContext" + "PriorityLevelConfiguration" + "ReplicaSet" "ReplicationController" + "ResourceClaim" "ResourceQuota" "Service" - "CertificateSigningRequest" - "CronJob" - "Job" - "HorizontalPodAutoscaler" + "ServiceCIDR" "StatefulSet" - "APIService" - "CustomResourceDefinition" - "PersistentVolumeClaimPatch" - "NetworkPolicy" - "PodSchedulingContext" - "ResourceClaim" - "PodScheduling" + "StorageVersionMigration" "ValidatingAdmissionPolicy" - "ServiceCIDR" + "VolumeAttachment" |] |> Set.ofArray let createTypes (schema : JsonValue) = @@ -389,8 +390,6 @@ let createTypes (schema : JsonValue) = -> properties |> Array.filter (function pName, _ -> pName <> "conditionSets") | "azure-native", false, x when Array.contains x [| "HybridRunbookWorkerGroup" |] -> properties |> Array.filter (function pName, _ -> pName <> "name") - | "azure-native", false, x when Array.contains x [| "StorageVersionMigrationArgs" |] - -> properties |> Array.filter (function pName, _ -> pName <> "status") | _ -> properties diff --git a/Pulumi.FSharp.Random/Myriad.fs b/Pulumi.FSharp.Random/Myriad.fs index fe43caa..81bf2ce 100644 --- a/Pulumi.FSharp.Random/Myriad.fs +++ b/Pulumi.FSharp.Random/Myriad.fs @@ -1,3 +1,3 @@ module private Random -module Force = let private nonce = 1142338327 \ No newline at end of file +module Force = let private nonce = 938985889 \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/Myriad.fs b/Pulumi.FSharp.Tls/Myriad.fs index c43b634..d62a06e 100644 --- a/Pulumi.FSharp.Tls/Myriad.fs +++ b/Pulumi.FSharp.Tls/Myriad.fs @@ -1,3 +1,3 @@ module private Tls -module Force = let private nonce = 1680981972 \ No newline at end of file +module Force = let private nonce = 2146481243 \ No newline at end of file diff --git a/paket.lock b/paket.lock index e5f42bb..33c33a8 100644 --- a/paket.lock +++ b/paket.lock @@ -50,8 +50,8 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.3.1) Pulumi (>= 3.60) - Pulumi.Aws (6.32) - Pulumi (>= 3.61) + Pulumi.Aws (6.33) + Pulumi (>= 3.63.1) Pulumi.Azure (5.74) Pulumi (>= 3.63.1) Pulumi.AzureAD (5.48) @@ -76,8 +76,8 @@ NUGET Pulumi.Protobuf (3.20.1) Pulumi.Random (4.16.1) Pulumi (>= 3.61) - Pulumi.Tls (5.0.2) - Pulumi (>= 3.60) + Pulumi.Tls (5.0.3) + Pulumi (>= 3.63.1) Semver (2.3) Serilog (3.1.1) Serilog.Extensions.Logging (8.0) @@ -489,8 +489,8 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Aws (6.32) - Pulumi (>= 3.61) + Pulumi.Aws (6.33) + Pulumi (>= 3.63.1) Pulumi.Azure (5.74) Pulumi (>= 3.63.1) Pulumi.AzureAD (5.48) @@ -538,8 +538,8 @@ NUGET Glob (>= 1.1.5) Pulumi (>= 3.61) Pulumi.Protobuf (3.20.1) - Pulumi.Tls (5.0.2) - Pulumi (>= 3.60) + Pulumi.Tls (5.0.3) + Pulumi (>= 3.63.1) Semver (2.3) Serilog (3.1.1) Serilog.Extensions.Logging (8.0) From d569e8e15d3d24ff3cffd3f3578941f3138a8614 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sun, 5 May 2024 12:40:57 -0300 Subject: [PATCH 009/113] aws 6.33->6.33.1 --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 33c33a8..a22dd24 100644 --- a/paket.lock +++ b/paket.lock @@ -50,7 +50,7 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.3.1) Pulumi (>= 3.60) - Pulumi.Aws (6.33) + Pulumi.Aws (6.33.1) Pulumi (>= 3.63.1) Pulumi.Azure (5.74) Pulumi (>= 3.63.1) @@ -489,7 +489,7 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Aws (6.33) + Pulumi.Aws (6.33.1) Pulumi (>= 3.63.1) Pulumi.Azure (5.74) Pulumi (>= 3.63.1) From 2be893eb62d3da87731817d70942dc00ee94c233 Mon Sep 17 00:00:00 2001 From: Cadence Date: Fri, 14 Jun 2024 23:32:03 -0300 Subject: [PATCH 010/113] Merge CI updates to main (#15) * Update build system to use FAKE 6 and Github Actions (#9) * use miniscaffold; upgrade FAKE * feat(build): nuget package versioning, publish prerelease * add global.json; only use .net 8 sdk (#10) * feat(GHA): build on pr; fantomas only formats src (#11) * fix(build): fix build order and references for providers using Pulumi.FSHarp.Myriad (#12) * fix(build): fix build order and references for providers using Pulumi.FSHarp.Myriad * fix publish url and nuget package versioning (#13) * fix(nuget): use api/v2/package publish url suffix * replace paket push with nuget * fix(build): use correct nuget uri suffix * fix(gha): +package publish permissions * Automatically run Paket Update in CI (#14) * feat(gha): +paket update cronjob * feat(gha) +publishprovider build targets --- .config/dotnet-tools.json | 24 +- .devcontainer/Dockerfile | 17 + .devcontainer/devcontainer.json | 73 ++ .editorconfig | 70 ++ .fantomasignore | 5 + .git-blame-ignore-revs | 6 + .gitattributes | 27 + .github/ISSUE_TEMPLATE.md | 31 + .github/ISSUE_TEMPLATE/bug_report.md | 35 + .github/ISSUE_TEMPLATE/feature_request.md | 17 + .github/PULL_REQUEST_TEMPLATE.md | 25 + .github/workflows/build-and-test.yml | 26 + .github/workflows/fsdocs-gh-pages.yml | 58 + .github/workflows/paket-autoupdate.yml | 25 + .github/workflows/publish.yml | 34 + .gitignore | 17 +- .vscode/extensions.json | 9 + .vscode/launch.json | 6 +- .vscode/settings.json | 7 + CHANGELOG.md | 20 + Directory.Build.props | 27 + Directory.Build.targets | 27 + Dockerfile | 17 + FAKE.yml | 49 - LICENSE => LICENSE.md | 121 +-- Main.fs | 9 + Pulumi.FSharp.Auth0/Myriad.fs | 3 - Pulumi.FSharp.Aws/Myriad.fs | 3 - Pulumi.FSharp.Azure/Myriad.fs | 3 - Pulumi.FSharp.Azure/paket.references | 4 - Pulumi.FSharp.AzureAD/Myriad.fs | 3 - .../NamingConventions.fs | 41 - .../paket.references | 2 - Pulumi.FSharp.AzureNative/Myriad.fs | 3 - .../Pulumi.FSharp.AzureNative.fsproj | 47 - Pulumi.FSharp.AzureNative/paket.references | 4 - Pulumi.FSharp.AzureNativeV2/Myriad.fs | 3 - Pulumi.FSharp.Command/Myriad.fs | 3 - Pulumi.FSharp.Command/command.0.0.3.json | 286 ----- Pulumi.FSharp.Core/Assets.fs | 48 - Pulumi.FSharp.Core/OutputBuilder.fs | 27 - Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj | 26 - Pulumi.FSharp.Core/build.fsx | 98 -- Pulumi.FSharp.Core/paket.references | 2 - Pulumi.FSharp.DigitalOcean/Myriad.fs | 3 - Pulumi.FSharp.Docker/Myriad.fs | 3 - Pulumi.FSharp.Extensions.sln | 217 ++-- Pulumi.FSharp.Gcp/Myriad.fs | 3 - .../.paket/Paket.Restore.targets | 560 ---------- Pulumi.FSharp.Kubernetes/Myriad.fs | 3 - Pulumi.FSharp.Myriad/AstHelpers.fs | 290 ----- Pulumi.FSharp.Myriad/Attribute.fs | 16 - Pulumi.FSharp.Myriad/Builder.fs | 203 ---- Pulumi.FSharp.Myriad/BuilderInstance.fs | 44 - Pulumi.FSharp.Myriad/Core.fs | 32 - Pulumi.FSharp.Myriad/IndexModule.fs | 135 --- Pulumi.FSharp.Myriad/Let.fs | 12 - Pulumi.FSharp.Myriad/Member.fs | 61 -- Pulumi.FSharp.Myriad/Namespace.fs | 11 - Pulumi.FSharp.Myriad/Operations.fs | 323 ------ Pulumi.FSharp.Myriad/Run.fs | 10 - Pulumi.FSharp.Myriad/Schema.fs | 25 - Pulumi.FSharp.Myriad/Yield.fs | 22 - Pulumi.FSharp.Myriad/paket.references | 6 - Pulumi.FSharp.NuGet.Test/.gitignore | 353 ------- Pulumi.FSharp.NuGet.Test/Program.fs | 239 ----- .../Pulumi.FSharp.NuGet.Test.fsproj | 16 - Pulumi.FSharp.NuGet.Test/Pulumi.test.yaml | 9 - Pulumi.FSharp.NuGet.Test/Pulumi.yaml | 3 - Pulumi.FSharp.NuGet.Test/paket.references | 10 - Pulumi.FSharp.Random/Myriad.fs | 3 - Pulumi.FSharp.Test/.gitignore | 353 ------- Pulumi.FSharp.Test/Program.fs | 1 - Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj | 25 - Pulumi.FSharp.Test/Pulumi.test.yaml | 1 - Pulumi.FSharp.Test/Pulumi.yaml | 1 - Pulumi.FSharp.Test/paket.references | 1 - Pulumi.FSharp.Tls/Myriad.fs | 3 - build.cmd | 1 + build.fsx | 286 ----- build.fsx.lock | 239 ----- build.sh | 6 + build/Changelog.fs | 299 ++++++ build/FsDocs.fs | 242 +++++ build/build.fs | 999 ++++++++++++++++++ build/build.fsproj | 16 + build/paket.references | 16 + devcontainer.json | 73 ++ fake.cmd | 2 - fake.sh | 7 - global.json | 5 +- paket.dependencies | 100 +- paket.lock | 775 +++++++++++--- .../Pulumi.FSharp.Auth0}/.gitignore | 0 providers/Pulumi.FSharp.Auth0/Myriad.fs | 3 + .../Pulumi.FSharp.Auth0.fsproj | 35 + .../Pulumi.FSharp.Auth0}/myriad.toml | 0 .../Pulumi.FSharp.Auth0}/paket.references | 1 - .../Pulumi.FSharp.Aws}/.gitignore | 0 providers/Pulumi.FSharp.Aws/Myriad.fs | 3 + .../Pulumi.FSharp.Aws.fsproj | 14 +- .../Pulumi.FSharp.Aws}/myriad.toml | 0 .../Pulumi.FSharp.Aws}/paket.references | 1 - .../Pulumi.FSharp.Azure}/.gitignore | 0 providers/Pulumi.FSharp.Azure/Myriad.fs | 3 + .../Pulumi.FSharp.Azure.fsproj | 15 +- .../Pulumi.FSharp.Azure}/Storage/SasToken.fs | 113 +- .../Pulumi.FSharp.Azure}/myriad.toml | 0 .../Pulumi.FSharp.Azure/paket.references | 3 + .../Pulumi.FSharp.AzureAD}/.gitignore | 0 providers/Pulumi.FSharp.AzureAD/Myriad.fs | 4 + .../Pulumi.FSharp.AzureAD.fsproj | 9 +- .../Pulumi.FSharp.AzureAD}/myriad.toml | 0 .../Pulumi.FSharp.AzureAD}/paket.references | 1 - .../Pulumi.FSharp.AzureNative}/.gitignore | 0 providers/Pulumi.FSharp.AzureNative/Myriad.fs | 3 + .../Pulumi.FSharp.AzureNative.fsproj | 15 +- .../Pulumi.FSharp.AzureNative}/myriad.toml | 0 .../paket.references | 3 + .../Pulumi.FSharp.AzureNativeV2}/.gitignore | 0 .../Pulumi.FSharp.AzureNativeV2/Myriad.fs | 3 + .../Pulumi.FSharp.AzureNativeV2.fsproj | 13 +- .../Pulumi.FSharp.AzureNativeV2}/myriad.toml | 0 .../paket.references | 1 - .../Pulumi.FSharp.Command}/.gitignore | 0 providers/Pulumi.FSharp.Command/Myriad.fs | 3 + .../Pulumi.FSharp.Command.fsproj | 9 +- .../Pulumi.FSharp.Command}/myriad.toml | 0 .../Pulumi.FSharp.Command}/paket.references | 1 - .../Pulumi.FSharp.DigitalOcean}/.gitignore | 0 .../Pulumi.FSharp.DigitalOcean/Myriad.fs | 3 + .../Pulumi.FSharp.DigitalOcean.fsproj | 9 +- .../Pulumi.FSharp.DigitalOcean}/myriad.toml | 0 .../paket.references | 1 - .../Pulumi.FSharp.Docker}/.gitignore | 0 providers/Pulumi.FSharp.Docker/Myriad.fs | 3 + .../Pulumi.FSharp.Docker.fsproj | 9 +- .../Pulumi.FSharp.Docker}/myriad.toml | 0 .../Pulumi.FSharp.Docker}/paket.references | 1 - .../Pulumi.FSharp.Gcp}/.gitignore | 0 providers/Pulumi.FSharp.Gcp/Myriad.fs | 3 + .../Pulumi.FSharp.Gcp.fsproj | 9 +- .../Pulumi.FSharp.Gcp}/myriad.toml | 0 .../Pulumi.FSharp.Gcp}/paket.references | 1 - .../Pulumi.FSharp.Kubernetes}/.gitignore | 0 providers/Pulumi.FSharp.Kubernetes/Myriad.fs | 4 + .../Pulumi.FSharp.Kubernetes.fsproj | 15 +- .../Pulumi.FSharp.Kubernetes}/myriad.toml | 0 .../paket.references | 1 - .../Pulumi.FSharp.Random}/.gitignore | 0 providers/Pulumi.FSharp.Random/Myriad.fs | 3 + .../Pulumi.FSharp.Random.fsproj | 9 +- .../Pulumi.FSharp.Random}/myriad.toml | 0 .../Pulumi.FSharp.Random}/paket.references | 1 - .../Pulumi.FSharp.Tls}/.gitignore | 0 providers/Pulumi.FSharp.Tls/Myriad.fs | 3 + .../Pulumi.FSharp.Tls.fsproj | 9 +- .../Pulumi.FSharp.Tls}/myriad.toml | 0 .../Pulumi.FSharp.Tls}/paket.references | 1 - .../Locations.fs | 2 +- .../NamingConventions.fs | 46 + .../Pulumi.FSharp.AzureNative.Common.fsproj | 2 +- .../paket.references | 1 + src/Pulumi.FSharp.Core/Assets.fs | 60 ++ .../Pulumi.FSharp.Core}/Config.fs | 8 +- .../Pulumi.FSharp.Core}/FAKE.yml | 0 src/Pulumi.FSharp.Core/OutputBuilder.fs | 27 + .../Pulumi.FSharp.Core.fsproj | 17 + src/Pulumi.FSharp.Core/build.fsx | 119 +++ .../Pulumi.FSharp.Core}/build.fsx.lock | 0 src/Pulumi.FSharp.Core/paket.references | 1 + src/Pulumi.FSharp.Myriad/AstHelpers.fs | 323 ++++++ src/Pulumi.FSharp.Myriad/Attribute.fs | 19 + src/Pulumi.FSharp.Myriad/Builder.fs | 228 ++++ src/Pulumi.FSharp.Myriad/BuilderInstance.fs | 76 ++ src/Pulumi.FSharp.Myriad/Core.fs | 27 + .../Pulumi.FSharp.Myriad}/Debug.fs | 130 ++- .../Pulumi.FSharp.Myriad}/Generator.fs | 56 +- src/Pulumi.FSharp.Myriad/IndexModule.fs | 261 +++++ .../Pulumi.FSharp.Myriad}/Instance.fs | 8 +- src/Pulumi.FSharp.Myriad/Let.fs | 15 + src/Pulumi.FSharp.Myriad/Member.fs | 75 ++ .../Pulumi.FSharp.Myriad}/Modules.fs | 101 +- src/Pulumi.FSharp.Myriad/Namespace.fs | 14 + src/Pulumi.FSharp.Myriad/Operations.fs | 425 ++++++++ .../Pulumi.FSharp.Myriad.fsproj | 8 +- src/Pulumi.FSharp.Myriad/Run.fs | 8 + src/Pulumi.FSharp.Myriad/Schema.fs | 29 + src/Pulumi.FSharp.Myriad/Yield.fs | 21 + .../build/Pulumi.FSharp.Myriad.InTest.props | 0 .../build/Pulumi.FSharp.Myriad.props | 0 .../Pulumi.FSharp.Myriad}/myriad.toml | 0 src/Pulumi.FSharp.Myriad/paket.references | 5 + 193 files changed, 5198 insertions(+), 4706 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .editorconfig create mode 100644 .fantomasignore create mode 100644 .git-blame-ignore-revs create mode 100644 .gitattributes create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/build-and-test.yml create mode 100644 .github/workflows/fsdocs-gh-pages.yml create mode 100644 .github/workflows/paket-autoupdate.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 CHANGELOG.md create mode 100644 Directory.Build.props create mode 100644 Directory.Build.targets create mode 100644 Dockerfile delete mode 100644 FAKE.yml rename LICENSE => LICENSE.md (67%) create mode 100644 Main.fs delete mode 100644 Pulumi.FSharp.Auth0/Myriad.fs delete mode 100644 Pulumi.FSharp.Aws/Myriad.fs delete mode 100644 Pulumi.FSharp.Azure/Myriad.fs delete mode 100644 Pulumi.FSharp.Azure/paket.references delete mode 100644 Pulumi.FSharp.AzureAD/Myriad.fs delete mode 100644 Pulumi.FSharp.AzureNative.Common/NamingConventions.fs delete mode 100644 Pulumi.FSharp.AzureNative.Common/paket.references delete mode 100644 Pulumi.FSharp.AzureNative/Myriad.fs delete mode 100644 Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj delete mode 100644 Pulumi.FSharp.AzureNative/paket.references delete mode 100644 Pulumi.FSharp.AzureNativeV2/Myriad.fs delete mode 100644 Pulumi.FSharp.Command/Myriad.fs delete mode 100644 Pulumi.FSharp.Command/command.0.0.3.json delete mode 100644 Pulumi.FSharp.Core/Assets.fs delete mode 100644 Pulumi.FSharp.Core/OutputBuilder.fs delete mode 100644 Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj delete mode 100644 Pulumi.FSharp.Core/build.fsx delete mode 100644 Pulumi.FSharp.Core/paket.references delete mode 100644 Pulumi.FSharp.DigitalOcean/Myriad.fs delete mode 100644 Pulumi.FSharp.Docker/Myriad.fs delete mode 100644 Pulumi.FSharp.Gcp/Myriad.fs delete mode 100644 Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets delete mode 100644 Pulumi.FSharp.Kubernetes/Myriad.fs delete mode 100644 Pulumi.FSharp.Myriad/AstHelpers.fs delete mode 100644 Pulumi.FSharp.Myriad/Attribute.fs delete mode 100644 Pulumi.FSharp.Myriad/Builder.fs delete mode 100644 Pulumi.FSharp.Myriad/BuilderInstance.fs delete mode 100644 Pulumi.FSharp.Myriad/Core.fs delete mode 100644 Pulumi.FSharp.Myriad/IndexModule.fs delete mode 100644 Pulumi.FSharp.Myriad/Let.fs delete mode 100644 Pulumi.FSharp.Myriad/Member.fs delete mode 100644 Pulumi.FSharp.Myriad/Namespace.fs delete mode 100644 Pulumi.FSharp.Myriad/Operations.fs delete mode 100644 Pulumi.FSharp.Myriad/Run.fs delete mode 100644 Pulumi.FSharp.Myriad/Schema.fs delete mode 100644 Pulumi.FSharp.Myriad/Yield.fs delete mode 100644 Pulumi.FSharp.Myriad/paket.references delete mode 100644 Pulumi.FSharp.NuGet.Test/.gitignore delete mode 100644 Pulumi.FSharp.NuGet.Test/Program.fs delete mode 100644 Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj delete mode 100644 Pulumi.FSharp.NuGet.Test/Pulumi.test.yaml delete mode 100644 Pulumi.FSharp.NuGet.Test/Pulumi.yaml delete mode 100644 Pulumi.FSharp.NuGet.Test/paket.references delete mode 100644 Pulumi.FSharp.Random/Myriad.fs delete mode 100644 Pulumi.FSharp.Test/.gitignore delete mode 120000 Pulumi.FSharp.Test/Program.fs delete mode 100644 Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj delete mode 120000 Pulumi.FSharp.Test/Pulumi.test.yaml delete mode 120000 Pulumi.FSharp.Test/Pulumi.yaml delete mode 100644 Pulumi.FSharp.Test/paket.references delete mode 100644 Pulumi.FSharp.Tls/Myriad.fs create mode 100644 build.cmd delete mode 100644 build.fsx delete mode 100644 build.fsx.lock create mode 100755 build.sh create mode 100644 build/Changelog.fs create mode 100644 build/FsDocs.fs create mode 100644 build/build.fs create mode 100644 build/build.fsproj create mode 100644 build/paket.references create mode 100644 devcontainer.json delete mode 100644 fake.cmd delete mode 100755 fake.sh rename {Pulumi.FSharp.Auth0 => providers/Pulumi.FSharp.Auth0}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Auth0/Myriad.fs create mode 100644 providers/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj rename {Pulumi.FSharp.Auth0 => providers/Pulumi.FSharp.Auth0}/myriad.toml (100%) rename {Pulumi.FSharp.Auth0 => providers/Pulumi.FSharp.Auth0}/paket.references (75%) rename {Pulumi.FSharp.Aws => providers/Pulumi.FSharp.Aws}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Aws/Myriad.fs rename {Pulumi.FSharp.Aws => providers/Pulumi.FSharp.Aws}/Pulumi.FSharp.Aws.fsproj (61%) rename {Pulumi.FSharp.Aws => providers/Pulumi.FSharp.Aws}/myriad.toml (100%) rename {Pulumi.FSharp.Aws => providers/Pulumi.FSharp.Aws}/paket.references (74%) rename {Pulumi.FSharp.Azure => providers/Pulumi.FSharp.Azure}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Azure/Myriad.fs rename {Pulumi.FSharp.Azure => providers/Pulumi.FSharp.Azure}/Pulumi.FSharp.Azure.fsproj (59%) rename {Pulumi.FSharp.Azure => providers/Pulumi.FSharp.Azure}/Storage/SasToken.fs (51%) rename {Pulumi.FSharp.Azure => providers/Pulumi.FSharp.Azure}/myriad.toml (100%) create mode 100644 providers/Pulumi.FSharp.Azure/paket.references rename {Pulumi.FSharp.AzureAD => providers/Pulumi.FSharp.AzureAD}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.AzureAD/Myriad.fs rename {Pulumi.FSharp.AzureAD => providers/Pulumi.FSharp.AzureAD}/Pulumi.FSharp.AzureAD.fsproj (77%) rename {Pulumi.FSharp.AzureAD => providers/Pulumi.FSharp.AzureAD}/myriad.toml (100%) rename {Pulumi.FSharp.AzureAD => providers/Pulumi.FSharp.AzureAD}/paket.references (76%) rename {Pulumi.FSharp.AzureNative => providers/Pulumi.FSharp.AzureNative}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.AzureNative/Myriad.fs rename Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj => providers/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj (72%) rename {Pulumi.FSharp.AzureNative => providers/Pulumi.FSharp.AzureNative}/myriad.toml (100%) create mode 100644 providers/Pulumi.FSharp.AzureNative/paket.references rename {Pulumi.FSharp.AzureNativeV2 => providers/Pulumi.FSharp.AzureNativeV2}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.AzureNativeV2/Myriad.fs rename {Pulumi.FSharp.AzureNativeV2 => providers/Pulumi.FSharp.AzureNativeV2}/Pulumi.FSharp.AzureNativeV2.fsproj (71%) rename {Pulumi.FSharp.AzureNativeV2 => providers/Pulumi.FSharp.AzureNativeV2}/myriad.toml (100%) rename {Pulumi.FSharp.AzureNativeV2 => providers/Pulumi.FSharp.AzureNativeV2}/paket.references (78%) rename {Pulumi.FSharp.Command => providers/Pulumi.FSharp.Command}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Command/Myriad.fs rename {Pulumi.FSharp.Command => providers/Pulumi.FSharp.Command}/Pulumi.FSharp.Command.fsproj (77%) rename {Pulumi.FSharp.Command => providers/Pulumi.FSharp.Command}/myriad.toml (100%) rename {Pulumi.FSharp.Command => providers/Pulumi.FSharp.Command}/paket.references (76%) rename {Pulumi.FSharp.DigitalOcean => providers/Pulumi.FSharp.DigitalOcean}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.DigitalOcean/Myriad.fs rename {Pulumi.FSharp.DigitalOcean => providers/Pulumi.FSharp.DigitalOcean}/Pulumi.FSharp.DigitalOcean.fsproj (77%) rename {Pulumi.FSharp.DigitalOcean => providers/Pulumi.FSharp.DigitalOcean}/myriad.toml (100%) rename {Pulumi.FSharp.DigitalOcean => providers/Pulumi.FSharp.DigitalOcean}/paket.references (78%) rename {Pulumi.FSharp.Docker => providers/Pulumi.FSharp.Docker}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Docker/Myriad.fs rename {Pulumi.FSharp.Docker => providers/Pulumi.FSharp.Docker}/Pulumi.FSharp.Docker.fsproj (77%) rename {Pulumi.FSharp.Docker => providers/Pulumi.FSharp.Docker}/myriad.toml (100%) rename {Pulumi.FSharp.Docker => providers/Pulumi.FSharp.Docker}/paket.references (76%) rename {Pulumi.FSharp.Gcp => providers/Pulumi.FSharp.Gcp}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Gcp/Myriad.fs rename {Pulumi.FSharp.Gcp => providers/Pulumi.FSharp.Gcp}/Pulumi.FSharp.Gcp.fsproj (77%) rename {Pulumi.FSharp.Gcp => providers/Pulumi.FSharp.Gcp}/myriad.toml (100%) rename {Pulumi.FSharp.Gcp => providers/Pulumi.FSharp.Gcp}/paket.references (74%) rename {Pulumi.FSharp.Kubernetes => providers/Pulumi.FSharp.Kubernetes}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Kubernetes/Myriad.fs rename {Pulumi.FSharp.Kubernetes => providers/Pulumi.FSharp.Kubernetes}/Pulumi.FSharp.Kubernetes.fsproj (59%) rename {Pulumi.FSharp.Kubernetes => providers/Pulumi.FSharp.Kubernetes}/myriad.toml (100%) rename {Pulumi.FSharp.Kubernetes => providers/Pulumi.FSharp.Kubernetes}/paket.references (77%) rename {Pulumi.FSharp.Random => providers/Pulumi.FSharp.Random}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Random/Myriad.fs rename {Pulumi.FSharp.Random => providers/Pulumi.FSharp.Random}/Pulumi.FSharp.Random.fsproj (77%) rename {Pulumi.FSharp.Myriad => providers/Pulumi.FSharp.Random}/myriad.toml (100%) rename {Pulumi.FSharp.Random => providers/Pulumi.FSharp.Random}/paket.references (76%) rename {Pulumi.FSharp.Tls => providers/Pulumi.FSharp.Tls}/.gitignore (100%) create mode 100644 providers/Pulumi.FSharp.Tls/Myriad.fs rename {Pulumi.FSharp.Tls => providers/Pulumi.FSharp.Tls}/Pulumi.FSharp.Tls.fsproj (77%) rename {Pulumi.FSharp.Random => providers/Pulumi.FSharp.Tls}/myriad.toml (100%) rename {Pulumi.FSharp.Tls => providers/Pulumi.FSharp.Tls}/paket.references (74%) rename {Pulumi.FSharp.AzureNative.Common => src/Pulumi.FSharp.AzureNative.Common}/Locations.fs (99%) create mode 100644 src/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs rename {Pulumi.FSharp.AzureNative.Common => src/Pulumi.FSharp.AzureNative.Common}/Pulumi.FSharp.AzureNative.Common.fsproj (85%) create mode 100644 src/Pulumi.FSharp.AzureNative.Common/paket.references create mode 100644 src/Pulumi.FSharp.Core/Assets.fs rename {Pulumi.FSharp.Core => src/Pulumi.FSharp.Core}/Config.fs (60%) rename {Pulumi.FSharp.Core => src/Pulumi.FSharp.Core}/FAKE.yml (100%) create mode 100644 src/Pulumi.FSharp.Core/OutputBuilder.fs create mode 100644 src/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj create mode 100644 src/Pulumi.FSharp.Core/build.fsx rename {Pulumi.FSharp.Core => src/Pulumi.FSharp.Core}/build.fsx.lock (100%) create mode 100644 src/Pulumi.FSharp.Core/paket.references create mode 100644 src/Pulumi.FSharp.Myriad/AstHelpers.fs create mode 100644 src/Pulumi.FSharp.Myriad/Attribute.fs create mode 100644 src/Pulumi.FSharp.Myriad/Builder.fs create mode 100644 src/Pulumi.FSharp.Myriad/BuilderInstance.fs create mode 100644 src/Pulumi.FSharp.Myriad/Core.fs rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/Debug.fs (62%) rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/Generator.fs (60%) create mode 100644 src/Pulumi.FSharp.Myriad/IndexModule.fs rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/Instance.fs (50%) create mode 100644 src/Pulumi.FSharp.Myriad/Let.fs create mode 100644 src/Pulumi.FSharp.Myriad/Member.fs rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/Modules.fs (86%) create mode 100644 src/Pulumi.FSharp.Myriad/Namespace.fs create mode 100644 src/Pulumi.FSharp.Myriad/Operations.fs rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/Pulumi.FSharp.Myriad.fsproj (89%) create mode 100644 src/Pulumi.FSharp.Myriad/Run.fs create mode 100644 src/Pulumi.FSharp.Myriad/Schema.fs create mode 100644 src/Pulumi.FSharp.Myriad/Yield.fs rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/build/Pulumi.FSharp.Myriad.InTest.props (100%) rename {Pulumi.FSharp.Myriad => src/Pulumi.FSharp.Myriad}/build/Pulumi.FSharp.Myriad.props (100%) rename {Pulumi.FSharp.Tls => src/Pulumi.FSharp.Myriad}/myriad.toml (100%) create mode 100644 src/Pulumi.FSharp.Myriad/paket.references diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 00d5ac3..896afe9 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -2,10 +2,10 @@ "version": 1, "isRoot": true, "tools": { - "fake-cli": { - "version": "5.20.4", + "dotnet-reportgenerator-globaltool": { + "version": "5.1.18", "commands": [ - "fake" + "reportgenerator" ] }, "paket": { @@ -13,6 +13,24 @@ "commands": [ "paket" ] + }, + "fsharp-analyzers": { + "version": "0.11.0", + "commands": [ + "fsharp-analyzers" + ] + }, + "fantomas": { + "version": "6.0.1", + "commands": [ + "fantomas" + ] + }, + "fsdocs-tool": { + "version": "18.1.0", + "commands": [ + "fsdocs" + ] } } } \ No newline at end of file diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..96c07a3 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,17 @@ +# [Choice] Debian version (use bullseye on local arm64/Apple Silicon): bookworm, bullseye, buster +ARG VARIANT="bookworm" +FROM buildpack-deps:${VARIANT}-curl + + +ENV \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + DOTNET_ROOT=/usr/share/dotnet/ \ + DOTNET_NOLOGO=true \ + DOTNET_CLI_TELEMETRY_OPTOUT=false\ + DOTNET_USE_POLLING_FILE_WATCHER=true + + +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..3f27ab2 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,73 @@ +{ + "name": "dotnet", + // Set the build context one level higher so we can grab metadata like global.json + "context": "..", + "dockerFile": "Dockerfile", + "forwardPorts": [ + 0 + ], + "features": { + // https://github.com/devcontainers/features/blob/main/src/common-utils/README.md + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "installOhMyZshConfig": true, + "configureZshAsDefaultShell": true, + "username": "vscode", + "userUid": "1000", + "userGid": "1000", + "upgradePackages": true + }, + // https://github.com/devcontainers/features/blob/main/src/github-cli/README.md + "ghcr.io/devcontainers/features/github-cli:1": {}, + // https://github.com/devcontainers-contrib/features/blob/main/src/starship/README.md + "ghcr.io/devcontainers-contrib/features/starship:1": {}, + // https://github.com/devcontainers/features/blob/main/src/dotnet/README.md + "ghcr.io/devcontainers/features/dotnet:2": { + "version": "7.0", + "additionalVersions": "6.0" + } + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/common-utils", + "ghcr.io/devcontainers/features/github-cli", + "ghcr.io/devcontainers-contrib/features/starship", + "ghcr.io/devcontainers/features/dotnet" + ], + "customizations": { + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp", + "Ionide.Ionide-fsharp", + "tintoy.msbuild-project-tools", + "ionide.ionide-paket", + "usernamehw.errorlens", + "alefragnani.Bookmarks", + "oderwat.indent-rainbow", + "vscode-icons-team.vscode-icons", + "EditorConfig.EditorConfig", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github", + "github.vscode-github-actions" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "csharp.suppressDotnetInstallWarning": true + } + } + }, + "remoteUser": "vscode", + "containerUser": "vscode", + "containerEnv": { + // Expose the local environment variable to the container + // They are used for releasing and publishing from the container + "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" + }, + "onCreateCommand": { + "enable-starship": "echo 'eval \"$(starship init zsh)\"' >> ~/.zshrc" + }, + "postAttachCommand": { + "restore": "dotnet tool restore && dotnet restore" + }, + "waitFor": "updateContentCommand" +} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..87474da --- /dev/null +++ b/.editorconfig @@ -0,0 +1,70 @@ +# EditorConfig is awesome: +http://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Default settings: +# A newline ending every file +# Use 4 spaces as indentation +[*] +insert_final_newline = true +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true +end_of_line = lf + +[*.{fs,fsi,fsx,config}] +# https://fsprojects.github.io/fantomas/docs/end-users/Configuration.html +charset = utf-8 +trim_trailing_whitespace = true +max_line_length=100 +fsharp_multiline_bracket_style = stroustrup +fsharp_keep_max_number_of_blank_lines=2 +fsharp_max_array_or_list_number_of_items=1 +fsharp_array_or_list_multiline_formatter=number_of_items +fsharp_max_infix_operator_expression=10 +fsharp_multi_line_lambda_closing_newline=true + +# Visual Studio Solution Files +[*.sln] +indent_style = tab + +# XML project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,sfproj}] +indent_size = 2 + +# XML config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 + +# Markdown Files +[*.{md,mdx}] +trim_trailing_whitespace = false + +# Bash Files +[*.{sh}] +end_of_line = lf + +# Batch Files +[*.{cmd,bat}] +end_of_line = crlf + +# Powershell Files +[*.{ps1, psm1}] +end_of_line = crlf + +# Paket files +[paket.*] +trim_trailing_whitespace = true +indent_size = 2 + +[*.paket.references] +trim_trailing_whitespace = true +indent_size = 2 + + +# YAML Files +[*.{yml,yaml}] +indent_size = 2 +indent_style = space diff --git a/.fantomasignore b/.fantomasignore new file mode 100644 index 0000000..4660636 --- /dev/null +++ b/.fantomasignore @@ -0,0 +1,5 @@ +# Ignore AssemblyInfo files +AssemblyInfo.fs + +# TODO: clean up this code and remove this +src/Pulumi.FSharp.Myriad/Modules.fs \ No newline at end of file diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..9c8817e --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,6 @@ +# This file contains a list of git hashes of revisions to be ignored by git +# These revisions are considered "unimportant" in +# that they are unlikely to be what you are interested in when blaming. +# Like formatting with Fantomas +# https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view +# Add formatting commits here diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..cb6f883 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,27 @@ +# Auto detect text files +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp text=auto eol=lf +*.vb diff=csharp text=auto eol=lf +*.fs diff=csharp text=auto eol=lf +*.fsi diff=csharp text=auto eol=lf +*.fsx diff=csharp text=auto eol=lf +*.sln text eol=crlf merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union +*.sh text eol=lf + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..02ca9be --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,31 @@ +## Description + +Please insert a description of your problem or question. + +## Error messages, screenshots + +Please add any error logs or screenshots if available. + +## Failing test, failing GitHub repo, or reproduction steps + +Please add either a failing test, a GitHub repo of the problem or detailed reproduction steps. + +## Expected Behavior + +Please define what you would expect the behavior to be like. + +## Known workarounds + +Please provide a description of any known workarounds. + +## Other information + +* Operating System: + - [ ] windows [insert version here] + - [ ] macOs [insert version] + - [ ] linux [insert flavor/version here] +* Platform + - [ ] dotnet core + - [ ] dotnet full + - [ ] mono +* Branch or release version: diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..b735373 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..066b2d9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ebdd8d1 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,25 @@ +## Proposed Changes + +Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue. + +## Types of changes + +What types of changes does your code introduce to Pulumi.FSharp.Extensions? +_Put an `x` in the boxes that apply_ + +- [ ] Bugfix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) + + +## Checklist + +_Put an `x` in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code._ + +- [ ] Build and tests pass locally +- [ ] I have added tests that prove my fix is effective or that my feature works (if appropriate) +- [ ] I have added necessary documentation (if appropriate) + +## Further comments + +If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc... diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..fd0e91a --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,26 @@ +name: .NET Build and Test + +on: + pull_request: + branches: + - main + - dev +env: + CONFIGURATION: Debug +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup necessary dotnet SDKs + uses: actions/setup-dotnet@v4 + with: + global-json-file: global.json + dotnet-version: | + 8.x + - name: Build providers + env: + FAKE_DETAILED_ERRORS: true + ENABLE_COVERAGE: false + run: | + ./build.sh BuildProviders \ No newline at end of file diff --git a/.github/workflows/fsdocs-gh-pages.yml b/.github/workflows/fsdocs-gh-pages.yml new file mode 100644 index 0000000..7f8ddf5 --- /dev/null +++ b/.github/workflows/fsdocs-gh-pages.yml @@ -0,0 +1,58 @@ +name: Deploy Docs + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Setup necessary dotnet SDKs + uses: actions/setup-dotnet@v3 + with: + global-json-file: global.json + dotnet-version: | + 6.x + - name: Build Docs + run: | + chmod +x ./build.sh + ./build.sh builddocs + + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: docs/ + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.github/workflows/paket-autoupdate.yml b/.github/workflows/paket-autoupdate.yml new file mode 100644 index 0000000..f666abc --- /dev/null +++ b/.github/workflows/paket-autoupdate.yml @@ -0,0 +1,25 @@ +name: Paket Update + +on: + schedule: + - cron: "0 */4 * * *" + +jobs: + paket-update: + permissions: + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup necessary dotnet SDKs + uses: actions/setup-dotnet@v4 + with: + global-json-file: global.json + dotnet-version: | + 8.x + - name: Paket Update + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + FAKE_DETAILED_ERRORS: true + run: | + ./build.sh PaketUpdate diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..bd95975 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,34 @@ +name: .NET Publish + +on: + push: + branches: + - main + - dev +env: + CONFIGURATION: Release +jobs: + build: + # Sets permissions of the GITHUB_TOKEN to allow release creating + permissions: + contents: write + packages: write + environment: + name: nuget + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup necessary dotnet SDKs + uses: actions/setup-dotnet@v4 + with: + global-json-file: global.json + dotnet-version: | + 8.x + - name: Publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NUGET_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this is intentional — we publish to github packages + FAKE_DETAILED_ERRORS: true + ENABLE_COVERAGE: false # AltCover doesn't work with Release builds, reports lower coverage than actual + run: | + ./build.sh Publish diff --git a/.gitignore b/.gitignore index a8487f0..8b011f7 100644 --- a/.gitignore +++ b/.gitignore @@ -351,6 +351,17 @@ MigrationBackup/ .idea/ -/TODO -/Generated.fs -Pulumi.FSharp.Extensions.vault.json \ No newline at end of file + +# Paket tool store +.paket/.store +.paket/paket + +# fsdocs generated +tmp/ +temp/ +.fsdocs +docs/ + +providers/Pulumi.FSharp.*/*.json +providers/Pulumi.FSharp.*/Generated.fs +.DS_Store diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..d566ef1 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,9 @@ +{ + "recommendations": [ + "ionide.ionide-paket", + "ionide.ionide-fsharp", + "ionide.ionide-fake", + "ms-dotnettools.csharp", + "editorConfig.editorConfig" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json index 630a0c5..d677c61 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,6 +9,7 @@ "description": "Pulumi provider name", "type": "pickString", "options": [ + "Auth0", "Aws", "Azure", "AzureAD", @@ -16,6 +17,7 @@ "AzureNativeV2", "Command", "Docker", + "DigitalOcean", "Gcp", "Kubernetes", "Random", @@ -28,8 +30,8 @@ "type": "coreclr", "request": "launch", "program": "${userHome}/.nuget/packages/myriad.sdk/0.8.1/tools/net6.0/any/Myriad.dll", - "args": ["--inputfile", "${workspaceFolder}/Pulumi.FSharp.${input:provider}/Myriad.fs", "--outputfile", "${workspaceFolder}/Pulumi.FSharp.${input:provider}/Generated.fs", "--plugin", "${workspaceFolder}/Pulumi.FSharp.Myriad/bin/Debug/net6.0/Pulumi.FSharp.Myriad.dll"], - "cwd": "${workspaceFolder}/Pulumi.FSharp.${input:provider}/", + "args": ["--inputfile", "${workspaceFolder}/providers/Pulumi.FSharp.${input:provider}/Myriad.fs", "--outputfile", "${workspaceFolder}/providers/Pulumi.FSharp.${input:provider}/Generated.fs", "--plugin", "${workspaceFolder}/src/Pulumi.FSharp.Myriad/bin/Debug/net6.0/Pulumi.FSharp.Myriad.dll"], + "cwd": "${workspaceFolder}/providers/Pulumi.FSharp.${input:provider}/", "stopAtEntry": true, "justMyCode": true, "console": "internalConsole" diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b98926a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "FSharp.fsacRuntime":"netcore", + "FSharp.enableAnalyzers": false, + "FSharp.analyzersPath": [ + "./packages/analyzers" + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8c460ac --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,20 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [3.1.5] - 2024-05-31 + +Updated the project to use modern build tooling. + +### Fixed +- Numbers in provider names (e.g. `auth0`) no longer break the plugin. +- GCP resources that use slashes as namespacing (e.g. `gcp:privilegedaccessmanager/entitlement`) no longer break the plugin. + +### Added +- DigitalOcean provider +- Auth0 provider +- Support for Kubernetes `ConfigFile` and `ConfigGroup` types \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..2d27dfc --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,27 @@ + + + + + + F# computational expressions to reduce boilerplate in Pulumi code + Copyright 2021 + Stefano d'Antonio (UnoSD), Cadence Agyirey (cagyirey) + f#, fsharp, pulumi, iac + https://github.com/cagyirey/Pulumi.FSharp.Extensions + false + LICENSE.md + README.md + git + https://github.com/cagyirey/Pulumi.FSharp.Extensions + + + false + + + + + + diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 0000000..d0f9a53 --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,27 @@ + + + + + <_BuildProjBaseIntermediateOutputPath>$(MSBuildThisFileDirectory)build/obj/ + <_DotnetToolManifestFile>$(MSBuildThisFileDirectory).config/dotnet-tools.json + <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion)-$(OS) + <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild-$(NETCoreSdkVersion)-$(OS) + + + + + + + + + + + + + + + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..96c07a3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# [Choice] Debian version (use bullseye on local arm64/Apple Silicon): bookworm, bullseye, buster +ARG VARIANT="bookworm" +FROM buildpack-deps:${VARIANT}-curl + + +ENV \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + DOTNET_ROOT=/usr/share/dotnet/ \ + DOTNET_NOLOGO=true \ + DOTNET_CLI_TELEMETRY_OPTOUT=false\ + DOTNET_USE_POLLING_FILE_WATCHER=true + + +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/FAKE.yml b/FAKE.yml deleted file mode 100644 index b6a46c1..0000000 --- a/FAKE.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: $(Rev:r) - -# Set the pipeline variable `provider` to a provider E.G. `Azure` `AzureAD` `Aws` `Kubernetes` - -# Create a secure file `Pulumi.FSharp.Extensions.vault.json` -# with the following content: -# { -# "values": [ -# { -# "secret": false, -# "value": "", -# "name": "nuGetApiKey" -# } -# ] -# } - -trigger: - branches: - include: - - master - paths: - include: - - Pulumi.FSharp.Myriad/* - -pool: #GitHubRunners - vmImage: ubuntu-latest - -steps: -- task: DotNetCoreCLI@2 - displayName: Install FAKE - inputs: - command: custom - custom: tool - arguments: restore - -- task: DownloadSecureFile@1 - name: FakeVaultFile - displayName: Download FAKE Vault file - inputs: - secureFile: Pulumi.FSharp.Extensions.vault.json - -- task: DotNetCoreCLI@2 - displayName: Run FAKE - env: - FAKE_DETAILED_ERRORS: true - inputs: - command: custom - custom: fake - arguments: run \ No newline at end of file diff --git a/LICENSE b/LICENSE.md similarity index 67% rename from LICENSE rename to LICENSE.md index d159169..5d8ae11 100644 --- a/LICENSE +++ b/LICENSE.md @@ -1,65 +1,7 @@ GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License applies to any program or other work which contains + 1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" @@ -276,64 +218,3 @@ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/Main.fs b/Main.fs new file mode 100644 index 0000000..85e2468 --- /dev/null +++ b/Main.fs @@ -0,0 +1,9 @@ +namespace Pulumi.FSharp.Extensions.Tests + +module ExpectoTemplate = + + open Expecto + + [] + let main argv = + Tests.runTestsInAssembly defaultConfig argv diff --git a/Pulumi.FSharp.Auth0/Myriad.fs b/Pulumi.FSharp.Auth0/Myriad.fs deleted file mode 100644 index 4f619da..0000000 --- a/Pulumi.FSharp.Auth0/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Auth0 - -module Force = let private nonce = 1060204202 \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/Myriad.fs b/Pulumi.FSharp.Aws/Myriad.fs deleted file mode 100644 index 68807c2..0000000 --- a/Pulumi.FSharp.Aws/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Aws - -module Force = let private nonce = 1834361653 \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Myriad.fs b/Pulumi.FSharp.Azure/Myriad.fs deleted file mode 100644 index 074026e..0000000 --- a/Pulumi.FSharp.Azure/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Azure - -module Force = let private nonce = 2039444796 \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/paket.references b/Pulumi.FSharp.Azure/paket.references deleted file mode 100644 index b51f677..0000000 --- a/Pulumi.FSharp.Azure/paket.references +++ /dev/null @@ -1,4 +0,0 @@ -Pulumi.Azure -Pulumi.FSharp -FSharp.Core -Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/Myriad.fs b/Pulumi.FSharp.AzureAD/Myriad.fs deleted file mode 100644 index d2ed735..0000000 --- a/Pulumi.FSharp.AzureAD/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private AzureAD - -module Force = let private nonce = 1324249853 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs b/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs deleted file mode 100644 index 5c7fa74..0000000 --- a/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs +++ /dev/null @@ -1,41 +0,0 @@ -module Pulumi.FSharp.NamingConventions.Azure - -open AzureLocations -open Pulumi - -// https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming - -module Region = - let private shorten (regionName : string) = - regionName.Replace("europe" , "eu" ) - .Replace("brazil" , "br" ) - .Replace("australia" , "au" ) - .Replace("switzerland" , "sw" ) - .Replace("pacific" , "pac") - .Replace("unitedstates", "us" ) - .Replace("central" , "c" ) - .Replace("north" , "n" ) - .Replace("south" , "s" ) - .Replace("east" , "e" ) - .Replace("west" , "w" ) - - let private configuredRegion = Config("azure-native").Get("location") - - let shortName = - locationsMap - |> Map.tryFind configuredRegion - |> Option.map(fun x -> x |> shorten) - |> Option.defaultWith (fun () -> failwith $"Missing or incorrect azure-native:location: {configuredRegion}") - -module Resource = - let private woa = - match Config().Get("workloadOrApplication") with - | null - | "" -> "" - | value -> $"{value}-" - - let name resourceType (instanceNumber : int) = - $"{resourceType}-{woa}{Deployment.Instance.StackName}-{Region.shortName}-{instanceNumber:D3}" - - let nameOne resourceType = - name resourceType 1 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative.Common/paket.references b/Pulumi.FSharp.AzureNative.Common/paket.references deleted file mode 100644 index a84520e..0000000 --- a/Pulumi.FSharp.AzureNative.Common/paket.references +++ /dev/null @@ -1,2 +0,0 @@ -Pulumi.FSharp -FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/Myriad.fs b/Pulumi.FSharp.AzureNative/Myriad.fs deleted file mode 100644 index ac97709..0000000 --- a/Pulumi.FSharp.AzureNative/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Azure - -module Force = let private nonce = 785606208 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj b/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj deleted file mode 100644 index 8786f89..0000000 --- a/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj +++ /dev/null @@ -1,47 +0,0 @@ - - - - net8.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2021 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - NU1605,NU1608,FS0058,FS0044 - true - - - - - - - - - - - - - - - - - - - - - Myriad.fs - - - - - - - \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/paket.references b/Pulumi.FSharp.AzureNative/paket.references deleted file mode 100644 index 4733feb..0000000 --- a/Pulumi.FSharp.AzureNative/paket.references +++ /dev/null @@ -1,4 +0,0 @@ -Pulumi.AzureNative -Pulumi.FSharp -FSharp.Core -Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/Myriad.fs b/Pulumi.FSharp.AzureNativeV2/Myriad.fs deleted file mode 100644 index 767d643..0000000 --- a/Pulumi.FSharp.AzureNativeV2/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private AzureNativeV2 - -module Force = let private nonce = 1019221196 \ No newline at end of file diff --git a/Pulumi.FSharp.Command/Myriad.fs b/Pulumi.FSharp.Command/Myriad.fs deleted file mode 100644 index 71cc2d4..0000000 --- a/Pulumi.FSharp.Command/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Command - -module Force = let private nonce = 1868253726 \ No newline at end of file diff --git a/Pulumi.FSharp.Command/command.0.0.3.json b/Pulumi.FSharp.Command/command.0.0.3.json deleted file mode 100644 index 1c4adb8..0000000 --- a/Pulumi.FSharp.Command/command.0.0.3.json +++ /dev/null @@ -1,286 +0,0 @@ -{ - "name": "command", - "displayName": "Command", - "description": "The Pulumi Command Provider enables you to execute commands and scripts either locally or remotely as part of the Pulumi resource model.", - "keywords": [ - "pulumi", - "command", - "category/utility", - "kind/native" - ], - "homepage": "https://pulumi.com", - "license": "Apache-2.0", - "repository": "https://github.com/pulumi/pulumi-command", - "publisher": "Pulumi", - "logoUrl": "https://raw.githubusercontent.com/pulumi/pulumi-command/master/assets/logo.svg", - "types": { - "command:remote:Connection": { - "type": "object", - "description": "Instructions for how to connect to a remote endpoint.", - "properties": { - "user": { - "type": "string", - "description": "The user that we should use for the connection.", - "default": "root" - }, - "password": { - "type": "string", - "description": "The password we should use for the connection." - }, - "host": { - "type": "string", - "description": "The address of the resource to connect to." - }, - "port": { - "type": "number", - "description": "The port to connect to.", - "default": 22 - }, - "privateKey": { - "type": "string", - "description": "The contents of an SSH key to use for the connection. This takes preference over the password if provided." - } - }, - "required": [ - "host" - ] - } - }, - "resources": { - "command:local:Command": { - "description": "A local command to be executed.\nThis command can be inserted into the life cycles of other resources using the\n`dependsOn` or `parent` resource options. A command is considered to have\nfailed when it finished with a non-zero exit code. This will fail the CRUD step\nof the `Command` resource.", - "properties": { - "interpreter": { - "description": "The program and arguments to run the command.\nFor example: `[\"/bin/sh\", \"-c\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "dir": { - "description": "The directory from which to run the command from. If `dir` does not exist, then\n`Command` will fail.", - "type": "string" - }, - "environment": { - "description": "Additional environment variables available to the command's process.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "triggers": { - "type": "array", - "description": "Trigger replacements on changes to this input.", - "items": { - "$ref": "pulumi.json#/Any" - } - }, - "create": { - "type": "string", - "description": "The command to run on create." - }, - "delete": { - "type": "string", - "description": "The command to run on delete." - }, - "stdout": { - "description": "The standard output of the command's process", - "type": "string" - }, - "stderr": { - "description": "The standard error of the command's process", - "type": "string" - } - }, - "required": [ - "stdout", - "stderr" - ], - "inputProperties": { - "interpreter": { - "description": "The program and arguments to run the command.\nOn Linux and macOS, defaults to: `[\"/bin/sh\", \"-c\"]`. On Windows, defaults to: `[\"cmd\", \"/C\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "dir": { - "description": "The working directory in which to run the command from.", - "type": "string" - }, - "environment": { - "description": "Additional environment variables available to the command's process.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "triggers": { - "type": "array", - "items": { - "$ref": "pulumi.json#/Any" - } - }, - "create": { - "type": "string", - "description": "The command to run on create." - }, - "delete": { - "type": "string", - "description": "The command to run on delete." - } - }, - "requiredInputs": [] - }, - "command:remote:Command": { - "description": "A command to run on a remote host.\nThe connection is established via ssh.", - "properties": { - "connection": { - "description": "The parameters with which to connect to the remote host", - "$ref": "#/types/command:remote:Connection" - }, - "environment": { - "description": "Additional environment variables available to the command's process.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "triggers": { - "description": "Trigger replacements on changes to this input.", - "type": "array", - "items": { - "$ref": "pulumi.json#/Any" - } - }, - "create": { - "description": "The command to run on create.", - "type": "string" - }, - "delete": { - "description": "The command to run on delete.", - "type": "string" - }, - "stdout": { - "description": "The standard output of the command's process", - "type": "string" - }, - "stderr": { - "description": "The standard error of the command's process", - "type": "string" - } - }, - "required": [ - "stdout", - "stderr" - ], - "inputProperties": { - "connection": { - "description": "The parameters with which to connect to the remote host.", - "$ref": "#/types/command:remote:Connection" - }, - "environment": { - "description": "Additional environment variables available to the command's process.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "triggers": { - "description": "Trigger replacements on changes to this input.", - "type": "array", - "items": { - "$ref": "pulumi.json#/Any" - } - }, - "create": { - "description": "The command to run on create.", - "type": "string" - }, - "delete": { - "description": "The command to run on delete.", - "type": "string" - } - }, - "requiredInputs": [ - "connection" - ] - }, - "command:remote:CopyFile": { - "description": "Copy a local file to a remote host.", - "inputProperties": { - "connection": { - "description": "The parameters with which to connect to the remote host.", - "$ref": "#/types/command:remote:Connection" - }, - "triggers": { - "description": "Trigger replacements on changes to this input.", - "type": "array", - "items": { - "$ref": "pulumi.json#/Any" - } - }, - "localPath": { - "description": "The path of the file to be copied.", - "type": "string" - }, - "remotePath": { - "description": "The destination path in the remote host.", - "type": "string" - } - }, - "requiredInputs": [ - "connection", - "localPath", - "remotePath" - ], - "properties": { - "connection": { - "description": "The parameters with which to connect to the remote host.", - "$ref": "#/types/command:remote:Connection" - }, - "triggers": { - "description": "Trigger replacements on changes to this input.", - "type": "array", - "items": { - "$ref": "pulumi.json#/Any" - } - }, - "localPath": { - "description": "The path of the file to be copied.", - "type": "string" - }, - "remotePath": { - "description": "The destination path in the remote host.", - "type": "string" - } - }, - "required": [ - "connection", - "localPath", - "remotePath" - ] - } - }, - "language": { - "csharp": { - "packageReferences": { - "Pulumi": "3.*" - } - }, - "go": { - "generateResourceContainerTypes": true, - "importBasePath": "github.com/pulumi/pulumi-command/sdk/go/command" - }, - "nodejs": { - "dependencies": { - "@pulumi/pulumi": "^3.0.0" - } - }, - "python": { - "requires": { - "pulumi": ">=3.0.0,<4.0.0" - } - } - } -} diff --git a/Pulumi.FSharp.Core/Assets.fs b/Pulumi.FSharp.Core/Assets.fs deleted file mode 100644 index 1817640..0000000 --- a/Pulumi.FSharp.Core/Assets.fs +++ /dev/null @@ -1,48 +0,0 @@ -module Pulumi.FSharp.Assets - -open System.Collections.Generic -open Pulumi - -type FileArchive = { - ArchivePath: string -} with member this.ToPulumiType = FileArchive(this.ArchivePath) - -type RemoteArchive = { - ArchiveUri: string -} with member this.ToPulumiType = RemoteArchive(this.ArchiveUri) - -type RemoteAsset = { - Uri: string -} with member this.ToPulumiType = RemoteAsset(this.Uri) - -type FileAsset = { - Path: string -} with member this.ToPulumiType = FileAsset(this.Path) - -type StringAsset = { - Text: string -} with member this.ToPulumiType = StringAsset(this.Text) - -type Any = { - Value: obj -} - -type Asset = - | File of FileAsset - | FileArchive of FileArchive - | Remote of RemoteAsset - | RemoteArchive of RemoteArchive - | String of StringAsset - -type AssetArchive = { - Assets: Map -} with member this.ToPulumiType = - this.Assets |> - Map.map (fun _ a -> match a with - | File f -> f.ToPulumiType :> AssetOrArchive - | FileArchive f -> f.ToPulumiType :> AssetOrArchive - | Remote f -> f.ToPulumiType :> AssetOrArchive - | RemoteArchive f -> f.ToPulumiType :> AssetOrArchive - | String f -> f.ToPulumiType :> AssetOrArchive) |> - Dictionary |> - AssetArchive \ No newline at end of file diff --git a/Pulumi.FSharp.Core/OutputBuilder.fs b/Pulumi.FSharp.Core/OutputBuilder.fs deleted file mode 100644 index 0940cb0..0000000 --- a/Pulumi.FSharp.Core/OutputBuilder.fs +++ /dev/null @@ -1,27 +0,0 @@ -module Pulumi.FSharp.Outputs - -open Pulumi -open System.Threading.Tasks - -type OutputBuilder internal (isSecret) = - let create (value : 'a) = - match isSecret with - | true -> Output.CreateSecret<'a>(value) - | false -> Output.Create<'a>(value) - - member __.Return (x : 'a) = - create x - - member __.Bind (comp : Output<'a>, func : 'a -> Output<'b>) = - comp.Apply<'b>(func) - - member this.Bind (comp : Task<'a>, func : 'a -> Output<'b>) = - this.Bind((match isSecret with - | false -> Output.Create<'a>(comp) - | true -> Output.CreateSecret<'a>(comp)), func) - - member __.ReturnFrom (v : Output<_>) = - v - -let output = OutputBuilder(isSecret = false) -let secretOutput = OutputBuilder(isSecret = true) \ No newline at end of file diff --git a/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj b/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj deleted file mode 100644 index e88c272..0000000 --- a/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - net8.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) - 3.1.4 - NU1605,NU1608 - true - - - - - - - - - - \ No newline at end of file diff --git a/Pulumi.FSharp.Core/build.fsx b/Pulumi.FSharp.Core/build.fsx deleted file mode 100644 index 165c8e2..0000000 --- a/Pulumi.FSharp.Core/build.fsx +++ /dev/null @@ -1,98 +0,0 @@ -#r "paket: -nuget FSharp.Core 4.7.2 -nuget Fake.DotNet.Cli -nuget Fake.IO.FileSystem -nuget Fake.BuildServer.TeamFoundation -nuget Fake.Core.CommandLineParsing -nuget Fake.Core.Xml -nuget Fake.Core.Target //" -#load ".fake/build.fsx/intellisense.fsx" -#nowarn "52" -open Fake.IO.Globbing.Operators -open Fake.Core.TargetOperators -open Fake.BuildServer -open Fake.DotNet -open Fake.Core -open System.IO - -BuildServer.install [ TeamFoundation.Installer ] - -let args = - Context.forceFakeContext().Arguments |> - Array.ofList |> - Docopt(""" -usage: dotnet_fake_run_build.fsx [options] - -options: - -t - """).Parse - -let getTarget args = - match Map.tryFind "-t" args with - | Some (Argument t) -> t - | _ -> "Default" - -let getProjectFile () = - !! "**/Pulumi.FSharp.Core.fsproj" |> Seq.head - -Target.create "Install" (fun _ -> - DotNet.Options.Create() |> - DotNet.install DotNet.Versions.FromGlobalJson |> - ignore -) - -Target.create "Build" (fun _ -> - let buildOptions options : DotNet.BuildOptions = { - options with - Common = { - options.Common with - Verbosity = Some DotNet.Verbosity.Quiet - } - NoLogo = true - } - - getProjectFile () |> - DotNet.build buildOptions -) - -Target.create "Pack" (fun _ -> - getProjectFile () |> - DotNet.pack (fun po -> { po with MSBuildParams = { po.MSBuildParams with DisableInternalBinLog = true } }) -) - -Target.create "Push" (fun _ -> - let vaultFile = - Environment.environVarOrNone "FAKEVAULTFILE_SECUREFILEPATH" |> - Option.defaultValue "Pulumi.FSharp.Extensions.vault.json" |> - FileInfo - - let vault = - match Vault.fromFakeEnvironmentOrNone(), vaultFile.Exists with - | Some vault, _ -> vault - | None , true -> vaultFile.OpenText().ReadToEnd() |> Vault.fromJson - | None , false -> failwith "Unsupported source for secrets" - - let pushOptions options : DotNet.NuGetPushOptions = { - options with - PushParams = { - options.PushParams with - ApiKey = Vault.tryGet "nuGetApiKey" vault - Source = Some "https://api.nuget.org/v3/index.json" - } - } - - !! "**/Pulumi.FSharp.Core.*.nupkg" |> - Seq.exactlyOne |> - DotNet.nugetPush pushOptions -) - -Target.create "Default" ignore - -"Install" ==> -"Pack" =?> -("Push" , not BuildServer.isLocalBuild) ==> -"Default" - -args |> -getTarget |> -Target.runOrDefaultWithArguments \ No newline at end of file diff --git a/Pulumi.FSharp.Core/paket.references b/Pulumi.FSharp.Core/paket.references deleted file mode 100644 index a84520e..0000000 --- a/Pulumi.FSharp.Core/paket.references +++ /dev/null @@ -1,2 +0,0 @@ -Pulumi.FSharp -FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/Myriad.fs b/Pulumi.FSharp.DigitalOcean/Myriad.fs deleted file mode 100644 index ff6761c..0000000 --- a/Pulumi.FSharp.DigitalOcean/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private DigitalOcean - -module Force = let private nonce = 237972812 \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/Myriad.fs b/Pulumi.FSharp.Docker/Myriad.fs deleted file mode 100644 index 4cd7ef4..0000000 --- a/Pulumi.FSharp.Docker/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Docker - -module Force = let private nonce = 1504430674 \ No newline at end of file diff --git a/Pulumi.FSharp.Extensions.sln b/Pulumi.FSharp.Extensions.sln index 9b93e06..8264f24 100644 --- a/Pulumi.FSharp.Extensions.sln +++ b/Pulumi.FSharp.Extensions.sln @@ -1,135 +1,140 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{B1545C13-170F-42E0-9BAF-29DCA80951E7}" - ProjectSection(SolutionItems) = preProject - paket.dependencies = paket.dependencies - EndProjectSection +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{28C09E13-D45B-40D2-AAB0-F7D3A69417D8}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Myriad", "Pulumi.FSharp.Myriad\Pulumi.FSharp.Myriad.fsproj", "{EDDFE9E5-9B82-4ECF-AB23-86F3347D77EC}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNative.Common", "src\Pulumi.FSharp.AzureNative.Common\Pulumi.FSharp.AzureNative.Common.fsproj", "{8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Azure", "Pulumi.FSharp.Azure\Pulumi.FSharp.Azure.fsproj", "{0CDB4B8E-343B-45A5-A1C6-951470C965F9}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Core", "src\Pulumi.FSharp.Core\Pulumi.FSharp.Core.fsproj", "{7A74E40C-7A88-4683-807B-26FE69C00C9E}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Core", "Pulumi.FSharp.Core\Pulumi.FSharp.Core.fsproj", "{163493B5-0F35-4298-AB85-C9B3D92D570A}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Myriad", "src\Pulumi.FSharp.Myriad\Pulumi.FSharp.Myriad.fsproj", "{39E6A928-3D66-4D1D-9F12-5CAE5C47D82B}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Test", "Pulumi.FSharp.Test\Pulumi.FSharp.Test.fsproj", "{E68C417A-34D7-4953-B0D5-B43FD833A0C8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "providers", "providers", "{6A29027D-A6AF-406A-B0E5-FBBBD9962BFC}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.NuGet.Test", "Pulumi.FSharp.NuGet.Test\Pulumi.FSharp.NuGet.Test.fsproj", "{290AD0BD-D3B5-4B90-860F-0E14407BFD46}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Auth0", "providers\Pulumi.FSharp.Auth0\Pulumi.FSharp.Auth0.fsproj", "{23F69D6B-8674-49A3-A872-70F06F8A982C}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Aws", "Pulumi.FSharp.Aws\Pulumi.FSharp.Aws.fsproj", "{570555D8-4272-47CD-96F7-40817A67B41E}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Aws", "providers\Pulumi.FSharp.Aws\Pulumi.FSharp.Aws.fsproj", "{6EA504F0-BCD6-4A6A-9897-651BFC4B06E3}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Kubernetes", "Pulumi.FSharp.Kubernetes\Pulumi.FSharp.Kubernetes.fsproj", "{8E9160DC-5EE5-4D66-AE13-66183C04A6C3}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Azure", "providers\Pulumi.FSharp.Azure\Pulumi.FSharp.Azure.fsproj", "{8AAE2E3E-CCE6-440F-83B2-085394C65760}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentation", "{DA33B8DE-E8FB-49FB-B79A-D156179C56CA}" - ProjectSection(SolutionItems) = preProject - README.md = README.md - EndProjectSection +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureAD", "providers\Pulumi.FSharp.AzureAD\Pulumi.FSharp.AzureAD.fsproj", "{144FE576-0844-42EB-956F-812AF5EC9AE1}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureAD", "Pulumi.FSharp.AzureAD\Pulumi.FSharp.AzureAD.fsproj", "{D743DF85-53C4-4E5B-B7E0-8A3AE58B7B3A}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNative", "providers\Pulumi.FSharp.AzureNative\Pulumi.FSharp.AzureNative.fsproj", "{787A81CE-6A67-4882-AB27-D29932659EE4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pipelines", "Pipelines", "{19133DA2-F039-47AB-A225-6435EC14A67B}" - ProjectSection(SolutionItems) = preProject - build.fsx = build.fsx - FAKE.yml = FAKE.yml - EndProjectSection +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNativeV2", "providers\Pulumi.FSharp.AzureNativeV2\Pulumi.FSharp.AzureNativeV2.fsproj", "{0DC17401-17FD-454D-8074-3CDDBB092C0C}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNative", "Pulumi.FSharp.AzureNative\Pulumi.FSharp.AzureNative.fsproj", "{82654FE1-17B2-45B0-A967-19546970D378}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Command", "providers\Pulumi.FSharp.Command\Pulumi.FSharp.Command.fsproj", "{29DE140F-E25F-4B7F-B531-04D461EAE9F1}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Gcp", "Pulumi.FSharp.Gcp\Pulumi.FSharp.Gcp.fsproj", "{FB88475F-F6DE-4E2D-965B-8E06514F89E3}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.DigitalOcean", "providers\Pulumi.FSharp.DigitalOcean\Pulumi.FSharp.DigitalOcean.fsproj", "{07F2BD4B-55DD-4460-8068-D397A40363B2}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Tls", "Pulumi.FSharp.Tls\Pulumi.FSharp.Tls.fsproj", "{C7ACAED9-A76D-4C83-A5CF-6583B5705F95}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Docker", "providers\Pulumi.FSharp.Docker\Pulumi.FSharp.Docker.fsproj", "{F982AD8D-18DA-48BA-8AB1-B62537D93EC9}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Random", "Pulumi.FSharp.Random\Pulumi.FSharp.Random.fsproj", "{D3ABE35A-70D4-4D9E-882B-21E706D871E1}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Gcp", "providers\Pulumi.FSharp.Gcp\Pulumi.FSharp.Gcp.fsproj", "{170F0B9B-106A-4F3F-8CA9-1533990D2FF4}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Command", "Pulumi.FSharp.Command\Pulumi.FSharp.Command.fsproj", "{5EB201F8-FC48-4F8B-B50D-780FA6FADDD8}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Kubernetes", "providers\Pulumi.FSharp.Kubernetes\Pulumi.FSharp.Kubernetes.fsproj", "{821526F5-26CA-4E8D-A4C6-7D77F317AAB3}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Docker", "Pulumi.FSharp.Docker\Pulumi.FSharp.Docker.fsproj", "{428CED50-DFBF-48EF-B9B3-FB3B4CC4E0FB}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Random", "providers\Pulumi.FSharp.Random\Pulumi.FSharp.Random.fsproj", "{DF4FE3E4-1EA2-4A82-96EA-7CD0036B77F2}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNativeV2", "Pulumi.FSharp.AzureNativeV2\Pulumi.FSharp.AzureNativeV2.fsproj", "{C93C3853-4894-4CB6-9F1E-3CD544E10870}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Tls", "providers\Pulumi.FSharp.Tls\Pulumi.FSharp.Tls.fsproj", "{6CE90EBD-D118-4707-BB8C-B3E96F2A7992}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNative.Common", "Pulumi.FSharp.AzureNative.Common\Pulumi.FSharp.AzureNative.Common.fsproj", "{A01D65E8-98E4-41A2-BA49-67CC4CB9126A}" -EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.DigitalOcean", "Pulumi.FSharp.DigitalOcean\Pulumi.FSharp.DigitalOcean.fsproj", "{D42BC874-1B4F-487B-A342-182773EB57CE}" -EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Auth0", "Pulumi.FSharp.Auth0\Pulumi.FSharp.Auth0.fsproj", "{7157AB07-6831-4ABC-AA30-3B947E85A660}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "build", "build\build.fsproj", "{F001F2EE-9ED0-4FE0-87F6-0365F1CA887E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EDDFE9E5-9B82-4ECF-AB23-86F3347D77EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EDDFE9E5-9B82-4ECF-AB23-86F3347D77EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EDDFE9E5-9B82-4ECF-AB23-86F3347D77EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EDDFE9E5-9B82-4ECF-AB23-86F3347D77EC}.Release|Any CPU.Build.0 = Release|Any CPU - {0CDB4B8E-343B-45A5-A1C6-951470C965F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CDB4B8E-343B-45A5-A1C6-951470C965F9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CDB4B8E-343B-45A5-A1C6-951470C965F9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CDB4B8E-343B-45A5-A1C6-951470C965F9}.Release|Any CPU.Build.0 = Release|Any CPU - {163493B5-0F35-4298-AB85-C9B3D92D570A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {163493B5-0F35-4298-AB85-C9B3D92D570A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {163493B5-0F35-4298-AB85-C9B3D92D570A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {163493B5-0F35-4298-AB85-C9B3D92D570A}.Release|Any CPU.Build.0 = Release|Any CPU - {E68C417A-34D7-4953-B0D5-B43FD833A0C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E68C417A-34D7-4953-B0D5-B43FD833A0C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E68C417A-34D7-4953-B0D5-B43FD833A0C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E68C417A-34D7-4953-B0D5-B43FD833A0C8}.Release|Any CPU.Build.0 = Release|Any CPU - {290AD0BD-D3B5-4B90-860F-0E14407BFD46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {290AD0BD-D3B5-4B90-860F-0E14407BFD46}.Debug|Any CPU.Build.0 = Debug|Any CPU - {290AD0BD-D3B5-4B90-860F-0E14407BFD46}.Release|Any CPU.ActiveCfg = Release|Any CPU - {290AD0BD-D3B5-4B90-860F-0E14407BFD46}.Release|Any CPU.Build.0 = Release|Any CPU - {570555D8-4272-47CD-96F7-40817A67B41E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {570555D8-4272-47CD-96F7-40817A67B41E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {570555D8-4272-47CD-96F7-40817A67B41E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {570555D8-4272-47CD-96F7-40817A67B41E}.Release|Any CPU.Build.0 = Release|Any CPU - {8E9160DC-5EE5-4D66-AE13-66183C04A6C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E9160DC-5EE5-4D66-AE13-66183C04A6C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E9160DC-5EE5-4D66-AE13-66183C04A6C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E9160DC-5EE5-4D66-AE13-66183C04A6C3}.Release|Any CPU.Build.0 = Release|Any CPU - {D743DF85-53C4-4E5B-B7E0-8A3AE58B7B3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D743DF85-53C4-4E5B-B7E0-8A3AE58B7B3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D743DF85-53C4-4E5B-B7E0-8A3AE58B7B3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D743DF85-53C4-4E5B-B7E0-8A3AE58B7B3A}.Release|Any CPU.Build.0 = Release|Any CPU - {82654FE1-17B2-45B0-A967-19546970D378}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82654FE1-17B2-45B0-A967-19546970D378}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82654FE1-17B2-45B0-A967-19546970D378}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82654FE1-17B2-45B0-A967-19546970D378}.Release|Any CPU.Build.0 = Release|Any CPU - {FB88475F-F6DE-4E2D-965B-8E06514F89E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB88475F-F6DE-4E2D-965B-8E06514F89E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB88475F-F6DE-4E2D-965B-8E06514F89E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB88475F-F6DE-4E2D-965B-8E06514F89E3}.Release|Any CPU.Build.0 = Release|Any CPU - {C7ACAED9-A76D-4C83-A5CF-6583B5705F95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C7ACAED9-A76D-4C83-A5CF-6583B5705F95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C7ACAED9-A76D-4C83-A5CF-6583B5705F95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C7ACAED9-A76D-4C83-A5CF-6583B5705F95}.Release|Any CPU.Build.0 = Release|Any CPU - {D3ABE35A-70D4-4D9E-882B-21E706D871E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D3ABE35A-70D4-4D9E-882B-21E706D871E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D3ABE35A-70D4-4D9E-882B-21E706D871E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D3ABE35A-70D4-4D9E-882B-21E706D871E1}.Release|Any CPU.Build.0 = Release|Any CPU - {5EB201F8-FC48-4F8B-B50D-780FA6FADDD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EB201F8-FC48-4F8B-B50D-780FA6FADDD8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EB201F8-FC48-4F8B-B50D-780FA6FADDD8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EB201F8-FC48-4F8B-B50D-780FA6FADDD8}.Release|Any CPU.Build.0 = Release|Any CPU - {428CED50-DFBF-48EF-B9B3-FB3B4CC4E0FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {428CED50-DFBF-48EF-B9B3-FB3B4CC4E0FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {428CED50-DFBF-48EF-B9B3-FB3B4CC4E0FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {428CED50-DFBF-48EF-B9B3-FB3B4CC4E0FB}.Release|Any CPU.Build.0 = Release|Any CPU - {C93C3853-4894-4CB6-9F1E-3CD544E10870}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C93C3853-4894-4CB6-9F1E-3CD544E10870}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C93C3853-4894-4CB6-9F1E-3CD544E10870}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C93C3853-4894-4CB6-9F1E-3CD544E10870}.Release|Any CPU.Build.0 = Release|Any CPU - {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A01D65E8-98E4-41A2-BA49-67CC4CB9126A}.Release|Any CPU.Build.0 = Release|Any CPU - {D42BC874-1B4F-487B-A342-182773EB57CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D42BC874-1B4F-487B-A342-182773EB57CE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D42BC874-1B4F-487B-A342-182773EB57CE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D42BC874-1B4F-487B-A342-182773EB57CE}.Release|Any CPU.Build.0 = Release|Any CPU - {7157AB07-6831-4ABC-AA30-3B947E85A660}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7157AB07-6831-4ABC-AA30-3B947E85A660}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7157AB07-6831-4ABC-AA30-3B947E85A660}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7157AB07-6831-4ABC-AA30-3B947E85A660}.Release|Any CPU.Build.0 = Release|Any CPU + {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Release|Any CPU.Build.0 = Release|Any CPU + {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Release|Any CPU.Build.0 = Release|Any CPU + {39E6A928-3D66-4D1D-9F12-5CAE5C47D82B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39E6A928-3D66-4D1D-9F12-5CAE5C47D82B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39E6A928-3D66-4D1D-9F12-5CAE5C47D82B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39E6A928-3D66-4D1D-9F12-5CAE5C47D82B}.Release|Any CPU.Build.0 = Release|Any CPU + {23F69D6B-8674-49A3-A872-70F06F8A982C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23F69D6B-8674-49A3-A872-70F06F8A982C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23F69D6B-8674-49A3-A872-70F06F8A982C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23F69D6B-8674-49A3-A872-70F06F8A982C}.Release|Any CPU.Build.0 = Release|Any CPU + {6EA504F0-BCD6-4A6A-9897-651BFC4B06E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6EA504F0-BCD6-4A6A-9897-651BFC4B06E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6EA504F0-BCD6-4A6A-9897-651BFC4B06E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6EA504F0-BCD6-4A6A-9897-651BFC4B06E3}.Release|Any CPU.Build.0 = Release|Any CPU + {8AAE2E3E-CCE6-440F-83B2-085394C65760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AAE2E3E-CCE6-440F-83B2-085394C65760}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AAE2E3E-CCE6-440F-83B2-085394C65760}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AAE2E3E-CCE6-440F-83B2-085394C65760}.Release|Any CPU.Build.0 = Release|Any CPU + {144FE576-0844-42EB-956F-812AF5EC9AE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {144FE576-0844-42EB-956F-812AF5EC9AE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {144FE576-0844-42EB-956F-812AF5EC9AE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {144FE576-0844-42EB-956F-812AF5EC9AE1}.Release|Any CPU.Build.0 = Release|Any CPU + {787A81CE-6A67-4882-AB27-D29932659EE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {787A81CE-6A67-4882-AB27-D29932659EE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {787A81CE-6A67-4882-AB27-D29932659EE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {787A81CE-6A67-4882-AB27-D29932659EE4}.Release|Any CPU.Build.0 = Release|Any CPU + {0DC17401-17FD-454D-8074-3CDDBB092C0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DC17401-17FD-454D-8074-3CDDBB092C0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DC17401-17FD-454D-8074-3CDDBB092C0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DC17401-17FD-454D-8074-3CDDBB092C0C}.Release|Any CPU.Build.0 = Release|Any CPU + {29DE140F-E25F-4B7F-B531-04D461EAE9F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29DE140F-E25F-4B7F-B531-04D461EAE9F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29DE140F-E25F-4B7F-B531-04D461EAE9F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29DE140F-E25F-4B7F-B531-04D461EAE9F1}.Release|Any CPU.Build.0 = Release|Any CPU + {07F2BD4B-55DD-4460-8068-D397A40363B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07F2BD4B-55DD-4460-8068-D397A40363B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07F2BD4B-55DD-4460-8068-D397A40363B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07F2BD4B-55DD-4460-8068-D397A40363B2}.Release|Any CPU.Build.0 = Release|Any CPU + {F982AD8D-18DA-48BA-8AB1-B62537D93EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F982AD8D-18DA-48BA-8AB1-B62537D93EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F982AD8D-18DA-48BA-8AB1-B62537D93EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F982AD8D-18DA-48BA-8AB1-B62537D93EC9}.Release|Any CPU.Build.0 = Release|Any CPU + {170F0B9B-106A-4F3F-8CA9-1533990D2FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {170F0B9B-106A-4F3F-8CA9-1533990D2FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {170F0B9B-106A-4F3F-8CA9-1533990D2FF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {170F0B9B-106A-4F3F-8CA9-1533990D2FF4}.Release|Any CPU.Build.0 = Release|Any CPU + {821526F5-26CA-4E8D-A4C6-7D77F317AAB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {821526F5-26CA-4E8D-A4C6-7D77F317AAB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {821526F5-26CA-4E8D-A4C6-7D77F317AAB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {821526F5-26CA-4E8D-A4C6-7D77F317AAB3}.Release|Any CPU.Build.0 = Release|Any CPU + {DF4FE3E4-1EA2-4A82-96EA-7CD0036B77F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF4FE3E4-1EA2-4A82-96EA-7CD0036B77F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF4FE3E4-1EA2-4A82-96EA-7CD0036B77F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF4FE3E4-1EA2-4A82-96EA-7CD0036B77F2}.Release|Any CPU.Build.0 = Release|Any CPU + {6CE90EBD-D118-4707-BB8C-B3E96F2A7992}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CE90EBD-D118-4707-BB8C-B3E96F2A7992}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CE90EBD-D118-4707-BB8C-B3E96F2A7992}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CE90EBD-D118-4707-BB8C-B3E96F2A7992}.Release|Any CPU.Build.0 = Release|Any CPU + {F001F2EE-9ED0-4FE0-87F6-0365F1CA887E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F001F2EE-9ED0-4FE0-87F6-0365F1CA887E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F001F2EE-9ED0-4FE0-87F6-0365F1CA887E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F001F2EE-9ED0-4FE0-87F6-0365F1CA887E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F} = {28C09E13-D45B-40D2-AAB0-F7D3A69417D8} + {7A74E40C-7A88-4683-807B-26FE69C00C9E} = {28C09E13-D45B-40D2-AAB0-F7D3A69417D8} + {39E6A928-3D66-4D1D-9F12-5CAE5C47D82B} = {28C09E13-D45B-40D2-AAB0-F7D3A69417D8} + {23F69D6B-8674-49A3-A872-70F06F8A982C} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {6EA504F0-BCD6-4A6A-9897-651BFC4B06E3} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {8AAE2E3E-CCE6-440F-83B2-085394C65760} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {144FE576-0844-42EB-956F-812AF5EC9AE1} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {787A81CE-6A67-4882-AB27-D29932659EE4} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {0DC17401-17FD-454D-8074-3CDDBB092C0C} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {29DE140F-E25F-4B7F-B531-04D461EAE9F1} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {07F2BD4B-55DD-4460-8068-D397A40363B2} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {F982AD8D-18DA-48BA-8AB1-B62537D93EC9} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {170F0B9B-106A-4F3F-8CA9-1533990D2FF4} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {821526F5-26CA-4E8D-A4C6-7D77F317AAB3} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {DF4FE3E4-1EA2-4A82-96EA-7CD0036B77F2} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} + {6CE90EBD-D118-4707-BB8C-B3E96F2A7992} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} EndGlobalSection EndGlobal diff --git a/Pulumi.FSharp.Gcp/Myriad.fs b/Pulumi.FSharp.Gcp/Myriad.fs deleted file mode 100644 index d560a70..0000000 --- a/Pulumi.FSharp.Gcp/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Gcp - -module Force = let private nonce = 1149429260 \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets b/Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets deleted file mode 100644 index c66062b..0000000 --- a/Pulumi.FSharp.Kubernetes/.paket/Paket.Restore.targets +++ /dev/null @@ -1,560 +0,0 @@ - - - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - $(MSBuildVersion) - 15.0.0 - false - true - - true - $(MSBuildThisFileDirectory) - $(MSBuildThisFileDirectory)..\ - $(PaketRootPath)paket-files\paket.restore.cached - $(PaketRootPath)paket.lock - classic - proj - assembly - native - /Library/Frameworks/Mono.framework/Commands/mono - mono - - - $(PaketRootPath)paket.bootstrapper.exe - $(PaketToolsPath)paket.bootstrapper.exe - $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\ - - "$(PaketBootStrapperExePath)" - $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)" - - - - - true - true - - - True - - - False - - $(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/')) - - - - - - - - - $(PaketRootPath)paket - $(PaketToolsPath)paket - - - - - - $(PaketRootPath)paket.exe - $(PaketToolsPath)paket.exe - - - - - - <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json")) - <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"')) - <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false - - - - - - - - - - - <_PaketCommand>dotnet paket - - - - - - $(PaketToolsPath)paket - $(PaketBootStrapperExeDir)paket - - - paket - - - - - <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)")) - <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)" - <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" - <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)" - - - - - - - - - - - - - - - - - - - - - true - $(NoWarn);NU1603;NU1604;NU1605;NU1608 - false - true - - - - - - - - - $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) - - - - - - - $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[0].Replace(`"`, ``).Replace(` `, ``)) - $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[1].Replace(`"`, ``).Replace(` `, ``)) - - - - - %(PaketRestoreCachedKeyValue.Value) - %(PaketRestoreCachedKeyValue.Value) - - - - - true - false - true - - - - - true - - - - - - - - - - - - - - - - - - - $(PaketIntermediateOutputPath)\$(MSBuildProjectFile).paket.references.cached - - $(MSBuildProjectFullPath).paket.references - - $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references - - $(MSBuildProjectDirectory)\paket.references - - false - true - true - references-file-or-cache-not-found - - - - - $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)')) - $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)')) - references-file - false - - - - - false - - - - - true - target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) - - - - - - - - - - - false - true - - - - - - - - - - - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5]) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[6]) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[7]) - $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[8]) - - - %(PaketReferencesFileLinesInfo.PackageVersion) - All - runtime - $(ExcludeAssets);contentFiles - $(ExcludeAssets);build;buildMultitargeting;buildTransitive - %(PaketReferencesFileLinesInfo.Aliases) - true - true - - - - - - $(PaketIntermediateOutputPath)/$(MSBuildProjectFile).paket.clitools - - - - - - - - - $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0]) - $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1]) - - - %(PaketCliToolFileLinesInfo.PackageVersion) - - - - - - - - - - false - - - - - - <_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/> - - - - - - $(MSBuildProjectDirectory)/$(MSBuildProjectFile) - true - false - true - false - true - false - true - false - true - false - true - $(PaketIntermediateOutputPath)\$(Configuration) - $(PaketIntermediateOutputPath) - - - - <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.$(PackageVersion.Split(`+`)[0]).nuspec"/> - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pulumi.FSharp.Kubernetes/Myriad.fs b/Pulumi.FSharp.Kubernetes/Myriad.fs deleted file mode 100644 index 37de23b..0000000 --- a/Pulumi.FSharp.Kubernetes/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Kubernetes - -module Force = let private nonce = 293305797 \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/AstHelpers.fs b/Pulumi.FSharp.Myriad/AstHelpers.fs deleted file mode 100644 index a2e028b..0000000 --- a/Pulumi.FSharp.Myriad/AstHelpers.fs +++ /dev/null @@ -1,290 +0,0 @@ -module AstHelpers - -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open FSharp.Compiler.Text -open Core -open Myriad.Core.Ast -open Myriad.Core.AstExtensions - -type SimplePat = - /// str - static member id(str) = - SynSimplePat.Id(Ident.Create(str), None, false, false, false, range.Zero) - - static member hashTyped (str, type': string) = - SynSimplePat.CreateTyped( - Ident.Create str, - SynType.HashConstraint( - SynType.CreateLongIdent(type'), - range.Zero)) - - static member typed(str, type' : string) = - SynSimplePat.Typed( - SimplePat.id(str), - SynType.CreateLongIdent(type'), - range.Zero) - -type SynPat with - static member CreateTuple(args : SynPat list) = - SynPat.Tuple(false, args, Range.Zero) - -type Pat = - static member tuple(left, right) = - SynPat.CreateTuple([ - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(left), []) - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(right), []) - ]) - - static member tuple(one, two, three) = - SynPat.CreateTuple([ - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(one), []) - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(two), []) - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(three), []) - ]) - - static member tuple(left : SynPat, right : SynPat) = - SynPat.CreateTuple([ - left - right - ]) - - static member paren(pat : SynPat) = - SynPat.CreateParen(pat) - - static member ident(str) = - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(str), []) - - static member null' = - SynPat.Null(range.Zero) - - static member wild = - SynPat.Wild(range.Zero) - - static member typed(name, typeName : string) = - SynPat.Typed(Pat.ident(name), SynType.CreateLongIdent(typeName), range.Zero) |> - SynPat.CreateParen - -type Expr = - /// str - static member ident(str) = - SynExpr.CreateIdent(Ident.Create(str)) - - /// str.str - static member longIdent(str) = - SynExpr.CreateLongIdent(LongIdentWithDots.CreateString(str)) - - /// (exp) - static member paren(exp) = - SynExpr.CreateParen(exp) - - /// () - static member unit = - SynExpr.CreateUnit - - /// null - static member null' = - SynExpr.CreateNull - - /// (left, right) - static member tuple(left, right) = - SynExpr.CreateTuple([ - left - right - ]) - - /// (left, right) - static member tuple(one, two, three) = - SynExpr.CreateTuple([ - one - two - three - ]) - - /// (a, b, c, ...) - static member tuple(exps) = - SynExpr.CreateTuple(exps) - - /// [ ... ] - static member list(exps) = - SynExpr.ArrayOrList( - false, - exps, - range.Zero - ) - - /// [ ... ] - static member list(idents) = - SynExpr.ArrayOrList( - false, - idents |> List.map Expr.ident, - range.Zero - ) - - /// exp1 - /// exp2 - /// ... - static member sequential(exps) = - SynExpr.CreateSequential(exps) - - /// func arg - static member app(func, arg) = - SynExpr.CreateApp(func, arg) - - /// func arg1 arg2 ... - static member app(func : SynExpr, args : SynExpr list) = - match args with - | [ ] -> Expr.app(func, Expr.unit) - | [x] -> Expr.app(func, x) - | x :: xs -> Expr.app(Expr.app(func, x), xs) - - /// func arg1 arg2 ... - static member app(func : string, args : SynExpr list) = - Expr.app((Expr.longIdent(func) : SynExpr), args) - - /// func arg - static member app(func : string, arg : string) = - Expr.app(Expr.longIdent(func), Expr.ident(arg)) - - /// func arg - static member app(func : string, arg : SynExpr) = - Expr.app(Expr.longIdent(func), arg) - - /// func (arg1, arg2, ...) - static member appTuple(func : string, args) = - Expr.app(func, - Expr.paren(Expr.tuple(args |> List.map Expr.ident))) - - static member match'(expr, clauses) = - SynExpr.CreateMatch(expr, clauses) - - /// value - static member const'(value) = - SynExpr.CreateConstString(value) - - /// failwith msg - static member failwith(msg) = - Expr.app("failwith", Expr.const'(msg)) - - static member let'(name, args : SynPat list, exp) = - SynExpr.LetOrUse( - false, - false, - [ - SynBinding.Let( - pattern = SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), args), - expr = exp) - ], - Expr.unit, - range.Zero, - { InKeyword = None }) - - static member let'(name, args, exp) = - SynExpr.LetOrUse( - false, - false, - [ - SynBinding.Let( - pattern = SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), - (args |> List.map Pat.ident)), - expr = exp) - ], - Expr.unit, - range.Zero, - { InKeyword = None }) - - static member set(identString, exp) = - SynExpr.Set (Expr.longIdent(identString), - exp, - range.Zero) - - static member methodCall(identString, exps) = - SynExpr.CreateInstanceMethodCall(LongIdentWithDots.CreateString(identString), - Expr.paren(Expr.tuple(exps))) - - static member lambda(args : SynSimplePat list, exp : SynExpr) = - let mapArgs = - function - | SynSimplePat.Id(x, _, _, _, _, _) -> - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(x.idText), []) - | SynSimplePat.Typed(SynSimplePat.Id(ident, _, _, _, _, _), targetType, _) -> - SynPat.CreateParen(SynPat.CreateTyped(SynPat.CreateLongIdent(LongIdentWithDots.CreateString(ident.idText), []), targetType)) - | x -> sprintf "%A" x |> failwith - - let pats = - args |> - List.map mapArgs - - let pat = - match pats with - | [] -> SynPat.CreateTuple(pats) - | [_] -> SynPat.CreateTuple(pats) - | _ -> SynPat.CreateParen(SynPat.CreateTuple(pats)) - - SynExpr.CreateLambda([pat], exp) - - static member lambda(args : string list, exp) = - SynExpr.CreateLambda(args |> List.map (fun x -> SynPat.CreateLongIdent(LongIdentWithDots.CreateString(x), [])), exp) - - //match args with - //| [ ] -> Expr.lambda(List.empty, exp) - //| [x] -> Expr.lambda([ SimplePat.id(x) ], exp) - //| x :: xs -> Expr.lambda([ SimplePat.id(x) ], Expr.lambda(xs, exp)) - -type Match = - static member clause(pat, expr) = - SynMatchClause.SynMatchClause(pat, - None, - expr, - range.Zero, - DebugPointAtTarget.No, - { ArrowRange = Some range.Zero; BarRange = Some range.Zero }) - -type Namespace = - static member namespace'(name, content) = - SynModuleOrNamespace.CreateNamespace(Ident.CreateLong name, decls = content) - -type Attribute = - static member attribute(name) = - SynAttributeList.Create(SynAttribute.Create(name)) - -type Module = - static member module'(name, content, attributes) = - let componentInfo = - SynComponentInfo.Create([ Ident.Create name ], attributes = attributes) - - SynModuleDecl.NestedModule(componentInfo, - false, - content, - false, - Range.Zero, - { EqualsRange = Some Range.Zero - ModuleKeyword = Some Range.Zero }) - - static member module'(name, content) = - Module.module'(name, content, []) - - static member autoOpenModule(name, content) = - Module.module'(name, content, [ Attribute.attribute("AutoOpen") ]) - - static member open'(namespaceOrModule) = - SynOpenDeclTarget.ModuleOrNamespace(LongIdentWithDots.CreateString(namespaceOrModule).Lid, range.Zero) |> - SynModuleDecl.CreateOpen - - static member type'(name, content) = - let t = SynTypeDefn.SynTypeDefn(SynComponentInfo.Create(Ident.CreateLong(name)), - SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Unspecified, - [SynMemberDefn.CreateImplicitCtor()], - Range.Zero), - content, - None, - Range.Zero, - { SynTypeDefnTrivia.TypeKeyword = Some Range.Zero - EqualsRange = Some Range.Zero - WithKeyword = None }) - - SynModuleDecl.Types([ t ], Range.Zero) - -type Type = - static member ctor() = - SynMemberDefn.CreateImplicitCtor() \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Attribute.fs b/Pulumi.FSharp.Myriad/Attribute.fs deleted file mode 100644 index 8af7d89..0000000 --- a/Pulumi.FSharp.Myriad/Attribute.fs +++ /dev/null @@ -1,16 +0,0 @@ -module AstAttribute - -open FSharp.Compiler.Text -open FSharp.Compiler.Syntax -open Myriad.Core.AstExtensions - -let createAttribute name = - SynAttributeList.Create(SynAttribute.Create(name)) - -let createAttributeWithArg (name : string) (arg : string) = - let o : SynAttribute = { TypeName = LongIdentWithDots.CreateString(name) - ArgExpr = SynExpr.CreateParen(SynExpr.CreateConstString(arg)) - Target = None - AppliesToGetterAndSetter = false - Range = range.Zero } - SynAttributeList.Create(o) \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Builder.fs b/Pulumi.FSharp.Myriad/Builder.fs deleted file mode 100644 index 3078e2c..0000000 --- a/Pulumi.FSharp.Myriad/Builder.fs +++ /dev/null @@ -1,203 +0,0 @@ -module AstBuilder - -open AstOperations -open AstInstance -open AstHelpers -open AstMember -open AstYield -open AstRun -open Core - -open System.Text.RegularExpressions -open FSharp.Text.RegexProvider - -// "azure:compute/virtualMachine:VirtualMachine" -// CloudProvider - Always the same for each schema (azure here) -type InfoProvider = - Regex<"(?[a-z0-9-]+):(?[A-Za-z0-9.]+)(/(?\w+))?:(?\w+)"> - -let typeInfoProvider = - InfoProvider(RegexOptions.Compiled) - -type BuilderType = - | Type of InfoProvider.MatchType - | Resource of InfoProvider.MatchType - -let private argIdent = - Pat.ident("arg") - -let private argToInput = - Expr.app("input", "arg") - -let private args = - Expr.ident("args") - -let private funcIdent = - Expr.ident("func") - -let private yieldReturnExpr = - Expr.list([ Expr.ident("id") ]) - -let private combineExpr = - Expr.app("_combine", "args") - -let private combineCrosExpr = - Expr.app("_combineCros", "args") - -let private combineArgs = - Pat.ident("args") - -let private combineMember = - createMember' None "this" "Combine" combineArgs [] combineExpr - -let private combineCrosMember = - createMember' None "this" "Combine" combineArgs [] combineCrosExpr - -let private forArgs = - Pat.paren (Pat.tuple ("args", "delayedArgs")) - -let private forExpr = - Expr.methodCall("this.Combine", - [ Expr.ident("args") - Expr.app("delayedArgs", Expr.unit) ]) - -let private forMember = - createMember' None "this" "For" forArgs [] forExpr - -let private delayMember = - createMember "Delay" (Pat.ident("f")) [] (Expr.app("f", [])) - -let private zeroMember = - createMember "Zero" Pat.wild [] Expr.unit - -let private yieldMember isType = - createYield isType yieldReturnExpr yieldReturnExpr - -let private newNameExpr = - Expr.tuple(Expr.ident("newName"), - Expr.ident("args"), - Expr.ident("cros")) - -let private nameMember = - createNameOperation newNameExpr - -let createYieldFor argsType propType = - let setExpr = - Expr.sequential([ - Expr.set("args." + propType.Name, argToInput) - args - ]) - - let expr = - Expr.list([ - Expr.paren( - Expr.sequential([ - Expr.let'("func", [Pat.typed("args", argsType)], setExpr) - funcIdent - ]) - ) - ]) - - let cros = - Expr.list([Expr.ident("id")]) - - [ createYield' (not propType.IsResource) argIdent expr cros ] - -let mapOperationType yieldSelector opsSelector = - function - | { Type = PRef _; CanGenerateYield = true } & pt -> yieldSelector pt - | { Type = PRef _ } & pt - | { Type = PString } & pt - | { Type = PInteger } & pt - | { Type = PFloat } & pt - | { Type = PBoolean } & pt - | { Type = PArray _ } & pt - | { Type = PUnion _ } & pt - | { Type = PJson _ } & pt - | { Type = PMap _ } & pt - | { Type = PAssetOrArchive _ } & pt - | { Type = PAny _ } & pt - | { Type = PArchive _ } & pt -> opsSelector pt - -let createBuilderClass isType name pTypes = - let argsType = $"{name}Args" - - let apply varname = - let args = - match varname with - | "args" -> argsType - // in Pulumi.Kubernetes 4.10.0, two new types were added which - // use ComponentResourceOptions instead of CustomResourceOptions - // This check should be made generic for all ResourceOption types - | _ when ["ConfigFile"; "ConfigGroup"] |> List.contains name -> "ComponentResourceOptions" - | _ -> "CustomResourceOptions" - - Expr.app("List.fold", [ - Expr.paren(Expr.lambda([ varname; "f" ], Expr.app("f", varname))) - Expr.paren(createInstance args Expr.unit) - Expr.ident(varname) - ]) - - let resourceRunExp () = - Expr.paren( - Expr.tuple( - Expr.ident("name"), - (apply "args"), - (apply "cros") - )) |> - createInstance name - - let createOperations = - mapOperationType (createYieldFor argsType) (createOperationsFor' argsType) - - let operations = - pTypes |> - Seq.collect createOperations - - let inputListOfInput argName = - Expr.app( - Expr.ident("inputList"), - Expr.list( - [Expr.app( - Expr.ident("input"), - Expr.ident(argName))])) - - let inputListOfResources argName = - Expr.app(Expr.ident("inputList"), - Expr.paren(Expr.app(Expr.longIdent("Seq.map"), - Expr.app(Expr.ident("input"), - Expr.ident(argName))))) - - Module.type'(name + "Builder", [ - //Type.ctor() - - yieldMember isType - - if isType then - apply "args" |> createRunType - else - resourceRunExp() |> createRunResource - - if isType then combineMember else combineCrosMember - forMember - delayMember - zeroMember - - yield! if isType then [] else [ nameMember ] - - yield! operations - - if not isType then - croOperation "DependsOn" - "Ensure this resource gets created after its dependency" - "dependency" - (inputListOfInput "dependency") - true - - if not isType then - croOperation "DependsOn" - "Ensure this resource gets created after its dependency" - "dependency" - (inputListOfResources "dependency") - false - ]) \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/BuilderInstance.fs b/Pulumi.FSharp.Myriad/BuilderInstance.fs deleted file mode 100644 index 8d476de..0000000 --- a/Pulumi.FSharp.Myriad/BuilderInstance.fs +++ /dev/null @@ -1,44 +0,0 @@ -module BuilderInstance - -open FSharp.Compiler.Syntax -open AstOperations -open AstInstance -open AstBuilder -open AstLet -open Myriad.Core.AstExtensions -open Core - -let createBuilderInstance description typeName pTypes = - let isYield, ops = - Array.partition (fun x -> x.CanGenerateYield && mapOperationType (fun _ -> true) (fun _ -> false) x) pTypes - - let builderNames = - isYield |> - Array.map (function - | { Type = PRef t } -> String.split ':' t |> Array.last |> toCamelCase - | x -> failwith $"{x} type should not use yield") - - let listItem = - sprintf " - %s" - - let title text = - $"*** {text} ***" - - let builderNamesSection = - match builderNames |> List.ofArray with - | [] -> [] - | bn -> "" :: title "Nested computational expressions" :: (List.map listItem bn) - - let descriptionShort = - description |> String.split '\n' |> Array.head - - let ccTypeName = - if typeName = "Input" then "input'" else typeName |> toCamelCase - - [ yield descriptionShort - yield "" - yield title "Operations" - yield! ops |> Array.map (fun x -> listItem x.OperationName) |> Array.collect (fun x -> [| ""; x |]) - yield! builderNamesSection |> List.collect (fun x -> [ ""; x ]) ] |> - createLet ccTypeName - (createInstance $"{typeName}Builder" SynExpr.CreateUnit) \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Core.fs b/Pulumi.FSharp.Myriad/Core.fs deleted file mode 100644 index eadec57..0000000 --- a/Pulumi.FSharp.Myriad/Core.fs +++ /dev/null @@ -1,32 +0,0 @@ -module Core - -open System -open FSharp.Compiler.Syntax -open Myriad.Core.Ast -open Myriad.Core.AstExtensions - -let private (|FirstLetter|) (p:string) = - p[0], p.Substring(1) - -let private changeInitial change value = - let (FirstLetter(x, xs)) = - value - - sprintf "%c%s" (change x) xs - -let toCamelCase = - changeInitial Char.ToLower - -let toPascalCase = - changeInitial Char.ToUpper - -let createPattern name args = - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), args) - -let (|Lazy|) (lazy' : Lazy<'a>) = - lazy'.Value - -module String = - let split (char : char) (value : string) = value.Split(char) - - let contains (subString : string) (value : string) = value.Contains(subString) \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/IndexModule.fs b/Pulumi.FSharp.Myriad/IndexModule.fs deleted file mode 100644 index 08a2cbf..0000000 --- a/Pulumi.FSharp.Myriad/IndexModule.fs +++ /dev/null @@ -1,135 +0,0 @@ -module IndexModule - -open FSharp.Compiler.Syntax -open AstHelpers -open AstModules -open FSharp.Compiler.Text -open Myriad.Core.Ast -open Myriad.Core.AstExtensions -open Core - -type private Namespace = - { - Name: string - SubNamespaceName: string option - Content: seq - } - -type private SubNamespace = - { - Name: string option - Content: seq - } - -let createModules provider ((indexTypes, qualifiedTypes) : PulumiModule list * PulumiModule list) = - let groupSub contentList = - contentList |> - List.groupBy (fun ns -> ns.SubNamespaceName) |> - List.map (fun (subName, content) -> { Name = subName; Content = content |> Seq.collect (fun c -> c.Content) }) - - let createSubmodule subName rootNamespace content = - createModule' subName [$"{provider}.{rootNamespace}.{subName}" - $"{provider}.Types.Inputs.{rootNamespace}.{subName}"] content - - let createSubmodules rootNamespace = - Seq.collect (function - | { Content = content - SubNamespace.Name = None } -> content - | { Content = content - Name = Some subName } -> seq { createSubmodule subName rootNamespace content }) - - let qualifiedTypesModules = - qualifiedTypes |> - List.map ((fun qualifiedTypeModule -> (String.split '.' qualifiedTypeModule.ResourceProviderNamespace.Value, - qualifiedTypeModule.Content)) >> - (function - | [|rootNamespace|], content -> { Name = rootNamespace - SubNamespaceName = None - Content = content } - | [|rootNamespace; subNamespace|], content -> { Name = rootNamespace - SubNamespaceName = Some subNamespace - Content = content } - | _ -> failwith "Too many nested namespaces")) |> - List.groupBy (fun rootNamespace -> rootNamespace.Name) |> - List.map (fun (rootNamespaceName, content) -> groupSub content |> - createSubmodules rootNamespaceName |> - createModule' rootNamespaceName [$"{provider}.{rootNamespaceName}"]) - - let indexTypesAsts = - indexTypes |> Seq.collect (fun x -> x.Content) - - let letCombineImplementation = - let fromRcd = - SynPat.CreateLongIdent(LongIdentWithDots.CreateString("_combine"),[ - Pat.paren(Pat.tuple(Pat.paren(Pat.tuple("rName", "rArgs")), - Pat.paren(Pat.tuple("lName", "lArgs")))) - ]) |> ignore // Replace below with this - - SynPat.CreateLongIdent(LongIdentWithDots.CreateString("_combine"), [ - SynPat.CreateParen(SynPat.Tuple(false, [ - SynPat.CreateParen(SynPat.Tuple(false, [ SynPat.CreateLongIdent(LongIdentWithDots.CreateString("rName"), []) - SynPat.CreateLongIdent(LongIdentWithDots.CreateString("rArgs"), []) ], range.Zero)) - SynPat.CreateParen(SynPat.Tuple(false, [ SynPat.CreateLongIdent(LongIdentWithDots.CreateString("lName"), []) - SynPat.CreateLongIdent(LongIdentWithDots.CreateString("lArgs"), []) ], range.Zero)) - ], Range.Zero)) - ]) - - let matchExpr = - Expr.paren( - Expr.match'(Expr.tuple(Expr.ident("lName"), Expr.ident("rName")), [ - Match.clause(Pat.tuple(Pat.null', Pat.null'), Expr.null') - Match.clause(Pat.tuple(Pat.null', Pat.ident("name")), Expr.ident("name")) - Match.clause(Pat.tuple(Pat.ident("name"), Pat.null'), Expr.ident("name")) - Match.clause(Pat.wild, Expr.failwith("Duplicate name")) - ])) - - let combineExpr = - Expr.tuple(matchExpr, - Expr.paren(Expr.app("List.concat", (Expr.list [ "lArgs"; "rArgs" ])))) - - let expr = - combineExpr - - SynModuleDecl.CreateLet([ - SynBinding.Let(SynAccess.Private, pattern = fromRcd, expr = expr) - ]) - - let letCombineCrosImplementation = - let fromRcd = - SynPat.CreateLongIdent(LongIdentWithDots.CreateString("_combineCros"),[ - Pat.paren(Pat.tuple(Pat.paren(Pat.tuple("rName", "rArgs", "rCros")), - Pat.paren(Pat.tuple("lName", "lArgs", "lCros")))) - ]) - - let matchExpr = - Expr.paren( - Expr.match'(Expr.tuple(Expr.ident("lName"), Expr.ident("rName")), [ - Match.clause(Pat.tuple(Pat.null', Pat.null'), Expr.null') - Match.clause(Pat.tuple(Pat.null', Pat.ident("name")), Expr.ident("name")) - Match.clause(Pat.tuple(Pat.ident("name"), Pat.null'), Expr.ident("name")) - Match.clause(Pat.wild, Expr.failwith("Duplicate name")) - ])) - - let combineExpr = - Expr.tuple(matchExpr, - Expr.paren(Expr.app("List.concat", (Expr.list [ "lArgs"; "rArgs" ]))), - Expr.paren(Expr.app("List.concat", (Expr.list [ "lCros"; "rCros" ])))) - - let expr = - combineExpr - - SynModuleDecl.CreateLet([ - SynBinding.Let(SynAccess.Private, pattern = fromRcd, expr = expr) - ]) - - Module.module'(provider, [ - Module.open'($"Pulumi.{provider}") - - letCombineImplementation - - letCombineCrosImplementation - - yield! indexTypesAsts - - yield! qualifiedTypesModules - ]) \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Let.fs b/Pulumi.FSharp.Myriad/Let.fs deleted file mode 100644 index f4ad042..0000000 --- a/Pulumi.FSharp.Myriad/Let.fs +++ /dev/null @@ -1,12 +0,0 @@ -module AstLet - -open FSharp.Compiler.Syntax -open FSharp.Compiler.Xml -open Myriad.Core.Ast -open Myriad.Core.AstExtensions - -let createLet name expr (docs : string list) = - SynModuleDecl.CreateLet - [ SynBinding.Let (pattern = SynPat.CreateLongIdent(LongIdentWithDots.CreateString name, []), - expr = expr, - xmldoc = PreXmlDoc.Create(docs)) ] \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Member.fs b/Pulumi.FSharp.Myriad/Member.fs deleted file mode 100644 index 628f98c..0000000 --- a/Pulumi.FSharp.Myriad/Member.fs +++ /dev/null @@ -1,61 +0,0 @@ -module AstMember - -open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia -open FSharp.Compiler.Text -open Core -open FSharp.Compiler.Xml -open Myriad.Core.Ast -open Myriad.Core.AstExtensions - -let createMember' xmlDoc this name args attrs expr = - - //let memberFlags : MemberFlags = - //let b : SynBindingRcd = - // { - // ValData = SynValData(Some memberFlags, SynValInfo([], SynArgInfo(SynAttributes.Empty, false, None)), None) - // Pat = SynPat.LongIdent(LongIdentWithDots([mkId "x"; mkId "Points"], [range.Zero]), None, None, SynConstructorArgs.Pats[], None, range.Zero) - // } - let memberFlag : SynMemberFlags = - { - IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - MemberKind = SynMemberKind.Member - Trivia = { - MemberRange = Some Range.Zero - OverrideRange = None - AbstractRange = None - StaticRange = None - DefaultRange = None - } - } - - let argsPat = - match args with - | SynPat.Paren _ - | SynPat.Wild _ -> args - | _ -> SynPat.Paren(args, Range.Zero) - - SynBinding.SynBinding(None, - SynBindingKind.Normal, - false, - false, - attrs, - (match xmlDoc with | Some x -> x | None -> PreXmlDoc.Empty), - SynValData.SynValData(Some memberFlag, SynValInfo([], SynArgInfo(SynAttributes.Empty, false, None))(*SynValInfo.Empty*), None), - SynPat.CreateLongIdent(LongIdentWithDots.CreateString(this + "." + name), [argsPat]), - None, - expr, - Range.Zero, - DebugPointAtBinding.NoneAtInvisible, - { LetKeyword = Some Range.Zero - EqualsRange = Some Range.Zero }) - |> fun x -> SynMemberDefn.Member(x, Range.Zero) - -let createMember'' xmlDoc = - createMember' xmlDoc "_" - -let createMember = - createMember' None "_" \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Namespace.fs b/Pulumi.FSharp.Myriad/Namespace.fs deleted file mode 100644 index 1a28400..0000000 --- a/Pulumi.FSharp.Myriad/Namespace.fs +++ /dev/null @@ -1,11 +0,0 @@ -module AstNamespace - -open AstHelpers - -let createNamespace module' = - Namespace.namespace'("Pulumi.FSharp", [ - Module.open'("Pulumi.FSharp") - Module.open'("Pulumi") - - module' - ]) \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Operations.fs b/Pulumi.FSharp.Myriad/Operations.fs deleted file mode 100644 index b31a8db..0000000 --- a/Pulumi.FSharp.Myriad/Operations.fs +++ /dev/null @@ -1,323 +0,0 @@ -module AstOperations - -open FSharp.Compiler.Syntax -open FSharp.Compiler.Xml -open AstAttribute -open AstHelpers -open AstMember -open Myriad.Core.AstExtensions -open Myriad.Core.Ast -open Core - -let private createPatternTyped name args (typeName : string) = - SynPat.CreateTyped(SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), args), - SynType.CreateLongIdent(typeName)) - -let private createTuple items withParen = - if withParen then - SynPat.CreateParen(SynPat.CreateTuple(items)) - else - SynPat.CreateTuple(items) - -let private argsPattern = - createPattern "args" [] - -let private crosPattern = - createPattern "cros" [] - -let private nPattern = - createPattern "n" [] - -let private namePattern = - createPattern "name" [] - -let createPatternFromCache nameVarName = - match nameVarName with - | "n" -> nPattern - | "name" -> namePattern - | _ -> createPattern nameVarName [] - -let argsTuple' isResource nameVarName withParen = - let nvn = - match nameVarName with - | null -> SynPat.CreateWild - | _ -> createPatternFromCache nameVarName - - createTuple [ nvn - argsPattern - if isResource then crosPattern ] withParen - -let argsTupleResource withParen = - createTuple [ namePattern - argsPattern - crosPattern ] withParen - -let argsTupleType withParen = - createTuple [ SynPat.CreateWild - argsPattern ] withParen - -let private createOperation'' isResource (xmlDoc : string list) nameVarName name coName argName hasAttribute typ = - let attributes = - if hasAttribute then - [ createAttributeWithArg "CustomOperation" coName ] - else - [] - - let patterns = - createTuple [ - argsTuple' isResource nameVarName true - match typ with | None -> createPattern argName [] | Some typ -> createPatternTyped argName [] typ - ] true - - let doc = - PreXmlDoc.Create(xmlDoc) |> Some - - createMember'' doc name patterns attributes - -let createNameOperation newNameExpr = - createOperation'' true ["Pulumi logical resource name"] null "Name" "name" "newName" true None newNameExpr - -let private listCons = - Expr.appTuple("List.Cons", [ "apply"; "args" ]) - -let private nReturnTuple = - Expr.tuple(Expr.ident("n"), listCons) - -let private nameReturnTuple = - Expr.tuple(Expr.ident("name"), listCons) - -let private argsIdent = - Expr.ident("args") - -let private inputIdent = - Expr.ident("input") - -let private ioIdent = - Expr.ident("io") - -let private inputListIdent = - Expr.ident("inputList") - -let private inputMapIdent = - Expr.ident("inputMap") - -let private inputJson = - Expr.longIdent("Pulumi.InputJson.op_Implicit") - -let private resourceNameIdent = - Expr.ident("resourceName") - -let private resourceTypeIdent = - Expr.ident("resourceType") - -let private compose = - Expr.paren(Expr.ident("op_ComposeRight")) - -let private inputListFromSeqOf (expr : SynExpr) = - Expr.paren( - Expr.app(compose, [ - Expr.paren(Expr.app(Expr.longIdent("Seq.map"), expr)) - inputListIdent - ]) - ) - -let private inputMapFromMapOf (expr : SynExpr) = - let mapSelector = - Expr.paren( - Expr.lambda([ SimplePat.id("k") - SimplePat.id("v") ], - Expr.tuple(Expr.ident("k"), - Expr.app(expr, - Expr.ident("v"))))) - - Expr.paren( - Expr.app(compose, [ - Expr.paren(Expr.app(Expr.longIdent("Seq.map"), mapSelector)) - inputMapIdent - ]) - ) - -let private inputMapFromMapOfInput = - inputMapFromMapOf inputIdent - -let private inputMapFromMapOfOutput = - inputMapFromMapOf ioIdent - -let private inputListFromSeq = - inputListFromSeqOf inputIdent - -let private inputListFromOutputSeq = - inputListFromSeqOf ioIdent - -let private inputListFromItemOf (expr : SynExpr) = - Expr.paren(Expr.app(compose, - Expr.app(Expr.paren(Expr.app(compose, - [ expr; Expr.longIdent("Seq.singleton") ])), inputListIdent))) - -let private inputListFromItem = - inputListFromItemOf inputIdent - -let private inputListFromOutput = - inputListFromItemOf ioIdent - -let private inputUnion1Of2 = - Expr.ident("inputUnion1Of2") - -let private inputUnion2Of2 = - Expr.ident("inputUnion2Of2") - -let private idIdent = - Expr.ident("id") - -type PType = - | PArray of PType - | PUnion of PType * PType - | PString - | PInteger - | PFloat - | PBoolean - | PMap of PType - | PJson - | PAssetOrArchive - | PArchive - | PAny - | PRef of string - -type Deprecation = - | Current - | Deprecated of string - -type PTypeDefinition = - { - Name: string - Type: PType - Description: string - Deprecation: Deprecation - CanGenerateYield: bool - IsResource: bool - OperationName: string - } - -// This should be the same as the member arg (currently "n") -let private returnTupleCache argsType pType opName setRight = - let set = - Expr.set($"args.{pType.Name}", setRight) - - let lambdaExpr = - Expr.sequential([ - set - Expr.ident("args") - ]) - - let lambda = - Expr.lambda([ - SimplePat.typed("args", argsType) - ], lambdaExpr) - - let consArg = - Expr.paren(Expr.tuple(Expr.paren(lambda), Expr.ident("args"))) - - let cons = - Expr.app(Expr.longIdent("List.Cons"), consArg) - - match pType.IsResource with - | false -> Expr.tuple(Expr.ident("n"), cons) - | true -> Expr.tuple(Expr.ident("name"), cons, Expr.ident("cros")) - -let createOperationsFor' argsType pType = - let setRights, argType = - match pType with - | { PTypeDefinition.Type = PString } - | { Type = PInteger } - | { Type = PFloat } - | { Type = PBoolean } -> [ inputIdent; ioIdent ], None - | { Type = PArray _ } -> [ inputListIdent; inputListFromSeq; inputListFromOutputSeq; inputListFromItem; inputListFromOutput ], None - | { Type = PUnion _ } -> [ idIdent; inputUnion1Of2; inputUnion2Of2 ], None - | { Type = PJson } -> [ inputJson ], Some "string" - | { Type = PMap _ } -> [ idIdent; inputMapIdent; inputMapFromMapOfInput; inputMapFromMapOfOutput ], None - | { Type = PRef _ } - | { Type = PArchive } - | { Type = PAny } - | { Type = PAssetOrArchive } -> [ inputIdent ], None - - let snakeCaseName = - if pType.Name = "Name" && pType.IsResource then - "resourceName" - else - toCamelCase pType.Name - - let argName = - match snakeCaseName with - | "fixed" - | "input" - | "args" -> snakeCaseName + "\'" - | "type" -> "resourceType" - | _ -> snakeCaseName - - let operationName = - match pType.Name with - | "Name" when pType.IsResource -> resourceNameIdent - | "Type" when pType.IsResource -> resourceTypeIdent - | _ -> Expr.ident(argName) - - let nameArgName = - if pType.IsResource then - "name" - elif pType.OperationName = "n" then - "nx" - else - "n" - - let memberName = - pType.OperationName |> toPascalCase - - let doc = - String.split '\n' pType.Description |> Array.filter ((=)"" >> not) |> List.ofArray - - let returnTupleCache' = - returnTupleCache argsType pType operationName - - let argNameExpr = - Expr.ident(argName) - - setRights |> - List.map ((fun sr -> Expr.app(sr, argNameExpr)) >> returnTupleCache') |> - List.mapi (fun i e -> createOperation'' pType.IsResource doc nameArgName memberName pType.OperationName argName (i = 0) argType e) - - -let croOperation operationName description argumentName (setAssignmentExpression : SynExpr) withAttribute = - let attributes = - [ if withAttribute then createAttributeWithArg "CustomOperation" (operationName |> toCamelCase) ] - - let patterns = - createTuple [ - argsTupleResource true - createPattern argumentName [] - ] true - - let doc = - PreXmlDoc.Create([ description ]) |> Some - - let updateCrosExpression setAssignmentExpression = - let lambdaExpression = - Expr.sequential([ - Expr.set($"cros.{operationName}", setAssignmentExpression) - Expr.ident("cros") - ]) - - let listConsLambdaFirstExpression = - Expr.lambda([ - SimplePat.hashTyped("cros", "ResourceOptions") - ], lambdaExpression) - - let listConsExpressions = - Expr.paren(Expr.tuple(Expr.paren(listConsLambdaFirstExpression), Expr.ident("cros"))) - - Expr.app(Expr.longIdent("List.Cons"), listConsExpressions) - - let expression = - Expr.tuple(Expr.ident("name"), - Expr.ident("args"), - updateCrosExpression setAssignmentExpression) - - createMember'' doc operationName patterns attributes expression \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Run.fs b/Pulumi.FSharp.Myriad/Run.fs deleted file mode 100644 index 2a87dd6..0000000 --- a/Pulumi.FSharp.Myriad/Run.fs +++ /dev/null @@ -1,10 +0,0 @@ -module AstRun - -open AstMember -open AstOperations - -let createRunResource = - createMember "Run" (argsTupleResource true) [] - -let createRunType = - createMember "Run" (argsTupleType true) [] \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Schema.fs b/Pulumi.FSharp.Myriad/Schema.fs deleted file mode 100644 index 5f6d2b7..0000000 --- a/Pulumi.FSharp.Myriad/Schema.fs +++ /dev/null @@ -1,25 +0,0 @@ -module Schema - -open System -open FSharp.Data -open System.IO -open Fantomas - -let private getSchemaFromFileCacheOrDownload provider version schemaUrl = - match FileInfo($"{provider}.{version}.json") with - | fi when fi.Exists -> fi.OpenText().ReadToEnd() - | fi -> let json = Http.RequestString(schemaUrl) - #if DEBUG - use fi = fi.CreateText() in json |> fi.Write - #endif - json - -let private loadSchema' version provider = - $"https://raw.githubusercontent.com/pulumi/pulumi-{provider}/v{version}" + - $"/provider/cmd/pulumi-resource-{provider}/schema.json" |> - getSchemaFromFileCacheOrDownload provider version |> - JsonValue.Parse - -let loadSchema provider version = - String.map Char.ToLower provider |> - loadSchema' version \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/Yield.fs b/Pulumi.FSharp.Myriad/Yield.fs deleted file mode 100644 index a39b59e..0000000 --- a/Pulumi.FSharp.Myriad/Yield.fs +++ /dev/null @@ -1,22 +0,0 @@ -module AstYield - -open AstMember -open FSharp.Compiler.Syntax -open Myriad.Core.Ast -open Myriad.Core.AstExtensions - -let createYield' isType (arg : SynPat) (args : SynExpr) (cros : SynExpr) = - [ - SynExpr.CreateNull - args - if not isType then - cros - ] |> - SynExpr.CreateTuple |> - createMember "Yield" arg [] - -let createYield isType = - let typedWildcardUnit = - SynPat.CreateTyped(SynPat.CreateWild, SynType.CreateUnit) - - createYield' isType typedWildcardUnit \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/paket.references b/Pulumi.FSharp.Myriad/paket.references deleted file mode 100644 index dbff8e6..0000000 --- a/Pulumi.FSharp.Myriad/paket.references +++ /dev/null @@ -1,6 +0,0 @@ -group Myriad - FSharp.Core - FSharp.Data - FSharp.Text.RegexProvider - Myriad.Sdk - Paket.Core \ No newline at end of file diff --git a/Pulumi.FSharp.NuGet.Test/.gitignore b/Pulumi.FSharp.NuGet.Test/.gitignore deleted file mode 100644 index 663f9df..0000000 --- a/Pulumi.FSharp.NuGet.Test/.gitignore +++ /dev/null @@ -1,353 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ \ No newline at end of file diff --git a/Pulumi.FSharp.NuGet.Test/Program.fs b/Pulumi.FSharp.NuGet.Test/Program.fs deleted file mode 100644 index 8e08e7d..0000000 --- a/Pulumi.FSharp.NuGet.Test/Program.fs +++ /dev/null @@ -1,239 +0,0 @@ -module Program - -open Pulumi.FSharp.Kubernetes.Apps.V1.Inputs -open Pulumi.FSharp.Kubernetes.Core.V1.Inputs -open Pulumi.FSharp.Kubernetes.Meta.V1.Inputs -open Pulumi.FSharp.AzureNative.Compute.Inputs -open Pulumi.FSharp.AzureNative.Network.Inputs -open Pulumi.FSharp.AzureNative.Resources -open Pulumi.FSharp.AzureNative.Storage -open Pulumi.FSharp.AzureNative.Network -open Pulumi.FSharp.AzureNative.Compute -open Pulumi.FSharp.Aws.S3.Inputs -open Pulumi.AzureNative.Storage -open Pulumi.AzureNative.Compute -open Pulumi.FSharp.AzureAD -open Pulumi.FSharp.Outputs -open Pulumi.FSharp.Assets -open Pulumi.FSharp.Aws.S3 -open Pulumi.FSharp.Config -open Pulumi.FSharp - -let deployment = Kubernetes.Apps.V1.deployment -let container = Kubernetes.Core.V1.Inputs.container -let nicSubnet = AzureNative.Network.Inputs.subnet -let sku = AzureNative.Storage.Inputs.sku -let networkProfile = AzureNative.Compute.Inputs.networkProfile -let azureLegacyStorageAccount = Azure.Storage.account - -(* -Backup -$ echo -n "Aws Azure AzureNative AzureAD Kubernetes" | xargs -I{} -n1 -d' ' bash -c 'cp Pulumi.FSharp.{}/Generated.fs $(find Pulumi.FSharp.{} -name "Generated.*.fs")' -Test difference with backup copy: -$ echo -n "Aws Azure AzureNative AzureAD Kubernetes" | xargs -I{} -n1 -d' ' bash -c 'diff -qs $(find Pulumi.FSharp.{} -name "Generated.*.fs") Pulumi.FSharp.{}/Generated.fs' -*) - -let infra () = - deployment { - name "application" - - deploymentSpec { - replicas 1 - - labelSelector { - matchLabels [ "app", "nginx" ] - } - - podTemplateSpec { - objectMeta { - labels [ "app", "nginx" ] - } - - podSpec { - containers [ - container { - name "nginx" - image "nginx" - ports [ containerPort { containerPortValue 80 } ] - } - ] - } - } - } - } - - bucket { - name "bucket-example" - acl "private" - - bucketWebsite { - indexDocument "index.html" - } - } - - group { - name "group-example" - displayName "Example AAD group from Pulumi.FSharp.Extensions" - mailEnabled false - } - - let rg = - resourceGroup { - name "rg-example" - location "West Europe" - } - - azureLegacyStorageAccount { - resourceGroup rg.Name - location rg.Location - name "stlegacyexample" - accountTier "Standard" - accountReplicationType "LRS" - } - - let storage = - storageAccount { - resourceGroup rg.Name - location rg.Location - name "stexample" - sku { name "LRS" } - kind Kind.StorageV2 - } - - let container = - blobContainer { - accountName storage.Name - resourceGroup rg.Name - name "example" - - PublicAccess.None - } - - blob { - name "file-blob" - containerName container.Name - resourceGroup rg.Name - accountName storage.Name - source { Path = "Program.fs" }.ToPulumiType - - BlobType.Block - } - - blob { - name "url-blob" - containerName container.Name - resourceGroup rg.Name - accountName storage.Name - - source { - Uri = "https://raw.githubusercontent.com/UnoSD/Pulumi.FSharp.Extensions/master/README.md" - }.ToPulumiType - - BlobType.Block - } - - blob { - name "archive-blob" - containerName container.Name - resourceGroup rg.Name - accountName storage.Name - - source { - Assets = Map.empty - .Add("pr.fs", File { Path = "Program.fs" }) - .Add("p.txt", String { Text = "text!!!!!!" }) - }.ToPulumiType - - BlobType.Block - } - - let vnet = - virtualNetwork { - name "vnet-example" - location rg.Location - resourceGroup rg.Name - addressSpace { addressPrefixes "10.0.0.0/16" } - dependsOn container - } - - let subnet = - subnet { - name "internal" - resourceGroup rg.Name - virtualNetworkName vnet.Name - addressPrefix "10.0.2.0/24" - } - - let nic = - networkInterface { - name "nic-example" - location rg.Location - resourceGroup rg.Name - - ipConfigurations [ - networkInterfaceIPConfiguration { - name "internal" - privateIPAllocationMethod "Dynamic" - nicSubnet { id subnet.Id } - } - ] - } - - virtualMachine { - name "vm-example" - vmName "vm-example" - location rg.Location - resourceGroup rg.Name - - hardwareProfile { - vmSize "Standard_A1_v2" - } - - networkProfile { - networkInterfaces [ - networkInterfaceReference { id nic.Id } - ] - } - - oSProfile { - adminUsername config["vmUser"] - adminPassword secret["vmPass"] - } - - storageProfile { - oSDisk { - name "osdiskexample" - createOption DiskCreateOptionTypes.FromImage - managedDiskParameters { storageAccountType "Standard_LRS" } - - CachingTypes.ReadWrite - } - - imageReference { - offer "WindowsServer" - publisher "MicrosoftWindowsServer" - sku "2016-Datacenter" - version "latest" - } - } - } - - let privateIp = - output { - let! ipConfigs = nic.IpConfigurations - - return ipConfigs[0].PrivateIPAddress - } - - let secretPipCird = - secretOutput { - let! pip = privateIp - - return $"{pip}/32" - } - - dict [ "VisiblePrivateIP" , privateIp :> obj - "SecretPrivateIPCIDR", secretPipCird :> obj ] - -[] -let main _ = Deployment.run infra diff --git a/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj b/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj deleted file mode 100644 index afee494..0000000 --- a/Pulumi.FSharp.NuGet.Test/Pulumi.FSharp.NuGet.Test.fsproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - Exe - net8.0 - enable - NU1605;NU1608;NU1603;FS0020 - 6.0.* - - - - - - - - \ No newline at end of file diff --git a/Pulumi.FSharp.NuGet.Test/Pulumi.test.yaml b/Pulumi.FSharp.NuGet.Test/Pulumi.test.yaml deleted file mode 100644 index a2d570c..0000000 --- a/Pulumi.FSharp.NuGet.Test/Pulumi.test.yaml +++ /dev/null @@ -1,9 +0,0 @@ -encryptionsalt: v1:vC2DnswDsdc=:v1:Yw7Gg1eV2V5gajI4:Z6OMGFCtX8eTeBcpHr+2AZ/qnCE5kg== -config: - aws:region: eu-west-1 - azure-native:location: West Europe - PFETest:vmUser: UnoSD - # export PULUMI_CONFIG_PASSPHRASE='' - # pulumi config set --secret vmPass 'PulumiFsharp99!!' - PFETest:vmPass: - secure: v1:HzkVBijUXi9/c6ZT:QwyDkZ2bZufCkjVh41aBj3Gla4vDIktmZAYbmcZZVNs= \ No newline at end of file diff --git a/Pulumi.FSharp.NuGet.Test/Pulumi.yaml b/Pulumi.FSharp.NuGet.Test/Pulumi.yaml deleted file mode 100644 index 3ce2e4a..0000000 --- a/Pulumi.FSharp.NuGet.Test/Pulumi.yaml +++ /dev/null @@ -1,3 +0,0 @@ -name: PFETest -runtime: dotnet -description: Pulumi.FSharp.Extensions test project diff --git a/Pulumi.FSharp.NuGet.Test/paket.references b/Pulumi.FSharp.NuGet.Test/paket.references deleted file mode 100644 index cfd2313..0000000 --- a/Pulumi.FSharp.NuGet.Test/paket.references +++ /dev/null @@ -1,10 +0,0 @@ -group Test - Pulumi.FSharp.Aws - Pulumi.FSharp.Azure - Pulumi.FSharp.AzureAD - Pulumi.FSharp.AzureNative - Pulumi.FSharp.Core - Pulumi.FSharp.Gcp - Pulumi.FSharp.Kubernetes - Pulumi.FSharp.Tls - FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.Random/Myriad.fs b/Pulumi.FSharp.Random/Myriad.fs deleted file mode 100644 index 81bf2ce..0000000 --- a/Pulumi.FSharp.Random/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Random - -module Force = let private nonce = 938985889 \ No newline at end of file diff --git a/Pulumi.FSharp.Test/.gitignore b/Pulumi.FSharp.Test/.gitignore deleted file mode 100644 index e645270..0000000 --- a/Pulumi.FSharp.Test/.gitignore +++ /dev/null @@ -1,353 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ diff --git a/Pulumi.FSharp.Test/Program.fs b/Pulumi.FSharp.Test/Program.fs deleted file mode 120000 index 5aa63f4..0000000 --- a/Pulumi.FSharp.Test/Program.fs +++ /dev/null @@ -1 +0,0 @@ -../Pulumi.FSharp.NuGet.Test/Program.fs \ No newline at end of file diff --git a/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj b/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj deleted file mode 100644 index fcbc93f..0000000 --- a/Pulumi.FSharp.Test/Pulumi.FSharp.Test.fsproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - Exe - net8.0 - enable - NU1605;NU1608;FS0020 - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Pulumi.FSharp.Test/Pulumi.test.yaml b/Pulumi.FSharp.Test/Pulumi.test.yaml deleted file mode 120000 index 6b8000f..0000000 --- a/Pulumi.FSharp.Test/Pulumi.test.yaml +++ /dev/null @@ -1 +0,0 @@ -../Pulumi.FSharp.NuGet.Test/Pulumi.test.yaml \ No newline at end of file diff --git a/Pulumi.FSharp.Test/Pulumi.yaml b/Pulumi.FSharp.Test/Pulumi.yaml deleted file mode 120000 index 19f249d..0000000 --- a/Pulumi.FSharp.Test/Pulumi.yaml +++ /dev/null @@ -1 +0,0 @@ -../Pulumi.FSharp.NuGet.Test/Pulumi.yaml \ No newline at end of file diff --git a/Pulumi.FSharp.Test/paket.references b/Pulumi.FSharp.Test/paket.references deleted file mode 100644 index 640cf91..0000000 --- a/Pulumi.FSharp.Test/paket.references +++ /dev/null @@ -1 +0,0 @@ -FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/Myriad.fs b/Pulumi.FSharp.Tls/Myriad.fs deleted file mode 100644 index d62a06e..0000000 --- a/Pulumi.FSharp.Tls/Myriad.fs +++ /dev/null @@ -1,3 +0,0 @@ -module private Tls - -module Force = let private nonce = 2146481243 \ No newline at end of file diff --git a/build.cmd b/build.cmd new file mode 100644 index 0000000..b9f6df4 --- /dev/null +++ b/build.cmd @@ -0,0 +1 @@ +dotnet run --project ./build/build.fsproj -- -t %* diff --git a/build.fsx b/build.fsx deleted file mode 100644 index cf5477b..0000000 --- a/build.fsx +++ /dev/null @@ -1,286 +0,0 @@ -#r "paket: -nuget FSharp.Core 4.7.2 -nuget Fake.DotNet.Cli -nuget Fake.IO.FileSystem -nuget Fake.BuildServer.TeamFoundation -nuget Fake.Core.CommandLineParsing -nuget Newtonsoft.Json -nuget Fake.Core.Xml -nuget Fake.Core.Target //" -#load ".fake/build.fsx/intellisense.fsx" -#nowarn "52" -open Fake.IO.Globbing.Operators -open Fake.Core.TargetOperators -open Fake.DotNet.NuGet -open Fake.BuildServer -open Fake.Net.Http -open Fake.Core.Xml -open Fake.DotNet -open Fake.Core -open System.IO -open Fake.IO -open System - -(* - Usage: - - dotnet fake run build.fsx AzureAD # Install, ForceRegeneration, Pack for AzureAD - dotnet fake run build.fsx AzureAD -t ForceRegeneration # Install and ForceRegeneration only - dotnet fake run build.fsx All -t ForceRegeneration # Install and ForceRegeneration for all providers - dotnet fake run build.fsx All -t Build # Install, ForceRegeneration and Build for all providers -*) - -BuildServer.install [ TeamFoundation.Installer ] - -let args = - Context.forceFakeContext().Arguments |> - Array.ofList |> - Docopt(""" -usage: dotnet_fake_run_build.fsx [PROVIDER] [options] - -options: - -t - """).Parse - -let getTarget args = - match Map.tryFind "-t" args with - | Some (Argument t) -> t - | _ -> "Default" - -let getProvider args = - match Map.tryFind "PROVIDER" args |> - Option.bind (function | Argument p -> Some p | _ -> None) |> - Option.orElse (Environment.environVarOrNone "PROVIDER") |> - Option.orElse (Environment.environVarOrNone "BUILD_DEFINITIONNAME") with - | Some "All" -> "*" - | Some p -> p - | _ -> failwith "Missing provider" - -let getProviders = - function - | "*" -> DirectoryInfo.ofPath "." |> - DirectoryInfo.getSubDirectories |> - Array.filter (fun d -> d.Name.StartsWith("Pulumi.FSharp.") && - not <| d.Name.EndsWith(".Test") && - not <| d.Name.EndsWith(".Core") && - not <| d.Name.EndsWith(".Myriad")) |> - Array.map (fun d -> d.Name.Substring(14)) - | name -> [| name |] - -let getFullName provider = - sprintf "Pulumi.FSharp.%s" provider - -let getProjectFiles provider = - let projectPattern = - provider |> getFullName |> sprintf "**/%s.fsproj" - - !! projectPattern - -let traceNested func projFile = - Trace.useWith true - (fun _ -> func projFile) - (Trace.traceTarget projFile "" "") - // traceTask, traceTag - -let vaultFile = - "Pulumi.FSharp.Extensions.vault.json" - -let nuGetApiKey = - "nuGetApiKey" - -let confirm msg = - printf "%s [y/any]? " msg - Console.ReadKey().Key = ConsoleKey.Y - -Target.create "CreateVault" (fun _ -> - if not <| File.exists vaultFile || - confirm "Vault file exists, do you want to overwrite it" then - - printfn "\nEnter the NuGet API key: " - - let variable : Vault.Variable = { - Name = nuGetApiKey - Secret = false // On Azure DevOps SecureFile is already encrypted - Value = Console.ReadLine() - } - - let vaultFileContent = - //let keyInfo = Some "keyFilePath" |> Vault.createKey - {| - // Only if encrypted - //keyFile = keyInfo.KeyFile - //iv = keyInfo.Iv - values = [| variable |] - |} |> - Newtonsoft.Json.JsonConvert.SerializeObject - - File.WriteAllText(vaultFile, vaultFileContent) -) - -Target.create "Install" (fun _ -> - DotNet.Options.Create() |> - DotNet.install DotNet.Versions.FromGlobalJson |> - ignore -) - -Target.create "ForceRegeneration" (fun _ -> - let myriadFiles = - getProvider args |> - getProviders |> - Seq.map (fun provider -> provider, - (!! (provider |> - getFullName |> - sprintf "**/%s/Myriad.fs")) - |> Seq.exactlyOne) |> - Map.ofSeq - - let random = - DateTime.Now.Millisecond |> - Random - - let moduleDeclaration provider = - sprintf "module private %s" provider - - let forceRebuild = - match BuildServer.isLocalBuild with - | true -> random.Next() |> sprintf "module Force = let private nonce = %i" - | false -> "" - - myriadFiles |> - Map.iter (fun provider myriadFile -> - File.WriteAllText(myriadFile, - sprintf "%s\n\n%s" (moduleDeclaration provider) forceRebuild)) -) - -Target.create "Build" (fun _ -> - let buildOptions options : DotNet.BuildOptions = { - options with - Common = { - options.Common with - Verbosity = Some DotNet.Verbosity.Quiet - } - NoLogo = true - MSBuildParams = { - options.MSBuildParams with - Properties = ("NoRegenerate","true") :: options.MSBuildParams.Properties - } - } - - getProvider args |> - getProviders |> - Array.map (getProjectFiles >> Seq.exactlyOne) |> - Seq.iter (traceNested (DotNet.build buildOptions)) -) - -Target.create "PublishGeneratedCode" (fun _ -> - !! (getProvider args |> getFullName |> sprintf "**/%s/Generated.fs") |> - Seq.iter (Trace.publish ImportData.BuildArtifact) -) - -type NuGetVersions = - { - versions: string[] - } - -Target.create "Pack" (fun _ -> - getProvider args |> - getProviders |> - Seq.iter (fun provider -> - let nextExtensionsVersion = - getFullName provider |> - - // This does not work and returns wrong package - //NuGet.getLatestPackage (NuGet.getRepoUrl()) |> - //(fun x -> x.Version.Split('.')) |> - - // So we have to do this crap... - sprintf "https://www.nuget.org/packages/%s" |> - get "" "" |> - (fun x -> x.Split('\n')) |> - Array.find (fun x -> x.Contains("packageVersion")) |> - (fun x -> x.Split('"')) |> - Array.item 1 |> - (fun x -> x.Split('.')) |> - - Array.last |> - Int32.Parse |> - (+)1 - - let pulumiPackageName = - Map.empty |> - Map.add "AzureNativeV2" "azure-native" |> - Map.tryFind provider |> - Option.defaultValue provider - - let xPath = - sprintf "/Project/ItemGroup/PackageReference[@Include='Pulumi.%s']" pulumiPackageName - - let projectFile = - getProjectFiles provider |> - Seq.exactlyOne - - let pulumiNuGetVersion = - projectFile |> - loadDoc |> - selectXPathAttributeValue xPath - "Version" - [] - - let packOptions options : DotNet.PackOptions = { - options with - MSBuildParams = { - options.MSBuildParams with - DisableInternalBinLog = true - Properties = - ("PackageVersion", sprintf "%s.%i" pulumiNuGetVersion nextExtensionsVersion) :: - ("NoRegenerate","true") :: - options.MSBuildParams.Properties - } - } - - projectFile |> - traceNested (DotNet.pack packOptions) - ) -) - -Target.create "Push" (fun _ -> - let vaultFile = - Environment.environVarOrNone "FAKEVAULTFILE_SECUREFILEPATH" |> - Option.defaultValue vaultFile |> - FileInfo - - let vault = - match Vault.fromFakeEnvironmentOrNone(), vaultFile.Exists with - | Some vault, _ -> vault - | None , true -> vaultFile.OpenText().ReadToEnd() |> Vault.fromJson - | None , false -> failwith "Unsupported source for secrets" - - let pushOptions options : DotNet.NuGetPushOptions = { - options with - PushParams = { - options.PushParams with - ApiKey = Vault.tryGet nuGetApiKey vault - Source = Some "https://api.nuget.org/v3/index.json" - } - } - - !! (getProvider args |> getFullName |> sprintf "**/%s.*.nupkg") |> - Seq.iter (DotNet.nugetPush pushOptions) -) - -Target.create "Default" ignore - -"Install" =?> -("ForceRegeneration" , BuildServer.isLocalBuild) ==> -"Build" - -"Install" =?> -("ForceRegeneration" , BuildServer.isLocalBuild) ==> -"Pack" =?> -("PublishGeneratedCode", not BuildServer.isLocalBuild) =?> -("Push" , not BuildServer.isLocalBuild) ==> -"Default" - -args |> -getTarget |> -Target.runOrDefaultWithArguments diff --git a/build.fsx.lock b/build.fsx.lock deleted file mode 100644 index 59a7810..0000000 --- a/build.fsx.lock +++ /dev/null @@ -1,239 +0,0 @@ -STORAGE: NONE -RESTRICTION: == netstandard2.0 -NUGET - remote: https://api.nuget.org/v3/index.json - BlackFox.VsWhere (1.1) - FSharp.Core (>= 4.2.3) - Microsoft.Win32.Registry (>= 4.7) - Fake.BuildServer.TeamFoundation (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.Core.Vault (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.CommandLineParsing (5.20.4) - FParsec (>= 1.1.1) - FSharp.Core (>= 4.7.2) - Fake.Core.Context (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Environment (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.FakeVar (5.20.4) - Fake.Core.Context (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Process (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - System.Collections.Immutable (>= 1.7.1) - Fake.Core.SemVer (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.String (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Target (5.20.4) - Fake.Core.CommandLineParsing (>= 5.20.4) - Fake.Core.Context (>= 5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Control.Reactive (>= 4.4.2) - FSharp.Core (>= 4.7.2) - Fake.Core.Tasks (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Trace (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Vault (5.20.4) - FSharp.Core (>= 4.7.2) - Newtonsoft.Json (>= 12.0.3) - Fake.Core.Xml (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.DotNet.Cli (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.DotNet.MSBuild (>= 5.20.4) - Fake.DotNet.NuGet (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Mono.Posix.NETStandard (>= 1.0) - Newtonsoft.Json (>= 12.0.3) - Fake.DotNet.MSBuild (5.20.4) - BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - MSBuild.StructuredLogger (>= 2.1.176) - Fake.DotNet.NuGet (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Tasks (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.Core.Xml (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Net.Http (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Newtonsoft.Json (>= 12.0.3) - NuGet.Protocol (>= 5.6) - Fake.IO.FileSystem (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Net.Http (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FParsec (1.1.1) - FSharp.Core (>= 4.3.4) - FSharp.Control.Reactive (5.0.2) - FSharp.Core (>= 4.7.2) - System.Reactive (>= 5.0) - FSharp.Core (4.7.2) - Microsoft.Build (16.9) - Microsoft.Build.Framework (16.9) - System.Security.Permissions (>= 4.7) - Microsoft.Build.Tasks.Core (16.9) - Microsoft.Build.Framework (>= 16.9) - Microsoft.Build.Utilities.Core (>= 16.9) - Microsoft.Win32.Registry (>= 4.3) - System.CodeDom (>= 4.4) - System.Collections.Immutable (>= 5.0) - System.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.1) - System.Resources.Extensions (>= 4.6) - System.Runtime.InteropServices (>= 4.3) - System.Security.Cryptography.Pkcs (>= 4.7) - System.Security.Cryptography.Xml (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (16.9) - Microsoft.Build.Framework (>= 16.9) - Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 5.0) - System.Security.Permissions (>= 4.7) - System.Text.Encoding.CodePages (>= 4.0.1) - Microsoft.NETCore.Platforms (5.0.1) - Microsoft.NETCore.Targets (5.0) - Microsoft.Win32.Registry (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (>= 5.0) - Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.1.364) - Microsoft.Build (>= 16.4) - Microsoft.Build.Framework (>= 16.4) - Microsoft.Build.Tasks.Core (>= 16.4) - Microsoft.Build.Utilities.Core (>= 16.4) - Newtonsoft.Json (13.0.1) - NuGet.Common (5.9) - NuGet.Frameworks (>= 5.9) - NuGet.Configuration (5.9) - NuGet.Common (>= 5.9) - System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (5.9) - NuGet.Packaging (5.9) - Newtonsoft.Json (>= 9.0.1) - NuGet.Configuration (>= 5.9) - NuGet.Versioning (>= 5.9) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.Pkcs (>= 5.0) - NuGet.Protocol (5.9) - NuGet.Packaging (>= 5.9) - NuGet.Versioning (5.9) - System.Buffers (4.5.1) - System.CodeDom (5.0) - System.Collections.Immutable (5.0) - System.Memory (>= 4.5.4) - System.Formats.Asn1 (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.IO (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - System.Numerics.Vectors (>= 4.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - System.Numerics.Vectors (4.5) - System.Reactive (5.0) - System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.5.4) - System.Reflection (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Reflection.Metadata (5.0) - System.Collections.Immutable (>= 5.0) - System.Reflection.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Reflection.TypeExtensions (4.7) - System.Resources.Extensions (5.0) - System.Memory (>= 4.5.4) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (5.0) - System.Runtime.Handles (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Reflection (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices.WindowsRuntime (4.3) - System.Runtime (>= 4.3) - System.Security.AccessControl (5.0) - System.Security.Principal.Windows (>= 5.0) - System.Security.Cryptography.Cng (5.0) - System.Security.Cryptography.Pkcs (5.0.1) - System.Buffers (>= 4.5.1) - System.Formats.Asn1 (>= 5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.ProtectedData (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Xml (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Pkcs (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Security.Permissions (5.0) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (5.0) - System.Text.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (5.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - System.Threading.Tasks (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (5.0) - System.Threading.Tasks.Extensions (4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..0783d63 --- /dev/null +++ b/build.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +FAKE_DETAILED_ERRORS=true dotnet run --project ./build/build.fsproj -- -t "$@" diff --git a/build/Changelog.fs b/build/Changelog.fs new file mode 100644 index 0000000..2efcb0a --- /dev/null +++ b/build/Changelog.fs @@ -0,0 +1,299 @@ +module Changelog + +open System +open Fake.Core +open Fake.IO + +let isEmptyChange = + function + | Changelog.Change.Added s + | Changelog.Change.Changed s + | Changelog.Change.Deprecated s + | Changelog.Change.Fixed s + | Changelog.Change.Removed s + | Changelog.Change.Security s + | Changelog.Change.Custom(_, s) -> String.IsNullOrWhiteSpace s.CleanedText + +let tagFromVersionNumber versionNumber = sprintf "v%s" versionNumber + +let failOnEmptyChangelog (latestEntry: Changelog.ChangelogEntry) = + let isEmpty = + (latestEntry.Changes + |> Seq.forall isEmptyChange) + || latestEntry.Changes + |> Seq.isEmpty + + if isEmpty then + failwith + "No changes in CHANGELOG. Please add your changes under a heading specified in https://keepachangelog.com/" + +let mkLinkReference + (newVersion: SemVerInfo) + (changelog: Changelog.Changelog) + (gitHubRepoUrl: string) + = + if + changelog.Entries + |> List.isEmpty + then + // No actual changelog entries yet: link reference will just point to the Git tag + sprintf + "[%s]: %s/releases/tag/%s" + newVersion.AsString + (gitHubRepoUrl.TrimEnd('/')) + (tagFromVersionNumber newVersion.AsString) + else + let versionTuple version = + (version.Major, version.Minor, version.Patch) + // Changelog entries come already sorted, most-recent first, by the Changelog module + let prevEntry = + changelog.Entries + |> List.skipWhile (fun entry -> + entry.SemVer.PreRelease.IsSome + || versionTuple entry.SemVer = versionTuple newVersion + ) + |> List.tryHead + + let linkTarget = + match prevEntry with + | Some entry -> + sprintf + "%s/compare/%s...%s" + gitHubRepoUrl + (tagFromVersionNumber entry.SemVer.AsString) + (tagFromVersionNumber newVersion.AsString) + | None -> + sprintf + "%s/releases/tag/%s" + gitHubRepoUrl + (tagFromVersionNumber newVersion.AsString) + + sprintf "[%s]: %s" newVersion.AsString linkTarget + +let mkReleaseNotes changelog (latestEntry: Changelog.ChangelogEntry) gitHubRepoUrl = + let linkReference = mkLinkReference latestEntry.SemVer changelog gitHubRepoUrl + + if String.isNullOrEmpty linkReference then + latestEntry.ToString() + else + // Add link reference target to description before building release notes, since in main changelog file it's at the bottom of the file + let description = + match latestEntry.Description with + | None -> linkReference + | Some desc when desc.Contains(linkReference) -> desc + | Some desc -> sprintf "%s\n\n%s" (desc.Trim()) linkReference + + { + latestEntry with + Description = Some description + } + .ToString() + +let getVersionNumber envVarName ctx = + let args = ctx.Context.Arguments + + let verArg = + args + |> List.tryHead + |> Option.defaultWith (fun () -> Environment.environVarOrDefault envVarName "") + + if SemVer.isValid verArg then + verArg + elif + verArg.StartsWith("v") + && SemVer.isValid verArg.[1..] + then + let target = ctx.Context.FinalTarget + + Trace.traceImportantfn + "Please specify a version number without leading 'v' next time, e.g. \"./build.sh %s %s\" rather than \"./build.sh %s %s\"" + target + verArg.[1..] + target + verArg + + verArg.[1..] + elif String.isNullOrEmpty verArg then + let target = ctx.Context.FinalTarget + + Trace.traceErrorfn + "Please specify a version number, either at the command line (\"./build.sh %s 1.0.0\") or in the %s environment variable" + target + envVarName + + failwith "No version number found" + else + Trace.traceErrorfn + "Please specify a valid version number: %A could not be recognized as a version number" + verArg + + failwith "Invalid version number" + +let mutable changelogBackupFilename = "" + +let updateChangelog changelogPath (changelog: Fake.Core.Changelog.Changelog) gitHubRepoUrl ctx = + + let verStr = + ctx + |> getVersionNumber "RELEASE_VERSION" + + let description, unreleasedChanges = + match changelog.Unreleased with + | None -> None, [] + | Some u -> u.Description, u.Changes + + let newVersion = SemVer.parse verStr + + changelog.Entries + |> List.tryFind (fun entry -> entry.SemVer = newVersion) + |> Option.iter (fun entry -> + Trace.traceErrorfn + "Version %s already exists in %s, released on %s" + verStr + changelogPath + (if entry.Date.IsSome then + entry.Date.Value.ToString("yyyy-MM-dd") + else + "(no date specified)") + + failwith "Can't release with a duplicate version number" + ) + + changelog.Entries + |> List.tryFind (fun entry -> entry.SemVer > newVersion) + |> Option.iter (fun entry -> + Trace.traceErrorfn + "You're trying to release version %s, but a later version %s already exists, released on %s" + verStr + entry.SemVer.AsString + (if entry.Date.IsSome then + entry.Date.Value.ToString("yyyy-MM-dd") + else + "(no date specified)") + + failwith "Can't release with a version number older than an existing release" + ) + + let versionTuple version = + (version.Major, version.Minor, version.Patch) + + let prereleaseEntries = + changelog.Entries + |> List.filter (fun entry -> + entry.SemVer.PreRelease.IsSome + && versionTuple entry.SemVer = versionTuple newVersion + ) + + let prereleaseChanges = + prereleaseEntries + |> List.collect (fun entry -> + entry.Changes + |> List.filter ( + not + << isEmptyChange + ) + ) + |> List.distinct + + let assemblyVersion, nugetVersion = Changelog.parseVersions newVersion.AsString + + let newEntry = + Changelog.ChangelogEntry.New( + assemblyVersion.Value, + nugetVersion.Value, + Some System.DateTime.Today, + description, + unreleasedChanges + @ prereleaseChanges, + false + ) + + let newChangelog = + Changelog.Changelog.New( + changelog.Header, + changelog.Description, + None, + newEntry + :: changelog.Entries + ) + + // Save changelog to temporary file before making any edits + changelogBackupFilename <- System.IO.Path.GetTempFileName() + + changelogPath + |> Shell.copyFile changelogBackupFilename + + Target.activateFinal "DeleteChangelogBackupFile" + + newChangelog + |> Changelog.save changelogPath + + // Now update the link references at the end of the file + let linkReferenceForLatestEntry = mkLinkReference newVersion changelog gitHubRepoUrl + + let linkReferenceForUnreleased = + sprintf + "[Unreleased]: %s/compare/%s...%s" + gitHubRepoUrl + (tagFromVersionNumber newVersion.AsString) + "HEAD" + + let tailLines = + File.read changelogPath + |> List.ofSeq + |> List.rev + + let isRef (line: string) = + System.Text.RegularExpressions.Regex.IsMatch(line, @"^\[.+?\]:\s?[a-z]+://.*$") + + let linkReferenceTargets = + tailLines + |> List.skipWhile String.isNullOrWhiteSpace + |> List.takeWhile isRef + |> List.rev // Now most recent entry is at the head of the list + + let newLinkReferenceTargets = + match linkReferenceTargets with + | [] -> [ + linkReferenceForUnreleased + linkReferenceForLatestEntry + ] + | first :: rest when + first + |> String.startsWith "[Unreleased]:" + -> + linkReferenceForUnreleased + :: linkReferenceForLatestEntry + :: rest + | first :: rest -> + linkReferenceForUnreleased + :: linkReferenceForLatestEntry + :: first + :: rest + + let blankLineCount = + tailLines + |> Seq.takeWhile String.isNullOrWhiteSpace + |> Seq.length + + let linkRefCount = + linkReferenceTargets + |> List.length + + let skipCount = + blankLineCount + + linkRefCount + + let updatedLines = + List.rev ( + tailLines + |> List.skip skipCount + ) + @ newLinkReferenceTargets + + File.write false changelogPath updatedLines + + // If build fails after this point but before we commit changes, undo our modifications + Target.activateBuildFailure "RevertChangelog" + + newEntry diff --git a/build/FsDocs.fs b/build/FsDocs.fs new file mode 100644 index 0000000..d69b452 --- /dev/null +++ b/build/FsDocs.fs @@ -0,0 +1,242 @@ +namespace Fake.DotNet + +open Fake.Core +open Fake.IO +open Fake.IO.FileSystemOperators + +/// +/// Contains tasks to interact with fsdocs tool to +/// process F# script files, markdown and for generating API documentation. +/// +[] +module Fsdocs = + + /// + /// Fsdocs build command parameters and options + /// + type BuildCommandParams = { + /// Input directory of content (default: docs) + Input: string option + + /// Project files to build API docs for outputs, defaults to all packable projects + Projects: seq option + + /// Output Directory (default output for build and tmp/watch for watch) + Output: string option + + /// Disable generation of API docs + NoApiDocs: bool option + + /// Evaluate F# fragments in scripts + Eval: bool option + + /// Save images referenced in docs + SaveImages: bool option + + /// Add line numbers + LineNumbers: bool option + + /// Additional substitution parameters for templates + Parameters: seq option + + /// Disable project cracking. + IgnoreProjects: bool option + + /// In API doc generation qualify the output by the collection name, e.g. 'reference/FSharp.Core/...' instead of 'reference/...' . + Qualify: bool option + + /// The tool will also generate documentation for non-public members + NoPublic: bool option + + /// Do not copy default content styles, javascript or use default templates + NoDefaultContent: bool option + + /// Clean the output directory + Clean: bool option + + /// Display version information + Version: bool option + + /// Provide properties to dotnet msbuild, e.g. --properties Configuration=Release Version=3.4 + Properties: string option + + /// Additional arguments passed down as otherflags to the F# compiler when the API is being generated. + /// Note that these arguments are trimmed, this is to overcome a limitation in the command line argument + /// processing. A typical use-case would be to pass an addition assembly reference. + /// Example --fscoptions " -r:MyAssembly.dll" + FscOptions: string option + + /// Fail if docs are missing or can't be generated + Strict: bool option + + /// Source folder at time of component build (<FsDocsSourceFolder>) + SourceFolder: string option + + /// Source repository for github links (<FsDocsSourceRepository>) + SourceRepository: string option + + /// Assume comments in F# code are markdown (<UsesMarkdownComments>) + MdComments: bool option + } with + + /// Parameter default values. + static member Default = { + Input = None + Projects = None + Output = None + NoApiDocs = None + Eval = None + SaveImages = None + LineNumbers = None + Parameters = None + IgnoreProjects = None + Qualify = None + NoPublic = None + NoDefaultContent = None + Clean = None + Version = None + Properties = None + FscOptions = None + Strict = None + SourceFolder = None + SourceRepository = None + MdComments = None + } + + /// + /// Fsdocs watch command parameters and options + /// + type WatchCommandParams = { + /// Do not serve content when watching. + NoServer: bool option + + /// Do not launch a browser window. + NoLaunch: bool option + + /// URL extension to launch http://localhost:/%s. + Open: string option + + /// Port to serve content for http://localhost serving. + Port: int option + + /// Build Commands + BuildCommandParams: BuildCommandParams option + } with + + /// Parameter default values. + static member Default = { + NoServer = None + NoLaunch = None + Open = None + Port = None + BuildCommandParams = None + } + + let internal buildBuildCommandParams (buildParams: BuildCommandParams) = + let buildSubstitutionParameters (subParameters: seq) = + let subParameters = + subParameters + |> Seq.map (fun (key, value) -> (sprintf "%s %s" key value)) + |> String.concat " " + + sprintf "--parameters %s" subParameters + + System.Text.StringBuilder() + |> StringBuilder.appendIfSome buildParams.Input (sprintf "--input %s") + |> StringBuilder.appendIfSome + buildParams.Projects + (fun projects -> + sprintf + "--projects %s" + (projects + |> String.concat " ") + ) + |> StringBuilder.appendIfSome buildParams.Output (sprintf "--output %s") + |> StringBuilder.appendIfSome buildParams.NoApiDocs (fun _ -> "--noapidocs") + |> StringBuilder.appendIfSome buildParams.Eval (fun _ -> "--eval") + |> StringBuilder.appendIfSome buildParams.SaveImages (fun _ -> "--saveimages") + |> StringBuilder.appendIfSome buildParams.LineNumbers (fun _ -> "--linenumbers") + |> StringBuilder.appendIfSome + buildParams.Parameters + (fun parameters -> buildSubstitutionParameters parameters) + |> StringBuilder.appendIfSome buildParams.IgnoreProjects (fun _ -> "--ignoreprojects") + |> StringBuilder.appendIfSome buildParams.Qualify (fun _ -> "--qualify") + |> StringBuilder.appendIfSome buildParams.NoPublic (fun _ -> "--nonpublic") + |> StringBuilder.appendIfSome buildParams.NoDefaultContent (fun _ -> "--nodefaultcontent") + |> StringBuilder.appendIfSome buildParams.Clean (fun _ -> "--clean") + |> StringBuilder.appendIfSome buildParams.Version (fun _ -> "--version") + |> StringBuilder.appendIfSome buildParams.Properties (sprintf "--properties %s") + |> StringBuilder.appendIfSome buildParams.FscOptions (sprintf "--fscoptions %s") + |> StringBuilder.appendIfSome buildParams.Strict (fun _ -> "--strict") + |> StringBuilder.appendIfSome buildParams.SourceFolder (sprintf "--sourcefolder %s") + |> StringBuilder.appendIfSome buildParams.SourceRepository (sprintf "--sourcerepo %s") + |> StringBuilder.appendIfSome buildParams.MdComments (fun _ -> "--mdcomments") + |> StringBuilder.toText + |> String.trim + + let internal buildWatchCommandParams (watchParams: WatchCommandParams) = + System.Text.StringBuilder() + |> StringBuilder.appendIfSome watchParams.NoServer (fun _ -> "--noserver") + |> StringBuilder.appendIfSome watchParams.NoLaunch (fun _ -> "--nolaunch") + |> StringBuilder.appendIfSome watchParams.Open (sprintf "--open %s") + |> StringBuilder.appendIfSome watchParams.Port (sprintf "--port %i") + |> StringBuilder.appendIfSome watchParams.BuildCommandParams buildBuildCommandParams + |> StringBuilder.toText + |> String.trim + + + let cleanCache (workingDirectory) = + Shell.cleanDirs [ + workingDirectory + ".fsdocs" + ] + + /// + /// Build documentation using fsdocs build command + /// + /// + /// Function used to overwrite the dotnetOptions. + /// Function used to overwrite the build command default parameters. + /// + /// + /// + /// Fsdocs.build (fun p -> { p with Clean = Some(true); Strict = Some(true) }) + /// + /// + let build dotnetOptions setBuildParams = + let buildParams = setBuildParams BuildCommandParams.Default + let formattedParameters = buildBuildCommandParams buildParams + + // let dotnetOptions = (fun (buildOptions: DotNet.Options) -> buildOptions) + let result = DotNet.exec dotnetOptions "fsdocs build" formattedParameters + + if + 0 + <> result.ExitCode + then + failwithf "fsdocs build failed with exit code '%d'" result.ExitCode + + /// + /// Watch documentation using fsdocs watch command + /// + /// + /// Function used to overwrite the dotnetOptions. + /// Function used to overwrite the watch command default parameters. + /// + /// + /// + /// Fsdocs.watch (fun p -> { p with Port = Some(3005) }) + /// + /// + let watch dotnetOptions setWatchParams = + let watchParams = setWatchParams WatchCommandParams.Default + let formattedParameters = buildWatchCommandParams watchParams + + // let dotnetOptions = (fun (buildOptions: DotNet.Options) -> buildOptions) + let result = DotNet.exec dotnetOptions "fsdocs watch" formattedParameters + + if + 0 + <> result.ExitCode + then + failwithf "fsdocs watch failed with exit code '%d'" result.ExitCode diff --git a/build/build.fs b/build/build.fs new file mode 100644 index 0000000..16ed61e --- /dev/null +++ b/build/build.fs @@ -0,0 +1,999 @@ +#nowarn "57" + +open System +open System.IO +open Fake.Core +open Fake.DotNet +open Fake.Tools +open Fake.IO +open Fake.IO.FileSystemOperators +open Fake.IO.Globbing.Operators +open Fake.Core.TargetOperators +open Fake.Api +open Fake.BuildServer +open Argu + +let environVarAsBoolOrDefault varName defaultValue = + let truthyConsts = [ + "1" + "Y" + "YES" + "T" + "TRUE" + ] + + try + let envvar = (Environment.environVar varName).ToUpper() + + truthyConsts + |> List.exists ((=) envvar) + with _ -> + defaultValue + +//----------------------------------------------------------------------------- +// Metadata and Configuration +//----------------------------------------------------------------------------- + +let rootDirectory = + __SOURCE_DIRECTORY__ + ".." + +let productName = "Pulumi.FSharp.Extensions" + +let sln = + rootDirectory + $"{productName}.sln" + +let srcCodeGlob = + !!(rootDirectory + "src/**/*.fs") + ++ (rootDirectory + "src/**/*.fsx") + -- (rootDirectory + "src/**/obj/**/*.fs") + +let testsCodeGlob = + !!(rootDirectory + "tests/**/*.fs") + ++ (rootDirectory + "tests/**/*.fsx") + -- (rootDirectory + "tests/**/obj/**/*.fs") + +let srcDir = + rootDirectory + "src" + +let providersDir = + rootDirectory + "providers" + +let srcGlob = + srcDir + "**/*.??proj" + +let providersGlob = + providersDir + "**/*.??proj" + +let testsGlob = + rootDirectory + "tests/**/*.??proj" + +let srcAndTest = + !!srcGlob + ++ testsGlob + +let distDir = + rootDirectory + "dist" + +let distGlob = + distDir + "*.nupkg" + +let coverageThresholdPercent = 80 + +let coverageReportDir = + rootDirectory + "docs" + "coverage" + + +let docsDir = + rootDirectory + "docs" + +let docsSrcDir = + rootDirectory + "docsSrc" + +let temp = + rootDirectory + "temp" + +let watchDocsDir = + temp + "watch-docs" + + +let gitOwner = "cagyirey" +let gitRepoName = "Pulumi.FSharp.Extensions" + +let gitHubRepoUrl = sprintf "https://github.com/%s/%s/" gitOwner gitRepoName + +let documentationRootUrl = sprintf "https://%s.github.io/%s/" gitOwner gitRepoName + +let releaseBranch = "main" +let readme = "README.md" +let changelogFile = "CHANGELOG.md" + +let READMElink = Uri(Uri(gitHubRepoUrl), $"blob/{releaseBranch}/{readme}") +let CHANGELOGlink = Uri(Uri(gitHubRepoUrl), $"blob/{releaseBranch}/{changelogFile}") + +let changelogPath = + rootDirectory + changelogFile + +let changelog = Fake.Core.Changelog.load changelogPath + +let mutable latestEntry = + if Seq.isEmpty changelog.Entries then + Changelog.ChangelogEntry.New("0.0.1", "0.0.1-alpha.1", Some DateTime.Today, None, [], false) + else + changelog.LatestEntry + +let mutable changelogBackupFilename = "" + +let publishUrl = $"https://nuget.pkg.github.com/{gitOwner}/index.json" + +let enableCodeCoverage = environVarAsBoolOrDefault "ENABLE_COVERAGE" false + +let githubToken = Environment.environVarOrNone "GITHUB_TOKEN" + +let nugetToken = Environment.environVarOrNone "GITHUB_TOKEN" // "NUGET_TOKEN" + +let githubSHA = Environment.environVarOrNone "GITHUB_SHA" + +let shortGitShubHA = + githubSHA + |> Option.map (fun sha -> sha.[..7]) + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + + +let isRelease (targets: Target list) = + targets + |> Seq.map (fun t -> t.Name) + |> Seq.exists ((=) "PublishToNuGet") + +let invokeAsync f = async { f () } + +let configuration (targets: Target list) = + let defaultVal = if isRelease targets then "Release" else "Debug" + + match Environment.environVarOrDefault "CONFIGURATION" defaultVal with + | "Debug" -> DotNet.BuildConfiguration.Debug + | "Release" -> DotNet.BuildConfiguration.Release + | config -> DotNet.BuildConfiguration.Custom config + +let failOnBadExitAndPrint (p: ProcessResult) = + if + p.ExitCode + <> 0 + then + p.Errors + |> Seq.iter Trace.traceError + + failwithf "failed with exitcode %d" p.ExitCode + + +let isCI = lazy environVarAsBoolOrDefault "CI" false + +// CI Servers can have bizarre failures that have nothing to do with your code +let rec retryIfInCI times fn = + match isCI.Value with + | true -> + if times > 1 then + try + fn () + with _ -> + retryIfInCI (times - 1) fn + else + fn () + | _ -> fn () + +let failOnWrongBranch () = + if + Git.Information.getBranchName "" + <> releaseBranch + then + failwithf "Not on %s. If you want to release please switch to this branch." releaseBranch + + +module PulumiExtensions = + + let getProviderName projectFile = + (FileInfo projectFile).Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] + + let getProviderVersion projectFile = + let projectFile = FileInfo projectFile + + let provider = + let providerName = projectFile.Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] + let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] + + providerNameOverride + |> Map.tryFind providerName + |> Option.defaultValue providerName + + let paketDeps = Paket.Dependencies.Locate projectFile.DirectoryName + + let version = + paketDeps.GetInstalledVersion $"Pulumi.{provider}" + |> Option.get + |> SemVer.parse + + version.Normalize() + + +module dotnet = + let watch cmdParam program args = + DotNet.exec cmdParam (sprintf "watch %s" program) args + + let run cmdParam args = DotNet.exec cmdParam "run" args + + let tool optionConfig command args = + DotNet.exec optionConfig (sprintf "%s" command) args + |> failOnBadExitAndPrint + + let reportgenerator optionConfig args = + tool optionConfig "reportgenerator" args + + let sourcelink optionConfig args = tool optionConfig "sourcelink" args + + let fcswatch optionConfig args = tool optionConfig "fcswatch" args + + let fsharpAnalyzer optionConfig args = + tool optionConfig "fsharp-analyzers" args + + let fantomas args = DotNet.exec id "fantomas" args + +module FSharpAnalyzers = + type Arguments = + | Project of string + | Analyzers_Path of string + | Fail_On_Warnings of string list + | Ignore_Files of string list + | Verbose + + interface IArgParserTemplate with + member s.Usage = "" + + +module DocsTool = + let quoted s = $"\"%s{s}\"" + + let fsDocsDotnetOptions (o: DotNet.Options) = { + o with + WorkingDirectory = rootDirectory + } + + let fsDocsBuildParams configuration (p: Fsdocs.BuildCommandParams) = { + p with + Clean = Some true + Input = Some(quoted docsSrcDir) + Output = Some(quoted docsDir) + Eval = Some true + Projects = Some(Seq.map quoted (!!srcGlob)) + Properties = Some($"Configuration=%s{configuration}") + Parameters = + Some [ + // https://fsprojects.github.io/FSharp.Formatting/content.html#Templates-and-Substitutions + "root", quoted documentationRootUrl + "fsdocs-collection-name", quoted productName + "fsdocs-repository-branch", quoted releaseBranch + "fsdocs-package-version", quoted latestEntry.NuGetVersion + "fsdocs-readme-link", quoted (READMElink.ToString()) + "fsdocs-release-notes-link", quoted (CHANGELOGlink.ToString()) + ] + Strict = Some true + } + + + let cleanDocsCache () = Fsdocs.cleanCache rootDirectory + + let build (configuration) = + Fsdocs.build fsDocsDotnetOptions (fsDocsBuildParams configuration) + + + let watch (configuration) = + let buildParams bp = + let bp = + Option.defaultValue Fsdocs.BuildCommandParams.Default bp + |> fsDocsBuildParams configuration + + { + bp with + Output = Some watchDocsDir + Strict = None + } + + Fsdocs.watch + fsDocsDotnetOptions + (fun p -> { + p with + BuildCommandParams = Some(buildParams p.BuildCommandParams) + }) + +let allReleaseChecks () = + failOnWrongBranch () + Changelog.failOnEmptyChangelog latestEntry + + +let failOnLocalBuild () = + if not isCI.Value then + failwith "Not on CI. If you want to publish, please use CI." + +let failOnCIBuild () = + if isCI.Value then + failwith "On CI. If you want to run this target, please use a local build." + +let allPublishChecks () = + failOnLocalBuild () + Changelog.failOnEmptyChangelog latestEntry + +//----------------------------------------------------------------------------- +// Target Implementations +//----------------------------------------------------------------------------- + +/// So we don't require always being on the latest MSBuild.StructuredLogger +let disableBinLog (p: MSBuild.CliArguments) = { p with DisableInternalBinLog = true } + +let clean _ = + [ + "bin" + "temp" + distDir + coverageReportDir + ] + |> Shell.cleanDirs + + !!srcGlob + ++ testsGlob + |> Seq.collect (fun p -> + [ + "bin" + "obj" + ] + |> Seq.map (fun sp -> + IO.Path.GetDirectoryName p + sp + ) + ) + |> Shell.cleanDirs + + [ "paket-files/paket.restore.cached" ] + |> Seq.iter Shell.rm + +let dotnetRestore _ = + [ sln ] + |> Seq.map (fun dir -> + fun () -> + let args = + [] + |> String.concat " " + + DotNet.restore + (fun c -> { + c with + MSBuildParams = disableBinLog c.MSBuildParams + Common = + c.Common + |> DotNet.Options.withCustomParams (Some(args)) + }) + dir + ) + |> Seq.iter (retryIfInCI 10) + +let updateChangelog ctx = + latestEntry <- Changelog.updateChangelog changelogPath changelog gitHubRepoUrl ctx + +let revertChangelog _ = + if String.isNotNullOrEmpty Changelog.changelogBackupFilename then + Changelog.changelogBackupFilename + |> Shell.copyFile changelogPath + +let deleteChangelogBackupFile _ = + if String.isNotNullOrEmpty Changelog.changelogBackupFilename then + Shell.rm Changelog.changelogBackupFilename + +let buildProvider projectFile = + fun (ctx: TargetParameter) -> + let args = [ + $"/p:VersionPrefix={PulumiExtensions.getProviderVersion projectFile}" + //"/p:NoRegenerate=true" + "--no-restore" + ] + + DotNet.build + (fun c -> { + c with + MSBuildParams = disableBinLog c.MSBuildParams + Configuration = configuration (ctx.Context.AllExecutingTargets) + Common = + c.Common + |> DotNet.Options.withAdditionalArgs args + + }) + projectFile + + +let dotnetBuild ctx = + let args = [ + sprintf "/p:VersionPrefix=%s" latestEntry.NuGetVersion + //"/p:NoRegenerate=true" + "--no-restore" + ] + + !!srcGlob + |> Seq.iter (fun provider -> + DotNet.build + (fun c -> { + c with + MSBuildParams = disableBinLog c.MSBuildParams + Configuration = configuration (ctx.Context.AllExecutingTargets) + Common = + c.Common + |> DotNet.Options.withAdditionalArgs args + + }) + provider + ) + +let fsharpAnalyzers _ = + let argParser = + ArgumentParser.Create(programName = "fsharp-analyzers") + + !!srcGlob + |> Seq.iter (fun proj -> + let args = + [ + FSharpAnalyzers.Analyzers_Path( + rootDirectory + "packages/analyzers" + ) + FSharpAnalyzers.Arguments.Project proj + FSharpAnalyzers.Arguments.Fail_On_Warnings [ "BDH0002" ] + FSharpAnalyzers.Arguments.Ignore_Files [ "*AssemblyInfo.fs" ] + FSharpAnalyzers.Verbose + ] + |> argParser.PrintCommandLineArgumentsFlat + + dotnet.fsharpAnalyzer id args + ) + +let dotnetTest ctx = + let excludeCoverage = + !!testsGlob + |> Seq.map IO.Path.GetFileNameWithoutExtension + |> String.concat "|" + + let isGenerateCoverageReport = + ctx.Context.TryFindTarget("GenerateCoverageReport").IsSome + + let args = [ + "--no-build" + if + enableCodeCoverage + || isGenerateCoverageReport + then + sprintf "/p:AltCover=true" + + if not isGenerateCoverageReport then + sprintf "/p:AltCoverThreshold=%d" coverageThresholdPercent + + sprintf "/p:AltCoverAssemblyExcludeFilter=%s" excludeCoverage + "/p:AltCoverLocalSource=true" + ] + + DotNet.test + (fun c -> { + c with + MSBuildParams = disableBinLog c.MSBuildParams + Configuration = configuration (ctx.Context.AllExecutingTargets) + Common = + c.Common + |> DotNet.Options.withAdditionalArgs args + }) + sln + +let generateCoverageReport _ = + let coverageReports = + !! "tests/**/coverage*.xml" + |> String.concat ";" + + let sourceDirs = + !!srcGlob + |> Seq.map Path.getDirectory + |> String.concat ";" + + let independentArgs = [ + sprintf "-reports:\"%s\"" coverageReports + sprintf "-targetdir:\"%s\"" coverageReportDir + // Add source dir + sprintf "-sourcedirs:\"%s\"" sourceDirs + // Ignore Tests and if AltCover.Recorder.g sneaks in + sprintf "-assemblyfilters:\"%s\"" "-*.Tests;-AltCover.Recorder.g" + sprintf "-Reporttypes:%s" "Html" + ] + + let args = + independentArgs + |> String.concat " " + + dotnet.reportgenerator id args + +let showCoverageReport _ = + failOnCIBuild () + + coverageReportDir + "index.html" + |> Command.ShellCommand + |> CreateProcess.fromCommand + |> Proc.start + |> ignore + + +let watchTests _ = + !!testsGlob + |> Seq.map (fun proj -> + fun () -> + dotnet.watch + (fun opt -> + opt + |> DotNet.Options.withWorkingDirectory (IO.Path.GetDirectoryName proj) + ) + "test" + "" + |> ignore + ) + |> Seq.iter ( + invokeAsync + >> Async.Catch + >> Async.Ignore + >> Async.Start + ) + + printfn "Press Ctrl+C (or Ctrl+Break) to stop..." + + let cancelEvent = + Console.CancelKeyPress + |> Async.AwaitEvent + |> Async.RunSynchronously + + cancelEvent.Cancel <- true + +let generateAssemblyInfo _ = + + let (|Fsproj|Csproj|Vbproj|) (projFileName: string) = + match projFileName with + | f when f.EndsWith("fsproj") -> Fsproj + | f when f.EndsWith("csproj") -> Csproj + | f when f.EndsWith("vbproj") -> Vbproj + | _ -> + failwith (sprintf "Project file %s not supported. Unknown project type." projFileName) + + let releaseChannel = + match latestEntry.SemVer.PreRelease with + | Some pr -> pr.Name + | _ -> "release" + + let getAssemblyInfoAttributes projectName = [ + AssemblyInfo.Title(projectName) + AssemblyInfo.Product productName + AssemblyInfo.Version latestEntry.AssemblyVersion + AssemblyInfo.Metadata("ReleaseDate", latestEntry.Date.Value.ToString("o")) + AssemblyInfo.FileVersion latestEntry.AssemblyVersion + AssemblyInfo.InformationalVersion latestEntry.AssemblyVersion + AssemblyInfo.Metadata("ReleaseChannel", releaseChannel) + AssemblyInfo.Metadata("GitHash", Git.Information.getCurrentSHA1 (null)) + ] + + let getProjectDetails (projectPath: string) = + let projectName = IO.Path.GetFileNameWithoutExtension(projectPath) + + (projectPath, + projectName, + IO.Path.GetDirectoryName(projectPath), + (getAssemblyInfoAttributes projectName)) + + !!srcGlob + ++ providersGlob + |> Seq.map getProjectDetails + |> Seq.iter (fun (projFileName, _, folderName, attributes) -> + match projFileName with + | Fsproj -> + AssemblyInfoFile.createFSharp + (folderName + "AssemblyInfo.fs") + attributes + | Csproj -> + AssemblyInfoFile.createCSharp + ((folderName + "Properties") + "AssemblyInfo.cs") + attributes + | Vbproj -> + AssemblyInfoFile.createVisualBasic + ((folderName + "My Project") + "AssemblyInfo.vb") + attributes + ) +let packProvider projectFile = + fun (ctx: TargetParameter) -> + let args = [ $"/p:VersionPrefix={PulumiExtensions.getProviderVersion projectFile}" ] + + DotNet.pack + (fun (c: DotNet.PackOptions) -> { + c.WithCommon(DotNet.Options.withAdditionalArgs args) with + NoBuild = true + MSBuildParams = disableBinLog c.MSBuildParams + Configuration = configuration (ctx.Context.AllExecutingTargets) + OutputPath = Some distDir + VersionSuffix = + // only use a version suffix on non-primary branches + Option.filter + (fun _ -> + Git.Information.getBranchName "" + <> releaseBranch + ) + shortGitShubHA + + }) + projectFile + +let dotnetPack ctx = + // Get release notes with properly-linked version number + let releaseNotes = Changelog.mkReleaseNotes changelog latestEntry gitHubRepoUrl + + let args = [ + $"/p:VersionPrefix={latestEntry.NuGetVersion}" + $"/p:PackageReleaseNotes=\"{releaseNotes}\"" + ] + + !!srcGlob + |> Seq.iter (fun project -> + DotNet.pack + (fun c -> { + c with + MSBuildParams = disableBinLog c.MSBuildParams + Configuration = configuration (ctx.Context.AllExecutingTargets) + OutputPath = Some distDir + NoBuild = true + VersionSuffix = + Option.filter + (fun _ -> + Git.Information.getBranchName "" + <> releaseBranch + ) + shortGitShubHA + Common = + c.Common + |> DotNet.Options.withAdditionalArgs args + }) + project + ) + +let sourceLinkTest _ = + !!distGlob + |> Seq.iter (fun nupkg -> dotnet.sourcelink id (sprintf "test %s" nupkg)) + +let publishProvider packageName = + fun (_: TargetParameter) -> + let packageFile = + !! (distDir $"{packageName}.*.nupkg") + |> Seq.exactlyOne + + Paket.push(fun pushParams -> + { pushParams with + ApiKey = + match nugetToken with + | Some s -> s + | _ -> pushParams.ApiKey // assume paket-config was set properly + + }) + +let publishToNuget _ = + allPublishChecks () + + !!distGlob + |> Seq.iter ( + DotNet.nugetPush (fun c -> { + c with + PushParams = { + c.PushParams with + ApiKey = + match nugetToken with + | Some s -> nugetToken + | _ -> c.PushParams.ApiKey // assume paket-config was set properly + Source = Some publishUrl + } + }) + ) + +let paketUpdate _ = + failOnWrongBranch () + failOnLocalBuild () + + let dependencies = (Paket.Dependencies.Locate ()).DependenciesFile + if Paket.UpdateProcess.Update(dependencies, Paket.UpdaterOptions.Default) then + let newBranch = $"paket-update-{Git.Information.getCurrentHash ()}" + let prTitle = $"Paket Update for {DateTime.Now}" + + Git.Branches.checkoutNewBranch + rootDirectory + (Git.Information.getBranchName rootDirectory) + newBranch + + Git.Commit.exec rootDirectory prTitle + + Git.Branches.pushBranch rootDirectory gitHubRepoUrl newBranch + + let pr = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch,Body = prTitle) + GitHub.createClientWithToken (Option.get githubToken) + |> GitHub.createPullRequest gitRepoName gitOwner pr + |> Async.RunSynchronously + |> Async.RunSynchronously + |> ignore + else + failwith "Paket update failed. Unable to create PR." + +let gitRelease _ = + allReleaseChecks () + + let releaseNotesGitCommitFormat = latestEntry.ToString() + + Git.Staging.stageFile "" "CHANGELOG.md" + |> ignore + + !!(rootDirectory "src/**/AssemblyInfo.fs") + ++ (rootDirectory "tests/**/AssemblyInfo.fs") + |> Seq.iter (Git.Staging.stageFile "" >> ignore) + + let msg = + sprintf "Bump version to %s\n\n%s" latestEntry.NuGetVersion releaseNotesGitCommitFormat + + Git.Commit.exec "" msg + + Target.deactivateBuildFailure "RevertChangelog" + + Git.Branches.push "" + + let tag = Changelog.tagFromVersionNumber latestEntry.NuGetVersion + + Git.Branches.tag "" tag + Git.Branches.pushTag "" "origin" tag + +let githubRelease _ = + allPublishChecks () + + let token = + match githubToken with + | Some s -> s + | _ -> + failwith + "please set the github_token environment variable to a github personal access token with repo access." + + let files = !!distGlob + // Get release notes with properly-linked version number + + let releaseNotes = Changelog.mkReleaseNotes changelog latestEntry gitHubRepoUrl + + GitHub.createClientWithToken token + |> GitHub.draftNewRelease + gitOwner + gitRepoName + (Changelog.tagFromVersionNumber latestEntry.NuGetVersion) + (latestEntry.SemVer.PreRelease <> None) + (Seq.singleton releaseNotes) + |> GitHub.uploadFiles files + |> GitHub.publishDraft + |> Async.RunSynchronously + +let formatCode _ = + let result = dotnet.fantomas $"{srcDir}" + + if not result.OK then + printfn "Errors while formatting all files: %A" result.Messages + +let checkFormatCode ctx = + let result = dotnet.fantomas $"{srcDir} --check" + + if result.ExitCode = 0 then + Trace.log "No files need formatting" + elif result.ExitCode = 99 then + failwith "Some files need formatting, check output for more info" + else + Trace.logf "Errors while formatting: %A" result.Errors + + +let cleanDocsCache _ = DocsTool.cleanDocsCache () + +let buildDocs ctx = + let configuration = configuration (ctx.Context.AllExecutingTargets) + DocsTool.build (string configuration) + +let watchDocs ctx = + let configuration = configuration (ctx.Context.AllExecutingTargets) + DocsTool.watch (string configuration) + + +let initTargets () = + BuildServer.install [ GitHubActions.Installer ] + + /// Defines a dependency - y is dependent on x. Finishes the chain. + let (==>!) x y = + x ==> y + |> ignore + + /// Defines a soft dependency. x must run before y, if it is present, but y does not require x to be run. Finishes the chain. + let (?=>!) x y = + x ?=> y + |> ignore + //----------------------------------------------------------------------------- + // Hide Secrets in Logger + //----------------------------------------------------------------------------- + Option.iter (TraceSecrets.register "") githubToken + Option.iter (TraceSecrets.register "") nugetToken + //----------------------------------------------------------------------------- + // Target Declaration + //----------------------------------------------------------------------------- + + Target.create "Clean" clean + Target.create "DotnetRestore" dotnetRestore + Target.create "UpdateChangelog" updateChangelog + Target.createBuildFailure "RevertChangelog" revertChangelog // Do NOT put this in the dependency chain + Target.createFinal "DeleteChangelogBackupFile" deleteChangelogBackupFile // Do NOT put this in the dependency chain + Target.create "DotnetBuild" dotnetBuild + Target.create "BuildProviders" ignore + Target.create "FSharpAnalyzers" fsharpAnalyzers + Target.create "DotnetTest" dotnetTest + Target.create "GenerateCoverageReport" generateCoverageReport + Target.create "ShowCoverageReport" showCoverageReport + Target.create "WatchTests" watchTests + Target.create "GenerateAssemblyInfo" generateAssemblyInfo + Target.create "DotnetPack" dotnetPack + Target.create "PackProviders" ignore + Target.create "PublishProviders" ignore + Target.create "SourceLinkTest" sourceLinkTest + Target.create "PublishToNuGet" publishToNuget + Target.create "PaketUpdate" paketUpdate + Target.create "GitRelease" gitRelease + Target.create "GitHubRelease" githubRelease + Target.create "FormatCode" formatCode + Target.create "CheckFormatCode" checkFormatCode + Target.create "Release" ignore // For local + Target.create "Publish" ignore //For CI + Target.create "CleanDocsCache" cleanDocsCache + Target.create "BuildDocs" buildDocs + Target.create "WatchDocs" watchDocs + + !!providersGlob + |> Seq.iter (fun projectFile -> + let providerName = PulumiExtensions.getProviderName projectFile + + Target.create $"BuildProvider.{providerName}" (buildProvider projectFile) + Target.create $"PackProvider.{providerName}" (packProvider projectFile) + + Target.create $"PublishProvider.{providerName}" (publishProvider providerName) + + "Clean" + ==>! $"PackProvider.{providerName}" + + "DotnetBuild" + ==> $"BuildProvider.{providerName}" + ==> $"PackProvider.{providerName}" + ==>! $"PublishProvider.{providerName}" + + "DotnetRestore" + ==>! $"BuildProvider.{providerName}" + + $"BuildProvider.{providerName}" + ==>! "BuildProviders" + + $"PackProvider.{providerName}" + ==>! "PackProviders" + + $"PublishProvider.{providerName}" + ==>! "PublishProviders" + ) + + //----------------------------------------------------------------------------- + // Target Dependencies + //----------------------------------------------------------------------------- + + + // Only call Clean if DotnetPack was in the call chain + // Ensure Clean is called before DotnetRestore + "Clean" + ?=>! "DotnetRestore" + + "Clean" + ==>! "DotnetPack" + + // Only call GenerateAssemblyInfo if GitRelease was in the call chain + // Ensure GenerateAssemblyInfo is called after DotnetRestore and before DotnetBuild + "DotnetRestore" + ?=>! "GenerateAssemblyInfo" + + "GenerateAssemblyInfo" + ?=>! "DotnetBuild" + + // Ensure UpdateChangelog is called after DotnetRestore + "DotnetRestore" + ?=>! "UpdateChangelog" + + "UpdateChangelog" + ?=>! "GenerateAssemblyInfo" + + "CleanDocsCache" + ==>! "BuildDocs" + + "DotnetBuild" + ==>! "BuildProviders" + + "BuildProviders" + ?=>! "BuildDocs" + + "BuildProviders" + ==>! "BuildDocs" + + "BuildProviders" + ==>! "WatchDocs" + + "DotnetTest" + ==> "GenerateCoverageReport" + ==>! "ShowCoverageReport" + + "UpdateChangelog" + ==> "GenerateAssemblyInfo" + ==> "GitRelease" + ==>! "Release" + + "DotnetRestore" + =?> ("CheckFormatCode", isCI.Value) + ==> "DotnetBuild" + ==> "DotnetTest" + ==> "DotnetPack" + ==> "PublishToNuGet" + // ==> "GitHubRelease" + ==>! "Publish" + + "DotnetRestore" + =?> ("CheckFormatCode", isCI.Value) + ==> "BuildProviders" + ==> "PackProviders" + ==>! "PublishProviders" + + "DotnetRestore" + ==>! "WatchTests" + +//----------------------------------------------------------------------------- +// Target Start +//----------------------------------------------------------------------------- +[] +let main argv = + argv + |> Array.toList + |> Context.FakeExecutionContext.Create false "build.fsx" + |> Context.RuntimeContext.Fake + |> Context.setExecutionContext + + initTargets () + Target.runOrDefaultWithArguments "PackProviders" + + 0 // return an integer exit code diff --git a/build/build.fsproj b/build/build.fsproj new file mode 100644 index 0000000..86fd643 --- /dev/null +++ b/build/build.fsproj @@ -0,0 +1,16 @@ + + + + Exe + net6.0 + preview + 3390;$(WarnOn) + false + + + + + + + + diff --git a/build/paket.references b/build/paket.references new file mode 100644 index 0000000..c8af8be --- /dev/null +++ b/build/paket.references @@ -0,0 +1,16 @@ +group Build +Argu +Octokit +FSharp.Core +Fake.IO.FileSystem +Fake.Core.Target +Fake.Core.ReleaseNotes +FAKE.Core.Environment +Fake.DotNet.Cli +FAKE.Core.Process +Fake.DotNet.AssemblyInfoFile +Fake.Tools.Git +Fake.DotNet.Paket +Fake.Api.GitHub +Fake.BuildServer.GitHubActions +Paket.Core diff --git a/devcontainer.json b/devcontainer.json new file mode 100644 index 0000000..3f27ab2 --- /dev/null +++ b/devcontainer.json @@ -0,0 +1,73 @@ +{ + "name": "dotnet", + // Set the build context one level higher so we can grab metadata like global.json + "context": "..", + "dockerFile": "Dockerfile", + "forwardPorts": [ + 0 + ], + "features": { + // https://github.com/devcontainers/features/blob/main/src/common-utils/README.md + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "installOhMyZshConfig": true, + "configureZshAsDefaultShell": true, + "username": "vscode", + "userUid": "1000", + "userGid": "1000", + "upgradePackages": true + }, + // https://github.com/devcontainers/features/blob/main/src/github-cli/README.md + "ghcr.io/devcontainers/features/github-cli:1": {}, + // https://github.com/devcontainers-contrib/features/blob/main/src/starship/README.md + "ghcr.io/devcontainers-contrib/features/starship:1": {}, + // https://github.com/devcontainers/features/blob/main/src/dotnet/README.md + "ghcr.io/devcontainers/features/dotnet:2": { + "version": "7.0", + "additionalVersions": "6.0" + } + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/common-utils", + "ghcr.io/devcontainers/features/github-cli", + "ghcr.io/devcontainers-contrib/features/starship", + "ghcr.io/devcontainers/features/dotnet" + ], + "customizations": { + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp", + "Ionide.Ionide-fsharp", + "tintoy.msbuild-project-tools", + "ionide.ionide-paket", + "usernamehw.errorlens", + "alefragnani.Bookmarks", + "oderwat.indent-rainbow", + "vscode-icons-team.vscode-icons", + "EditorConfig.EditorConfig", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github", + "github.vscode-github-actions" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "csharp.suppressDotnetInstallWarning": true + } + } + }, + "remoteUser": "vscode", + "containerUser": "vscode", + "containerEnv": { + // Expose the local environment variable to the container + // They are used for releasing and publishing from the container + "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" + }, + "onCreateCommand": { + "enable-starship": "echo 'eval \"$(starship init zsh)\"' >> ~/.zshrc" + }, + "postAttachCommand": { + "restore": "dotnet tool restore && dotnet restore" + }, + "waitFor": "updateContentCommand" +} \ No newline at end of file diff --git a/fake.cmd b/fake.cmd deleted file mode 100644 index 43536ae..0000000 --- a/fake.cmd +++ /dev/null @@ -1,2 +0,0 @@ -dotnet tool restore -dotnet fake %* \ No newline at end of file diff --git a/fake.sh b/fake.sh deleted file mode 100755 index bc92bc9..0000000 --- a/fake.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -eu -set -o pipefail - -dotnet tool restore -dotnet fake "$@" \ No newline at end of file diff --git a/global.json b/global.json index bff197c..7fa817c 100644 --- a/global.json +++ b/global.json @@ -1,8 +1,5 @@ { "sdk": { - - "version": "8.0.204", - "rollForward": "latestMinor", - "allowPrerelease": true + "version": "8.0.300" } } \ No newline at end of file diff --git a/paket.dependencies b/paket.dependencies index 2bd86df..f390cd5 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -1,48 +1,68 @@ group Myriad - framework: net6.0 - source https://api.nuget.org/v3/index.json - storage: none + framework: net6.0 + source https://api.nuget.org/v3/index.json + storage: none - nuget FSharp.Core ~> 6 - nuget FSharp.Data ~> 6 - nuget FSharp.Text.RegexProvider ~> 2 - nuget Myriad.Core 0.8.1 - nuget Myriad.Sdk 0.8.1 - nuget Paket.Core ~> 8 + nuget FSharp.Core ~> 6 + nuget FSharp.Data ~> 6 + nuget FSharp.Text.RegexProvider ~> 2 + nuget Myriad.Core 0.8.1 + nuget Myriad.Sdk 0.8.1 + nuget Paket.Core ~> 8 group Main - framework: net8.0 - source https://api.nuget.org/v3/index.json - storage: none + framework: net8.0 + source https://api.nuget.org/v3/index.json + storage: none - nuget FSharp.Core ~> 8 - nuget Myriad.Sdk 0.8.1 + nuget FSharp.Core ~> 8 + nuget Myriad.Sdk 0.8.1 copy_local: true - nuget Pulumi.Aws - nuget Pulumi.Auth0 - nuget Pulumi.Azure - nuget Pulumi.AzureAD - nuget Pulumi.AzureNative - nuget Pulumi.Command - nuget Pulumi.DigitalOcean - nuget Pulumi.Docker - nuget Pulumi.FSharp - nuget Pulumi.Gcp - nuget Pulumi.Kubernetes - nuget Pulumi.Random - nuget Pulumi.Tls + nuget Pulumi.Aws + nuget Pulumi.Auth0 + nuget Pulumi.Azure + nuget Pulumi.AzureAD + nuget Pulumi.AzureNative + nuget Pulumi.Command + nuget Pulumi.DigitalOcean + nuget Pulumi.Docker + nuget Pulumi.Gcp + nuget Pulumi.Kubernetes + nuget Pulumi.Random + nuget Pulumi.Tls -group Test - framework: net8.0 - source https://api.nuget.org/v3/index.json - storage: none + nuget Pulumi.FSharp.Core + + nuget Microsoft.SourceLink.GitHub copy_local: true + nuget YoloDev.Expecto.TestSdk + nuget Microsoft.NET.Test.Sdk + nuget altcover - nuget FSharp.Core ~> 8.0 - nuget Pulumi.FSharp.Aws - nuget Pulumi.FSharp.Azure - nuget Pulumi.FSharp.AzureAD - nuget Pulumi.FSharp.AzureNative - nuget Pulumi.FSharp.Core - nuget Pulumi.FSharp.Gcp - nuget Pulumi.FSharp.Kubernetes - nuget Pulumi.FSharp.Tls +// [ FAKE GROUP ] +group Build + framework: net6.0 + storage: none + source https://www.nuget.org/api/v2 + source https://api.nuget.org/v3/index.json + nuget Fake.IO.FileSystem + nuget Fake.Core.Target + nuget Fake.Core.ReleaseNotes + nuget Fake.Core.Environment + nuget Fake.DotNet.Cli + nuget Fake.Core.Process + nuget Fake.DotNet.AssemblyInfoFile + nuget Fake.Tools.Git + nuget Fake.DotNet.Paket + nuget Fake.Api.GitHub + nuget Fake.BuildServer.GitHubActions + nuget Argu + nuget Microsoft.Build 17.3.2 + nuget Microsoft.Build.Framework 17.3.2 + nuget Microsoft.Build.Tasks.Core 17.3.2 + nuget Microsoft.Build.Utilities.Core 17.3.2 + nuget Paket.Core ~> 8 + +group Analyzers + source https://www.nuget.org/api/v2 + source https://api.nuget.org/v3/index.json + nuget BinaryDefense.FSharp.Analyzers.Hashing 0.2.2 \ No newline at end of file diff --git a/paket.lock b/paket.lock index a22dd24..33f49c0 100644 --- a/paket.lock +++ b/paket.lock @@ -2,26 +2,32 @@ STORAGE: NONE RESTRICTION: == net8.0 NUGET remote: https://api.nuget.org/v3/index.json + altcover (8.8.74) Ben.Demystifier (0.4.1) System.Reflection.Metadata (>= 5.0) - FSharp.Core (8.0.200) + Expecto (10.2.1) + FSharp.Core (>= 7.0.200) + Mono.Cecil (>= 0.11.4 < 1.0) + FSharp.Core (8.0.300) Glob (1.1.9) - Google.Protobuf (3.26.1) - Grpc.AspNetCore.Server (2.62) - Grpc.Net.Common (>= 2.62) - Grpc.AspNetCore.Server.Reflection (2.62) + Google.Protobuf (3.27) + Grpc.AspNetCore.Server (2.63) + Grpc.Net.Common (>= 2.63) + Grpc.AspNetCore.Server.Reflection (2.63) Google.Protobuf (>= 3.24) - Grpc.AspNetCore.Server (>= 2.62) - Grpc.Reflection (>= 2.62) - Grpc.Core.Api (2.62) - Grpc.Net.Client (2.62) - Grpc.Net.Common (>= 2.62) + Grpc.AspNetCore.Server (>= 2.63) + Grpc.Reflection (>= 2.63) + Grpc.Core.Api (2.63) + Grpc.Net.Client (2.63) + Grpc.Net.Common (>= 2.63) Microsoft.Extensions.Logging.Abstractions (>= 6.0) - Grpc.Net.Common (2.62) - Grpc.Core.Api (>= 2.62) - Grpc.Reflection (2.62) + Grpc.Net.Common (2.63) + Grpc.Core.Api (>= 2.63) + Grpc.Reflection (2.63) Google.Protobuf (>= 3.24) - Grpc.Core.Api (>= 2.62) + Grpc.Core.Api (>= 2.63) + Microsoft.Build.Tasks.Git (8.0) - copy_local: true + Microsoft.CodeCoverage (17.10) Microsoft.Extensions.DependencyInjection (8.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) @@ -35,8 +41,22 @@ NUGET Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) Microsoft.Extensions.Primitives (>= 8.0) Microsoft.Extensions.Primitives (8.0) - Myriad.Sdk (0.8.1) - OneOf (3.0.263) + Microsoft.NET.Test.Sdk (17.10) + Microsoft.CodeCoverage (>= 17.10) + Microsoft.TestPlatform.TestHost (>= 17.10) + Microsoft.SourceLink.Common (8.0) - copy_local: true + Microsoft.SourceLink.GitHub (8.0) - copy_local: true + Microsoft.Build.Tasks.Git (>= 8.0) + Microsoft.SourceLink.Common (>= 8.0) + Microsoft.TestPlatform.ObjectModel (17.10) + System.Reflection.Metadata (>= 1.6) + Microsoft.TestPlatform.TestHost (17.10) + Microsoft.TestPlatform.ObjectModel (>= 17.10) + Newtonsoft.Json (>= 13.0.1) + Mono.Cecil (0.11.5) + Myriad.Sdk (0.8.1) - copy_local: true + Newtonsoft.Json (13.0.3) + OneOf (3.0.271) Pulumi (3.63.1) Ben.Demystifier (>= 0.4.1) Grpc.AspNetCore.Server (>= 2.37) @@ -52,30 +72,33 @@ NUGET Pulumi (>= 3.60) Pulumi.Aws (6.33.1) Pulumi (>= 3.63.1) - Pulumi.Azure (5.74) + Pulumi.Azure (5.79) Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.48) - Pulumi (>= 3.60) - Pulumi.AzureNative (2.39) + Pulumi.AzureAD (5.50) + Pulumi (>= 3.63.1) + Pulumi.AzureNative (2.43) Pulumi (>= 3.63.1) System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.10) - Pulumi (>= 3.60) - Pulumi.DigitalOcean (4.28.1) + Pulumi.Command (0.11.1) + Pulumi (>= 3.63.1) + Pulumi.DigitalOcean (4.30) + Pulumi (>= 3.63.1) + Pulumi.Docker (4.5.4) Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.3) - Pulumi (>= 3.60) Pulumi.FSharp (3.63.1) FSharp.Core (>= 4.7.2) Pulumi (>= 3.63.1) - Pulumi.Gcp (7.20) - Pulumi (>= 3.62) - Pulumi.Kubernetes (4.11) + Pulumi.FSharp.Core (3.1.4) + FSharp.Core (>= 6.0.6) + Pulumi.FSharp (>= 3.43.1) + Pulumi.Gcp (7.24) + Pulumi (>= 3.63.1) + Pulumi.Kubernetes (4.12) Glob (>= 1.1.5) - Pulumi (>= 3.61) + Pulumi (>= 3.63.1) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.1) - Pulumi (>= 3.61) + Pulumi.Random (4.16.2) + Pulumi (>= 3.63.1) Pulumi.Tls (5.0.3) Pulumi (>= 3.63.1) Semver (2.3) @@ -88,6 +111,564 @@ NUGET System.Collections.Immutable (8.0) System.Reflection.Metadata (8.0) System.Collections.Immutable (>= 8.0) + YoloDev.Expecto.TestSdk (0.14.3) + Expecto (>= 10.0 < 11.0) + FSharp.Core (>= 7.0.200) + System.Collections.Immutable (>= 6.0) + +GROUP Analyzers +NUGET + remote: https://www.nuget.org/api/v2 + BinaryDefense.FSharp.Analyzers.Hashing (0.2.2) + FSharp.Analyzers.SDK (>= 0.8) - restriction: >= net5.0 + FSharp.Core (>= 5.0.1) - restriction: >= net5.0 + FSharp.Analyzers.SDK (0.26) - restriction: >= net5.0 + FSharp.Compiler.Service (43.8.300) - restriction: >= net6.0 + FSharp.Core (8.0.300) - restriction: >= net6.0 + McMaster.NETCore.Plugins (>= 1.4) - restriction: >= net6.0 + Microsoft.Extensions.Logging.Abstractions (>= 6.0) - restriction: >= net6.0 + FSharp.Compiler.Service (43.8.300) - restriction: >= net6.0 + FSharp.Core (8.0.300) - restriction: >= netstandard2.0 + System.Buffers (>= 4.5.1) - restriction: >= netstandard2.0 + System.Collections.Immutable (>= 7.0) - restriction: >= netstandard2.0 + System.Diagnostics.DiagnosticSource (>= 7.0.2) - restriction: >= netstandard2.0 + System.Memory (>= 4.5.5) - restriction: >= netstandard2.0 + System.Reflection.Emit (>= 4.7) - restriction: >= netstandard2.0 + System.Reflection.Metadata (>= 7.0) - restriction: >= netstandard2.0 + System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: >= netstandard2.0 + FSharp.Core (8.0.300) - restriction: >= net5.0 + McMaster.NETCore.Plugins (1.4) - restriction: >= net6.0 + Microsoft.DotNet.PlatformAbstractions (>= 3.1.6) - restriction: >= netcoreapp2.1 + Microsoft.Extensions.DependencyModel (>= 5.0) - restriction: >= netcoreapp2.1 + Microsoft.DotNet.PlatformAbstractions (3.1.6) - restriction: >= net6.0 + Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) - restriction: >= net6.0 + Microsoft.Extensions.DependencyModel (8.0) - restriction: >= net6.0 + System.Text.Encodings.Web (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) + System.Text.Json (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) + Microsoft.Extensions.Logging.Abstractions (8.0.1) - restriction: >= net6.0 + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) - restriction: || (>= net462) (>= netstandard2.0) + System.Buffers (4.5.1) - restriction: >= net6.0 + System.Collections.Immutable (8.0) - restriction: >= net6.0 + System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) + System.Diagnostics.DiagnosticSource (8.0.1) - restriction: >= net6.0 + System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) + System.Memory (4.5.5) - restriction: >= net6.0 + System.Buffers (>= 4.5.1) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (>= monoandroid) (< netstandard1.1)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net461) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) + System.Reflection.Emit (4.7) - restriction: >= net6.0 + System.Reflection.Metadata (8.0) - restriction: >= net6.0 + System.Collections.Immutable (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) + System.Runtime.CompilerServices.Unsafe (6.0) - restriction: >= net6.0 + System.Text.Encodings.Web (8.0) - restriction: >= net6.0 + System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) + System.Text.Json (8.0.3) - restriction: >= net6.0 + System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) + System.Text.Encodings.Web (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) + +GROUP Build +STORAGE: NONE +RESTRICTION: == net6.0 +NUGET + remote: https://www.nuget.org/api/v2 + Argu (6.2.3) + FSharp.Core (>= 4.3.2) + System.Configuration.ConfigurationManager (>= 4.4) + BlackFox.VsWhere (1.1) + FSharp.Core (>= 4.2.3) + Microsoft.Win32.Registry (>= 4.7) + Chessie (0.6) + FSharp.Core (>= 4.0.1.7-alpha) + NETStandard.Library (>= 1.6) + Fake.Api.GitHub (6.0) + FSharp.Core (>= 6.0.3) + Octokit (>= 0.50) + Fake.BuildServer.GitHubActions (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.CommandLineParsing (6.0) + FParsec (>= 1.1.1) + FSharp.Core (>= 6.0.3) + Fake.Core.Context (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Environment (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.FakeVar (6.0) + Fake.Core.Context (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Process (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.FakeVar (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + System.Collections.Immutable (>= 6.0) + Fake.Core.ReleaseNotes (6.0) + Fake.Core.SemVer (>= 6.0) + Fake.Core.String (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.SemVer (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.String (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Target (6.0) + Fake.Core.CommandLineParsing (>= 6.0) + Fake.Core.Context (>= 6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.FakeVar (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Control.Reactive (>= 5.0.2) + FSharp.Core (>= 6.0.3) + Fake.Core.Tasks (6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Trace (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.FakeVar (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Xml (6.0) + Fake.Core.String (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.DotNet.AssemblyInfoFile (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.DotNet.Cli (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.DotNet.MSBuild (>= 6.0) + Fake.DotNet.NuGet (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + Mono.Posix.NETStandard (>= 1.0) + Newtonsoft.Json (>= 13.0.1) + Fake.DotNet.MSBuild (6.0) + BlackFox.VsWhere (>= 1.1) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + MSBuild.StructuredLogger (>= 2.1.545) + Fake.DotNet.NuGet (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.SemVer (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Tasks (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.Core.Xml (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + Fake.Net.Http (>= 6.0) + FSharp.Core (>= 6.0.3) + Newtonsoft.Json (>= 13.0.1) + NuGet.Protocol (>= 6.0) + Fake.DotNet.Paket (6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.DotNet.Cli (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.IO.FileSystem (6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Net.Http (6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Tools.Git (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.SemVer (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + FParsec (1.1.1) + FSharp.Core (>= 4.3.4) + FSharp.Control.Reactive (5.0.5) + FSharp.Core (>= 4.7.2) + System.Reactive (>= 5.0 < 6.0) + FSharp.Core (6.0.3) + Microsoft.Build (17.3.2) + Microsoft.Build.Framework (>= 17.3.2) + Microsoft.NET.StringTools (>= 17.3.2) + System.Collections.Immutable (>= 6.0) + System.Configuration.ConfigurationManager (>= 6.0) + System.Reflection.Metadata (>= 6.0) + System.Reflection.MetadataLoadContext (>= 6.0) + System.Security.Principal.Windows (>= 5.0) + System.Text.Encoding.CodePages (>= 6.0) + System.Text.Json (>= 6.0) + System.Threading.Tasks.Dataflow (>= 6.0) + Microsoft.Build.Framework (17.3.2) + System.Security.Permissions (>= 6.0) + Microsoft.Build.Tasks.Core (17.3.2) + Microsoft.Build.Framework (>= 17.3.2) + Microsoft.Build.Utilities.Core (>= 17.3.2) + Microsoft.NET.StringTools (>= 17.3.2) + System.CodeDom (>= 6.0) + System.Collections.Immutable (>= 6.0) + System.Reflection.Metadata (>= 6.0) + System.Resources.Extensions (>= 6.0) + System.Security.Cryptography.Pkcs (>= 6.0.1) + System.Security.Cryptography.Xml (>= 6.0) + System.Security.Permissions (>= 6.0) + System.Threading.Tasks.Dataflow (>= 6.0) + Microsoft.Build.Utilities.Core (17.3.2) + Microsoft.Build.Framework (>= 17.3.2) + Microsoft.NET.StringTools (>= 17.3.2) + System.Collections.Immutable (>= 6.0) + System.Configuration.ConfigurationManager (>= 6.0) + Microsoft.NET.StringTools (17.10.4) + System.Memory (>= 4.5.5) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + Microsoft.NETCore.Platforms (7.0.4) + Microsoft.NETCore.Targets (5.0) + Microsoft.Win32.Registry (5.0) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (>= 5.0) + Mono.Cecil (0.11.5) + Mono.Posix.NETStandard (1.0) + MSBuild.StructuredLogger (2.1.815) + Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Utilities.Core (>= 16.10) + NETStandard.Library (2.0.3) + Microsoft.NETCore.Platforms (>= 1.1) + Newtonsoft.Json (13.0.3) + NuGet.Common (6.10) + NuGet.Frameworks (>= 6.10) + NuGet.Configuration (6.10) + NuGet.Common (>= 6.10) + System.Security.Cryptography.ProtectedData (>= 4.4) + NuGet.Frameworks (6.10) + NuGet.Packaging (6.10) + Newtonsoft.Json (>= 13.0.3) + NuGet.Configuration (>= 6.10) + NuGet.Versioning (>= 6.10) + System.Security.Cryptography.Pkcs (>= 6.0.4) + NuGet.Protocol (6.10) + NuGet.Packaging (>= 6.10) + NuGet.Versioning (6.10) + Octokit (11.0.1) + Paket.Core (8.0.3) + Chessie (>= 0.6) + FSharp.Core (6.0.3) + Mono.Cecil (>= 0.11.3 < 0.12) + Newtonsoft.Json (>= 13.0.1) + NuGet.Packaging (>= 5.9.1) + System.Net.Http (>= 4.3.4) + System.Net.Http.WinHttpHandler (>= 5.0) + System.Security.Cryptography.ProtectedData (>= 5.0) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.native.System (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Net.Http (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + System.CodeDom (8.0) + System.Collections (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Collections.Concurrent (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Collections.Immutable (8.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Configuration.ConfigurationManager (8.0) + System.Security.Cryptography.ProtectedData (>= 8.0) + System.Diagnostics.Debug (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Diagnostics.DiagnosticSource (8.0.1) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Diagnostics.Tracing (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Formats.Asn1 (8.0) + System.Globalization (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Globalization.Calendars (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Runtime (>= 4.3) + System.Globalization.Extensions (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.IO (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.IO.FileSystem (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.IO (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.IO.FileSystem.Primitives (4.3) + System.Runtime (>= 4.3) + System.Linq (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Memory (4.5.5) + System.Net.Http (4.3.4) + Microsoft.NETCore.Platforms (>= 1.1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.DiagnosticSource (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Http.WinHttpHandler (8.0) + System.Net.Primitives (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (>= 4.3) + System.Reactive (5.0) + System.Reflection (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.IO (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Reflection.Metadata (8.0) + System.Collections.Immutable (>= 8.0) + System.Reflection.MetadataLoadContext (8.0) + System.Collections.Immutable (>= 8.0) + System.Reflection.Metadata (>= 8.0) + System.Reflection.Primitives (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Resources.Extensions (8.0) + System.Resources.ResourceManager (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime.CompilerServices.Unsafe (6.0) + System.Runtime.Extensions (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Reflection (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.Numerics (4.3) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Security.AccessControl (6.0.1) + System.Security.Cryptography.Algorithms (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Security.Cryptography.Cng (5.0) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Csp (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.IO (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Security.Cryptography.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) + System.Collections (>= 4.3) + System.Collections.Concurrent (>= 4.3) + System.Linq (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (5.0) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Pkcs (8.0) + System.Formats.Asn1 (>= 8.0) + System.Security.Cryptography.Primitives (4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Security.Cryptography.ProtectedData (8.0) + System.Security.Cryptography.X509Certificates (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Calendars (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Cng (>= 4.3) + System.Security.Cryptography.Csp (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Security.Cryptography.Xml (8.0.1) + System.Security.Cryptography.Pkcs (>= 8.0) + System.Security.Permissions (8.0) + System.Windows.Extensions (>= 8.0) + System.Security.Principal.Windows (5.0) + System.Text.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding.CodePages (8.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Encodings.Web (8.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Json (8.0.3) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Encodings.Web (>= 8.0) + System.Threading (4.3) + System.Runtime (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Tasks (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Threading.Tasks.Dataflow (8.0) + System.Windows.Extensions (8.0) GROUP Myriad STORAGE: NONE @@ -97,7 +678,7 @@ NUGET Chessie (0.6) FSharp.Core (>= 4.0.1.7-alpha) NETStandard.Library (>= 1.6) - fantomas (6.3.4) + fantomas (6.3.5) FSharp.Core (6.0.3) FSharp.Data (6.4) FSharp.Core (>= 6.0.1) @@ -145,18 +726,18 @@ NUGET NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) Newtonsoft.Json (13.0.3) - NuGet.Common (6.9.1) - NuGet.Frameworks (>= 6.9.1) - NuGet.Configuration (6.9.1) - NuGet.Common (>= 6.9.1) + NuGet.Common (6.10) + NuGet.Frameworks (>= 6.10) + NuGet.Configuration (6.10) + NuGet.Common (>= 6.10) System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.9.1) - NuGet.Packaging (6.9.1) + NuGet.Frameworks (6.10) + NuGet.Packaging (6.10) Newtonsoft.Json (>= 13.0.3) - NuGet.Configuration (>= 6.9.1) - NuGet.Versioning (>= 6.9.1) + NuGet.Configuration (>= 6.10) + NuGet.Versioning (>= 6.10) System.Security.Cryptography.Pkcs (>= 6.0.4) - NuGet.Versioning (6.9.1) + NuGet.Versioning (6.10) Paket.Core (8.0.3) Chessie (>= 0.6) FSharp.Core (6.0.3) @@ -438,115 +1019,3 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - -GROUP Test -STORAGE: NONE -RESTRICTION: == net8.0 -NUGET - remote: https://api.nuget.org/v3/index.json - Ben.Demystifier (0.4.1) - System.Reflection.Metadata (>= 5.0) - FSharp.Core (8.0.200) - Glob (1.1.9) - Google.Protobuf (3.26.1) - Grpc.AspNetCore.Server (2.62) - Grpc.Net.Common (>= 2.62) - Grpc.AspNetCore.Server.Reflection (2.62) - Google.Protobuf (>= 3.24) - Grpc.AspNetCore.Server (>= 2.62) - Grpc.Reflection (>= 2.62) - Grpc.Core.Api (2.62) - Grpc.Net.Client (2.62) - Grpc.Net.Common (>= 2.62) - Microsoft.Extensions.Logging.Abstractions (>= 6.0) - Grpc.Net.Common (2.62) - Grpc.Core.Api (>= 2.62) - Grpc.Reflection (2.62) - Google.Protobuf (>= 3.24) - Grpc.Core.Api (>= 2.62) - Microsoft.Extensions.DependencyInjection (8.0) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) - Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) - Microsoft.Extensions.Logging (8.0) - Microsoft.Extensions.DependencyInjection (>= 8.0) - Microsoft.Extensions.Logging.Abstractions (>= 8.0) - Microsoft.Extensions.Options (>= 8.0) - Microsoft.Extensions.Logging.Abstractions (8.0.1) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) - Microsoft.Extensions.Options (8.0.2) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) - Microsoft.Extensions.Primitives (>= 8.0) - Microsoft.Extensions.Primitives (8.0) - OneOf (3.0.263) - Pulumi (3.63.1) - Ben.Demystifier (>= 0.4.1) - Grpc.AspNetCore.Server (>= 2.37) - Grpc.AspNetCore.Server.Reflection (>= 2.37) - Grpc.Net.Client (>= 2.52) - Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) - OneOf (>= 3.0.216) - Pulumi.Protobuf (>= 3.20.1) - Semver (>= 2.1) - Serilog.Extensions.Logging (>= 3.0.1) - Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Aws (6.33.1) - Pulumi (>= 3.63.1) - Pulumi.Azure (5.74) - Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.48) - Pulumi (>= 3.60) - Pulumi.AzureNative (2.39) - Pulumi (>= 3.63.1) - System.Collections.Immutable (>= 5.0) - Pulumi.FSharp (3.63.1) - FSharp.Core (>= 4.7.2) - Pulumi (>= 3.63.1) - Pulumi.FSharp.Aws (5.11.0.7) - FSharp.Core (>= 6.0.5) - Pulumi.Aws (>= 5.11) - Pulumi.FSharp (>= 3.38) - Pulumi.FSharp.Azure (5.22.0.10) - FSharp.Core (>= 6.0.6) - Pulumi.Azure (>= 5.22) - Pulumi.FSharp (>= 3.43.1) - Pulumi.FSharp.AzureAD (5.29.1.12) - FSharp.Core (>= 6.0.6) - Pulumi.AzureAD (>= 5.29.1) - Pulumi.FSharp (>= 3.43.1) - Pulumi.FSharp.AzureNative (1.104.0.21) - FSharp.Core (>= 6.0.6) - Pulumi.AzureNative (>= 1.104) - Pulumi.FSharp (>= 3.43.1) - Pulumi.FSharp.Core (3.1.4) - FSharp.Core (>= 6.0.6) - Pulumi.FSharp (>= 3.43.1) - Pulumi.FSharp.Gcp (6.41.0.13) - FSharp.Core (>= 6.0.6) - Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (>= 6.41) - Pulumi.FSharp.Kubernetes (4.5.2.13) - FSharp.Core (>= 6.0.6) - Pulumi.FSharp (>= 3.43.1) - Pulumi.Kubernetes (>= 4.5.2) - Pulumi.FSharp.Tls (4.6.1.13) - FSharp.Core (>= 6.0.6) - Pulumi.FSharp (>= 3.43.1) - Pulumi.Tls (>= 4.6.1) - Pulumi.Gcp (7.20) - Pulumi (>= 3.62) - Pulumi.Kubernetes (4.11) - Glob (>= 1.1.5) - Pulumi (>= 3.61) - Pulumi.Protobuf (3.20.1) - Pulumi.Tls (5.0.3) - Pulumi (>= 3.63.1) - Semver (2.3) - Serilog (3.1.1) - Serilog.Extensions.Logging (8.0) - Microsoft.Extensions.Logging (>= 8.0) - Serilog (>= 3.1.1) - Serilog.Sinks.Console (5.0.1) - Serilog (>= 3.1.1) - System.Collections.Immutable (8.0) - System.Reflection.Metadata (8.0) - System.Collections.Immutable (>= 8.0) diff --git a/Pulumi.FSharp.Auth0/.gitignore b/providers/Pulumi.FSharp.Auth0/.gitignore similarity index 100% rename from Pulumi.FSharp.Auth0/.gitignore rename to providers/Pulumi.FSharp.Auth0/.gitignore diff --git a/providers/Pulumi.FSharp.Auth0/Myriad.fs b/providers/Pulumi.FSharp.Auth0/Myriad.fs new file mode 100644 index 0000000..0b0606e --- /dev/null +++ b/providers/Pulumi.FSharp.Auth0/Myriad.fs @@ -0,0 +1,3 @@ +module private Auth0 + +module Force = let private nonce = 669580010 \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj b/providers/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj new file mode 100644 index 0000000..ae3fda2 --- /dev/null +++ b/providers/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj @@ -0,0 +1,35 @@ + + + + net8.0 + $(MSBuildProjectName) + NU1605,NU1608,FS0058,FS0044 + true + fsharp pulumi auth0 identity oidc oauth + + + + + + + + + + + + + + + + + + Myriad.fs + + + + + \ No newline at end of file diff --git a/Pulumi.FSharp.Auth0/myriad.toml b/providers/Pulumi.FSharp.Auth0/myriad.toml similarity index 100% rename from Pulumi.FSharp.Auth0/myriad.toml rename to providers/Pulumi.FSharp.Auth0/myriad.toml diff --git a/Pulumi.FSharp.Auth0/paket.references b/providers/Pulumi.FSharp.Auth0/paket.references similarity index 75% rename from Pulumi.FSharp.Auth0/paket.references rename to providers/Pulumi.FSharp.Auth0/paket.references index 578556e..6d744c3 100644 --- a/Pulumi.FSharp.Auth0/paket.references +++ b/providers/Pulumi.FSharp.Auth0/paket.references @@ -1,4 +1,3 @@ Pulumi.Auth0 Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/.gitignore b/providers/Pulumi.FSharp.Aws/.gitignore similarity index 100% rename from Pulumi.FSharp.Aws/.gitignore rename to providers/Pulumi.FSharp.Aws/.gitignore diff --git a/providers/Pulumi.FSharp.Aws/Myriad.fs b/providers/Pulumi.FSharp.Aws/Myriad.fs new file mode 100644 index 0000000..c487934 --- /dev/null +++ b/providers/Pulumi.FSharp.Aws/Myriad.fs @@ -0,0 +1,3 @@ +module private Aws + +module Force = let private nonce = 1256465707 \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj b/providers/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj similarity index 61% rename from Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj rename to providers/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj index 3d9dc0d..ea5b954 100644 --- a/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj +++ b/providers/Pulumi.FSharp.Aws/Pulumi.FSharp.Aws.fsproj @@ -2,15 +2,7 @@ net8.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi aws - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +22,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Aws/myriad.toml b/providers/Pulumi.FSharp.Aws/myriad.toml similarity index 100% rename from Pulumi.FSharp.Aws/myriad.toml rename to providers/Pulumi.FSharp.Aws/myriad.toml diff --git a/Pulumi.FSharp.Aws/paket.references b/providers/Pulumi.FSharp.Aws/paket.references similarity index 74% rename from Pulumi.FSharp.Aws/paket.references rename to providers/Pulumi.FSharp.Aws/paket.references index 6352dd5..3548e63 100644 --- a/Pulumi.FSharp.Aws/paket.references +++ b/providers/Pulumi.FSharp.Aws/paket.references @@ -1,4 +1,3 @@ Pulumi.Aws Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/.gitignore b/providers/Pulumi.FSharp.Azure/.gitignore similarity index 100% rename from Pulumi.FSharp.Azure/.gitignore rename to providers/Pulumi.FSharp.Azure/.gitignore diff --git a/providers/Pulumi.FSharp.Azure/Myriad.fs b/providers/Pulumi.FSharp.Azure/Myriad.fs new file mode 100644 index 0000000..20eaf73 --- /dev/null +++ b/providers/Pulumi.FSharp.Azure/Myriad.fs @@ -0,0 +1,3 @@ +module private Azure + +module Force = let private nonce = 446685478 \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj b/providers/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj similarity index 59% rename from Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj rename to providers/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj index 863590d..8272d85 100644 --- a/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj +++ b/providers/Pulumi.FSharp.Azure/Pulumi.FSharp.Azure.fsproj @@ -2,15 +2,7 @@ net8.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,11 +22,8 @@ - + - - - Myriad.fs @@ -42,5 +31,5 @@ - + \ No newline at end of file diff --git a/Pulumi.FSharp.Azure/Storage/SasToken.fs b/providers/Pulumi.FSharp.Azure/Storage/SasToken.fs similarity index 51% rename from Pulumi.FSharp.Azure/Storage/SasToken.fs rename to providers/Pulumi.FSharp.Azure/Storage/SasToken.fs index 7f1ca44..fb41704 100644 --- a/Pulumi.FSharp.Azure/Storage/SasToken.fs +++ b/providers/Pulumi.FSharp.Azure/Storage/SasToken.fs @@ -5,10 +5,7 @@ open Pulumi.FSharp.Outputs open Pulumi.Azure.Storage open System -type TimeRange = { - From: DateTime - To: DateTime -} +type TimeRange = { From: DateTime; To: DateTime } type Permission = | Add @@ -18,7 +15,7 @@ type Permission = | Create | Delete -module SasTokenInternal = +module SasTokenInternal = type StorageBlobArgsRecord = { StorageAccount: Account StorageContainer: Container @@ -30,33 +27,31 @@ module SasTokenInternal = open SasTokenInternal type SasTokenBuilder internal () = - + let granularSas args range permissions = output { - let! connectionString = - args.StorageAccount.PrimaryConnectionString - - let! containerName = - args.StorageContainer.Name - - let! result = + let! connectionString = args.StorageAccount.PrimaryConnectionString + + let! containerName = args.StorageContainer.Name + + let! result = GetAccountBlobContainerSASArgs( ConnectionString = connectionString, ContainerName = containerName, Start = range.From.ToString("u").Replace(' ', 'T'), Expiry = range.To.ToString("u").Replace(' ', 'T'), Permissions = permissions - ) |> - GetAccountBlobContainerSAS.InvokeAsync - + ) + |> GetAccountBlobContainerSAS.InvokeAsync + return result.Sas } - + let toArgs permissions = let has permission = - permissions |> - List.contains permission - + permissions + |> List.contains permission + GetAccountBlobContainerSASPermissionsArgs( Add = (has Add), List = (has List), @@ -65,12 +60,12 @@ type SasTokenBuilder internal () = Create = (has Create), Delete = (has Delete) ) - + let defaultDuration = { From = DateTime.Now To = DateTime.Now.AddDays(1.) } - + member __.Yield _ = { StorageAccount = null StorageContainer = null @@ -78,42 +73,60 @@ type SasTokenBuilder internal () = TimeRange = None Permissions = [] } - - member __.Run (args) = - let token = + + member __.Run(args) = + let token = match args.TimeRange, args.Permissions with | None, [] - | None, [ Read ] -> SharedAccessSignature.SignedBlobReadUrl(args.Blob, - args.StorageAccount) - | Some range, perms -> granularSas args range (perms |> toArgs) - | None, perms -> granularSas args defaultDuration (perms |> toArgs) - - secretOutput { - return! token - } - + | None, [ Read ] -> + SharedAccessSignature.SignedBlobReadUrl(args.Blob, args.StorageAccount) + | Some range, perms -> + granularSas + args + range + (perms + |> toArgs) + | None, perms -> + granularSas + args + defaultDuration + (perms + |> toArgs) + + secretOutput { return! token } + [] - member __.Blob(args, blob) = - { args with Blob = blob } + member __.Blob(args, blob) = { args with Blob = blob } [] - member __.Account(args, storageAccount) = - { args with StorageAccount = storageAccount } - + member __.Account(args, storageAccount) = { + args with + StorageAccount = storageAccount + } + [] - member __.Container(args, storageContainer) = - { args with StorageContainer = storageContainer } + member __.Container(args, storageContainer) = { + args with + StorageContainer = storageContainer + } [] - member __.Duration(args, range) = - { args with TimeRange = Some range } - + member __.Duration(args, range) = { args with TimeRange = Some range } + [] - member __.Permission(args, permission) = - { args with Permissions = permission :: args.Permissions } - + member __.Permission(args, permission) = { + args with + Permissions = + permission + :: args.Permissions + } + [] - member __.Permissions(args, permissions) = - { args with Permissions = args.Permissions @ permissions } + member __.Permissions(args, permissions) = { + args with + Permissions = + args.Permissions + @ permissions + } -let sasToken = SasTokenBuilder() \ No newline at end of file +let sasToken = SasTokenBuilder() diff --git a/Pulumi.FSharp.Azure/myriad.toml b/providers/Pulumi.FSharp.Azure/myriad.toml similarity index 100% rename from Pulumi.FSharp.Azure/myriad.toml rename to providers/Pulumi.FSharp.Azure/myriad.toml diff --git a/providers/Pulumi.FSharp.Azure/paket.references b/providers/Pulumi.FSharp.Azure/paket.references new file mode 100644 index 0000000..49eb95d --- /dev/null +++ b/providers/Pulumi.FSharp.Azure/paket.references @@ -0,0 +1,3 @@ +Pulumi.Azure +Myriad.Sdk +Pulumi.FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/.gitignore b/providers/Pulumi.FSharp.AzureAD/.gitignore similarity index 100% rename from Pulumi.FSharp.AzureAD/.gitignore rename to providers/Pulumi.FSharp.AzureAD/.gitignore diff --git a/providers/Pulumi.FSharp.AzureAD/Myriad.fs b/providers/Pulumi.FSharp.AzureAD/Myriad.fs new file mode 100644 index 0000000..1394bbc --- /dev/null +++ b/providers/Pulumi.FSharp.AzureAD/Myriad.fs @@ -0,0 +1,4 @@ +module private AzureAD + +module Force = + let private nonce = 1789749124 diff --git a/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj b/providers/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj similarity index 77% rename from Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj rename to providers/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj index b856324..4fb1a0a 100644 --- a/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj +++ b/providers/Pulumi.FSharp.AzureAD/Pulumi.FSharp.AzureAD.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi azuread - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureAD/myriad.toml b/providers/Pulumi.FSharp.AzureAD/myriad.toml similarity index 100% rename from Pulumi.FSharp.AzureAD/myriad.toml rename to providers/Pulumi.FSharp.AzureAD/myriad.toml diff --git a/Pulumi.FSharp.AzureAD/paket.references b/providers/Pulumi.FSharp.AzureAD/paket.references similarity index 76% rename from Pulumi.FSharp.AzureAD/paket.references rename to providers/Pulumi.FSharp.AzureAD/paket.references index c20466d..be5a164 100644 --- a/Pulumi.FSharp.AzureAD/paket.references +++ b/providers/Pulumi.FSharp.AzureAD/paket.references @@ -1,4 +1,3 @@ Pulumi.AzureAD Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/.gitignore b/providers/Pulumi.FSharp.AzureNative/.gitignore similarity index 100% rename from Pulumi.FSharp.AzureNative/.gitignore rename to providers/Pulumi.FSharp.AzureNative/.gitignore diff --git a/providers/Pulumi.FSharp.AzureNative/Myriad.fs b/providers/Pulumi.FSharp.AzureNative/Myriad.fs new file mode 100644 index 0000000..1b2354f --- /dev/null +++ b/providers/Pulumi.FSharp.AzureNative/Myriad.fs @@ -0,0 +1,3 @@ +module private Azure + +module Force = let private nonce = 1786119601 \ No newline at end of file diff --git a/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj b/providers/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj similarity index 72% rename from Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj rename to providers/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj index 9cda84d..8a1a640 100644 --- a/Pulumi.FSharp.Auth0/Pulumi.FSharp.Auth0.fsproj +++ b/providers/Pulumi.FSharp.AzureNative/Pulumi.FSharp.AzureNative.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions - fsharp pulumi auth0 identity oidc oauth - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) + fsharp pulumi azure NU1605,NU1608,FS0058,FS0044 true @@ -20,7 +17,7 @@ @@ -30,15 +27,15 @@ - + - - Myriad.fs + + - + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative/myriad.toml b/providers/Pulumi.FSharp.AzureNative/myriad.toml similarity index 100% rename from Pulumi.FSharp.AzureNative/myriad.toml rename to providers/Pulumi.FSharp.AzureNative/myriad.toml diff --git a/providers/Pulumi.FSharp.AzureNative/paket.references b/providers/Pulumi.FSharp.AzureNative/paket.references new file mode 100644 index 0000000..987482e --- /dev/null +++ b/providers/Pulumi.FSharp.AzureNative/paket.references @@ -0,0 +1,3 @@ +Pulumi.AzureNative +Myriad.Sdk +Pulumi.FSharp.Core \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/.gitignore b/providers/Pulumi.FSharp.AzureNativeV2/.gitignore similarity index 100% rename from Pulumi.FSharp.AzureNativeV2/.gitignore rename to providers/Pulumi.FSharp.AzureNativeV2/.gitignore diff --git a/providers/Pulumi.FSharp.AzureNativeV2/Myriad.fs b/providers/Pulumi.FSharp.AzureNativeV2/Myriad.fs new file mode 100644 index 0000000..3d36ed3 --- /dev/null +++ b/providers/Pulumi.FSharp.AzureNativeV2/Myriad.fs @@ -0,0 +1,3 @@ +module private AzureNativeV2 + +module Force = let private nonce = 23899918 \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj b/providers/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj similarity index 71% rename from Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj rename to providers/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj index 23d3ccd..f1062d2 100644 --- a/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj +++ b/providers/Pulumi.FSharp.AzureNativeV2/Pulumi.FSharp.AzureNativeV2.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi azure - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,17 +27,15 @@ - + - - Myriad.fs - - + + - + \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNativeV2/myriad.toml b/providers/Pulumi.FSharp.AzureNativeV2/myriad.toml similarity index 100% rename from Pulumi.FSharp.AzureNativeV2/myriad.toml rename to providers/Pulumi.FSharp.AzureNativeV2/myriad.toml diff --git a/Pulumi.FSharp.AzureNativeV2/paket.references b/providers/Pulumi.FSharp.AzureNativeV2/paket.references similarity index 78% rename from Pulumi.FSharp.AzureNativeV2/paket.references rename to providers/Pulumi.FSharp.AzureNativeV2/paket.references index 4733feb..fba66c2 100644 --- a/Pulumi.FSharp.AzureNativeV2/paket.references +++ b/providers/Pulumi.FSharp.AzureNativeV2/paket.references @@ -1,4 +1,3 @@ Pulumi.AzureNative Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Command/.gitignore b/providers/Pulumi.FSharp.Command/.gitignore similarity index 100% rename from Pulumi.FSharp.Command/.gitignore rename to providers/Pulumi.FSharp.Command/.gitignore diff --git a/providers/Pulumi.FSharp.Command/Myriad.fs b/providers/Pulumi.FSharp.Command/Myriad.fs new file mode 100644 index 0000000..ff78f2f --- /dev/null +++ b/providers/Pulumi.FSharp.Command/Myriad.fs @@ -0,0 +1,3 @@ +module private Command + +module Force = let private nonce = 1320620330 \ No newline at end of file diff --git a/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj b/providers/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj similarity index 77% rename from Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj rename to providers/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj index f3887ce..3e66310 100644 --- a/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj +++ b/providers/Pulumi.FSharp.Command/Pulumi.FSharp.Command.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi command - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Command/myriad.toml b/providers/Pulumi.FSharp.Command/myriad.toml similarity index 100% rename from Pulumi.FSharp.Command/myriad.toml rename to providers/Pulumi.FSharp.Command/myriad.toml diff --git a/Pulumi.FSharp.Command/paket.references b/providers/Pulumi.FSharp.Command/paket.references similarity index 76% rename from Pulumi.FSharp.Command/paket.references rename to providers/Pulumi.FSharp.Command/paket.references index 1213caa..421fa10 100644 --- a/Pulumi.FSharp.Command/paket.references +++ b/providers/Pulumi.FSharp.Command/paket.references @@ -1,4 +1,3 @@ Pulumi.Command Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/.gitignore b/providers/Pulumi.FSharp.DigitalOcean/.gitignore similarity index 100% rename from Pulumi.FSharp.DigitalOcean/.gitignore rename to providers/Pulumi.FSharp.DigitalOcean/.gitignore diff --git a/providers/Pulumi.FSharp.DigitalOcean/Myriad.fs b/providers/Pulumi.FSharp.DigitalOcean/Myriad.fs new file mode 100644 index 0000000..dc0b007 --- /dev/null +++ b/providers/Pulumi.FSharp.DigitalOcean/Myriad.fs @@ -0,0 +1,3 @@ +module private DigitalOcean + +module Force = let private nonce = 229151174 \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj b/providers/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj similarity index 77% rename from Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj rename to providers/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj index 6f79cf2..da03d58 100644 --- a/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj +++ b/providers/Pulumi.FSharp.DigitalOcean/Pulumi.FSharp.DigitalOcean.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi digitalocean - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.DigitalOcean/myriad.toml b/providers/Pulumi.FSharp.DigitalOcean/myriad.toml similarity index 100% rename from Pulumi.FSharp.DigitalOcean/myriad.toml rename to providers/Pulumi.FSharp.DigitalOcean/myriad.toml diff --git a/Pulumi.FSharp.DigitalOcean/paket.references b/providers/Pulumi.FSharp.DigitalOcean/paket.references similarity index 78% rename from Pulumi.FSharp.DigitalOcean/paket.references rename to providers/Pulumi.FSharp.DigitalOcean/paket.references index 0e778c0..70ef4ec 100644 --- a/Pulumi.FSharp.DigitalOcean/paket.references +++ b/providers/Pulumi.FSharp.DigitalOcean/paket.references @@ -1,4 +1,3 @@ Pulumi.DigitalOcean Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/.gitignore b/providers/Pulumi.FSharp.Docker/.gitignore similarity index 100% rename from Pulumi.FSharp.Docker/.gitignore rename to providers/Pulumi.FSharp.Docker/.gitignore diff --git a/providers/Pulumi.FSharp.Docker/Myriad.fs b/providers/Pulumi.FSharp.Docker/Myriad.fs new file mode 100644 index 0000000..5774a7e --- /dev/null +++ b/providers/Pulumi.FSharp.Docker/Myriad.fs @@ -0,0 +1,3 @@ +module private Docker + +module Force = let private nonce = 309386481 \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj b/providers/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj similarity index 77% rename from Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj rename to providers/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj index 80f79ad..a895bbf 100644 --- a/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj +++ b/providers/Pulumi.FSharp.Docker/Pulumi.FSharp.Docker.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi docker - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Docker/myriad.toml b/providers/Pulumi.FSharp.Docker/myriad.toml similarity index 100% rename from Pulumi.FSharp.Docker/myriad.toml rename to providers/Pulumi.FSharp.Docker/myriad.toml diff --git a/Pulumi.FSharp.Docker/paket.references b/providers/Pulumi.FSharp.Docker/paket.references similarity index 76% rename from Pulumi.FSharp.Docker/paket.references rename to providers/Pulumi.FSharp.Docker/paket.references index 98df8f5..632da32 100644 --- a/Pulumi.FSharp.Docker/paket.references +++ b/providers/Pulumi.FSharp.Docker/paket.references @@ -1,4 +1,3 @@ Pulumi.Docker Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Gcp/.gitignore b/providers/Pulumi.FSharp.Gcp/.gitignore similarity index 100% rename from Pulumi.FSharp.Gcp/.gitignore rename to providers/Pulumi.FSharp.Gcp/.gitignore diff --git a/providers/Pulumi.FSharp.Gcp/Myriad.fs b/providers/Pulumi.FSharp.Gcp/Myriad.fs new file mode 100644 index 0000000..f0734df --- /dev/null +++ b/providers/Pulumi.FSharp.Gcp/Myriad.fs @@ -0,0 +1,3 @@ +module private Gcp + +module Force = let private nonce = 1108446254 \ No newline at end of file diff --git a/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj b/providers/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj similarity index 77% rename from Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj rename to providers/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj index 9a14a43..75fd1aa 100644 --- a/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj +++ b/providers/Pulumi.FSharp.Gcp/Pulumi.FSharp.Gcp.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi gcp - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Gcp/myriad.toml b/providers/Pulumi.FSharp.Gcp/myriad.toml similarity index 100% rename from Pulumi.FSharp.Gcp/myriad.toml rename to providers/Pulumi.FSharp.Gcp/myriad.toml diff --git a/Pulumi.FSharp.Gcp/paket.references b/providers/Pulumi.FSharp.Gcp/paket.references similarity index 74% rename from Pulumi.FSharp.Gcp/paket.references rename to providers/Pulumi.FSharp.Gcp/paket.references index af28fa5..014276d 100644 --- a/Pulumi.FSharp.Gcp/paket.references +++ b/providers/Pulumi.FSharp.Gcp/paket.references @@ -1,4 +1,3 @@ Pulumi.Gcp Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/.gitignore b/providers/Pulumi.FSharp.Kubernetes/.gitignore similarity index 100% rename from Pulumi.FSharp.Kubernetes/.gitignore rename to providers/Pulumi.FSharp.Kubernetes/.gitignore diff --git a/providers/Pulumi.FSharp.Kubernetes/Myriad.fs b/providers/Pulumi.FSharp.Kubernetes/Myriad.fs new file mode 100644 index 0000000..4f2b160 --- /dev/null +++ b/providers/Pulumi.FSharp.Kubernetes/Myriad.fs @@ -0,0 +1,4 @@ +module private Kubernetes + +module Force = + let private nonce = 1167240649 diff --git a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj b/providers/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj similarity index 59% rename from Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj rename to providers/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj index 2786663..a56dedf 100644 --- a/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj +++ b/providers/Pulumi.FSharp.Kubernetes/Pulumi.FSharp.Kubernetes.fsproj @@ -2,18 +2,9 @@ net8.0 - F# computational expressions to reduce boilerplate in Pulumi code - Copyright 2020 - https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only - $(MSBuildProjectName) - https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi kubernetes - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true - 6.0.* @@ -31,15 +22,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Kubernetes/myriad.toml b/providers/Pulumi.FSharp.Kubernetes/myriad.toml similarity index 100% rename from Pulumi.FSharp.Kubernetes/myriad.toml rename to providers/Pulumi.FSharp.Kubernetes/myriad.toml diff --git a/Pulumi.FSharp.Kubernetes/paket.references b/providers/Pulumi.FSharp.Kubernetes/paket.references similarity index 77% rename from Pulumi.FSharp.Kubernetes/paket.references rename to providers/Pulumi.FSharp.Kubernetes/paket.references index 05c2393..92c8dd9 100644 --- a/Pulumi.FSharp.Kubernetes/paket.references +++ b/providers/Pulumi.FSharp.Kubernetes/paket.references @@ -1,4 +1,3 @@ Pulumi.Kubernetes Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Random/.gitignore b/providers/Pulumi.FSharp.Random/.gitignore similarity index 100% rename from Pulumi.FSharp.Random/.gitignore rename to providers/Pulumi.FSharp.Random/.gitignore diff --git a/providers/Pulumi.FSharp.Random/Myriad.fs b/providers/Pulumi.FSharp.Random/Myriad.fs new file mode 100644 index 0000000..906a3a4 --- /dev/null +++ b/providers/Pulumi.FSharp.Random/Myriad.fs @@ -0,0 +1,3 @@ +module private Random + +module Force = let private nonce = 1761217279 \ No newline at end of file diff --git a/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj b/providers/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj similarity index 77% rename from Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj rename to providers/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj index f41de20..936aac9 100644 --- a/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj +++ b/providers/Pulumi.FSharp.Random/Pulumi.FSharp.Random.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi random - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Myriad/myriad.toml b/providers/Pulumi.FSharp.Random/myriad.toml similarity index 100% rename from Pulumi.FSharp.Myriad/myriad.toml rename to providers/Pulumi.FSharp.Random/myriad.toml diff --git a/Pulumi.FSharp.Random/paket.references b/providers/Pulumi.FSharp.Random/paket.references similarity index 76% rename from Pulumi.FSharp.Random/paket.references rename to providers/Pulumi.FSharp.Random/paket.references index f481ac1..0139428 100644 --- a/Pulumi.FSharp.Random/paket.references +++ b/providers/Pulumi.FSharp.Random/paket.references @@ -1,4 +1,3 @@ Pulumi.Random Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/.gitignore b/providers/Pulumi.FSharp.Tls/.gitignore similarity index 100% rename from Pulumi.FSharp.Tls/.gitignore rename to providers/Pulumi.FSharp.Tls/.gitignore diff --git a/providers/Pulumi.FSharp.Tls/Myriad.fs b/providers/Pulumi.FSharp.Tls/Myriad.fs new file mode 100644 index 0000000..1ca7514 --- /dev/null +++ b/providers/Pulumi.FSharp.Tls/Myriad.fs @@ -0,0 +1,3 @@ +module private Tls + +module Force = let private nonce = 15078280 \ No newline at end of file diff --git a/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj b/providers/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj similarity index 77% rename from Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj rename to providers/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj index 8be1cac..958d373 100644 --- a/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj +++ b/providers/Pulumi.FSharp.Tls/Pulumi.FSharp.Tls.fsproj @@ -5,12 +5,9 @@ F# computational expressions to reduce boilerplate in Pulumi code Copyright 2021 https://github.com/UnoSD/Pulumi.FSharp.Extensions - GPL-2.0-only $(MSBuildProjectName) https://github.com/UnoSD/Pulumi.FSharp.Extensions fsharp pulumi tls - Stefano d'Antonio (UnoSD) - Stefano d'Antonio (UnoSD) NU1605,NU1608,FS0058,FS0044 true @@ -30,15 +27,13 @@ - + - - Myriad.fs - + \ No newline at end of file diff --git a/Pulumi.FSharp.Random/myriad.toml b/providers/Pulumi.FSharp.Tls/myriad.toml similarity index 100% rename from Pulumi.FSharp.Random/myriad.toml rename to providers/Pulumi.FSharp.Tls/myriad.toml diff --git a/Pulumi.FSharp.Tls/paket.references b/providers/Pulumi.FSharp.Tls/paket.references similarity index 74% rename from Pulumi.FSharp.Tls/paket.references rename to providers/Pulumi.FSharp.Tls/paket.references index 9e0672a..a2b31b2 100644 --- a/Pulumi.FSharp.Tls/paket.references +++ b/providers/Pulumi.FSharp.Tls/paket.references @@ -1,4 +1,3 @@ Pulumi.Tls Pulumi.FSharp -FSharp.Core Myriad.Sdk \ No newline at end of file diff --git a/Pulumi.FSharp.AzureNative.Common/Locations.fs b/src/Pulumi.FSharp.AzureNative.Common/Locations.fs similarity index 99% rename from Pulumi.FSharp.AzureNative.Common/Locations.fs rename to src/Pulumi.FSharp.AzureNative.Common/Locations.fs index e60d410..99f3eb5 100644 --- a/Pulumi.FSharp.AzureNative.Common/Locations.fs +++ b/src/Pulumi.FSharp.AzureNative.Common/Locations.fs @@ -224,4 +224,4 @@ let locationsMap = |> Map.add "(Middle East) UAE Central" "uaecentral" |> Map.add "brazilsoutheast" "brazilsoutheast" |> Map.add "Brazil Southeast" "brazilsoutheast" - |> Map.add "(South America) Brazil Southeast" "brazilsoutheast" \ No newline at end of file + |> Map.add "(South America) Brazil Southeast" "brazilsoutheast" diff --git a/src/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs b/src/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs new file mode 100644 index 0000000..b4e2422 --- /dev/null +++ b/src/Pulumi.FSharp.AzureNative.Common/NamingConventions.fs @@ -0,0 +1,46 @@ +module Pulumi.FSharp.NamingConventions.Azure + +open AzureLocations +open Pulumi + +// https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming + +module Region = + let private shorten (regionName: string) = + regionName + .Replace("europe", "eu") + .Replace("brazil", "br") + .Replace("australia", "au") + .Replace("switzerland", "sw") + .Replace("pacific", "pac") + .Replace("unitedstates", "us") + .Replace("central", "c") + .Replace("north", "n") + .Replace("south", "s") + .Replace("east", "e") + .Replace("west", "w") + + let private configuredRegion = Config("azure-native").Get("location") + + let shortName = + locationsMap + |> Map.tryFind configuredRegion + |> Option.map (fun x -> + x + |> shorten + ) + |> Option.defaultWith (fun () -> + failwith $"Missing or incorrect azure-native:location: {configuredRegion}" + ) + +module Resource = + let private woa = + match Config().Get("workloadOrApplication") with + | null + | "" -> "" + | value -> $"{value}-" + + let name resourceType (instanceNumber: int) = + $"{resourceType}-{woa}{Deployment.Instance.StackName}-{Region.shortName}-{instanceNumber:D3}" + + let nameOne resourceType = name resourceType 1 diff --git a/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj b/src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj similarity index 85% rename from Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj rename to src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj index 25296a9..f4fa60c 100644 --- a/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj +++ b/src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj @@ -8,5 +8,5 @@ - + \ No newline at end of file diff --git a/src/Pulumi.FSharp.AzureNative.Common/paket.references b/src/Pulumi.FSharp.AzureNative.Common/paket.references new file mode 100644 index 0000000..3eb535b --- /dev/null +++ b/src/Pulumi.FSharp.AzureNative.Common/paket.references @@ -0,0 +1 @@ +Pulumi.FSharp \ No newline at end of file diff --git a/src/Pulumi.FSharp.Core/Assets.fs b/src/Pulumi.FSharp.Core/Assets.fs new file mode 100644 index 0000000..5f537c1 --- /dev/null +++ b/src/Pulumi.FSharp.Core/Assets.fs @@ -0,0 +1,60 @@ +module Pulumi.FSharp.Assets + +open System.Collections.Generic +open Pulumi + +type FileArchive = { + ArchivePath: string +} with + + member this.ToPulumiType = FileArchive(this.ArchivePath) + +type RemoteArchive = { + ArchiveUri: string +} with + + member this.ToPulumiType = RemoteArchive(this.ArchiveUri) + +type RemoteAsset = { + Uri: string +} with + + member this.ToPulumiType = RemoteAsset(this.Uri) + +type FileAsset = { + Path: string +} with + + member this.ToPulumiType = FileAsset(this.Path) + +type StringAsset = { + Text: string +} with + + member this.ToPulumiType = StringAsset(this.Text) + +type Any = { Value: obj } + +type Asset = + | File of FileAsset + | FileArchive of FileArchive + | Remote of RemoteAsset + | RemoteArchive of RemoteArchive + | String of StringAsset + +type AssetArchive = { + Assets: Map +} with + + member this.ToPulumiType = + this.Assets + |> Map.map (fun _ a -> + match a with + | File f -> f.ToPulumiType :> AssetOrArchive + | FileArchive f -> f.ToPulumiType :> AssetOrArchive + | Remote f -> f.ToPulumiType :> AssetOrArchive + | RemoteArchive f -> f.ToPulumiType :> AssetOrArchive + | String f -> f.ToPulumiType :> AssetOrArchive + ) + |> Dictionary + |> AssetArchive diff --git a/Pulumi.FSharp.Core/Config.fs b/src/Pulumi.FSharp.Core/Config.fs similarity index 60% rename from Pulumi.FSharp.Core/Config.fs rename to src/Pulumi.FSharp.Core/Config.fs index d1f6f96..d854450 100644 --- a/Pulumi.FSharp.Core/Config.fs +++ b/src/Pulumi.FSharp.Core/Config.fs @@ -6,12 +6,12 @@ let private pulumiConfig = Lazy(fun _ -> Config()) type Config() = member _.Item - with get(name) = pulumiConfig.Value.Require(name) + with get (name) = pulumiConfig.Value.Require(name) type SecretConfig() = member _.Item - with get(name) = pulumiConfig.Value.RequireSecret(name) - + with get (name) = pulumiConfig.Value.RequireSecret(name) + // Type provider for YAML config variables let config = Config() -let secret = SecretConfig() \ No newline at end of file +let secret = SecretConfig() diff --git a/Pulumi.FSharp.Core/FAKE.yml b/src/Pulumi.FSharp.Core/FAKE.yml similarity index 100% rename from Pulumi.FSharp.Core/FAKE.yml rename to src/Pulumi.FSharp.Core/FAKE.yml diff --git a/src/Pulumi.FSharp.Core/OutputBuilder.fs b/src/Pulumi.FSharp.Core/OutputBuilder.fs new file mode 100644 index 0000000..a3548f2 --- /dev/null +++ b/src/Pulumi.FSharp.Core/OutputBuilder.fs @@ -0,0 +1,27 @@ +module Pulumi.FSharp.Outputs + +open Pulumi +open System.Threading.Tasks + +type OutputBuilder internal (isSecret) = + let create (value: 'a) = + match isSecret with + | true -> Output.CreateSecret<'a>(value) + | false -> Output.Create<'a>(value) + + member __.Return(x: 'a) = create x + + member __.Bind(comp: Output<'a>, func: 'a -> Output<'b>) = comp.Apply<'b>(func) + + member this.Bind(comp: Task<'a>, func: 'a -> Output<'b>) = + this.Bind( + (match isSecret with + | false -> Output.Create<'a>(comp) + | true -> Output.CreateSecret<'a>(comp)), + func + ) + + member __.ReturnFrom(v: Output<_>) = v + +let output = OutputBuilder(isSecret = false) +let secretOutput = OutputBuilder(isSecret = true) diff --git a/src/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj b/src/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj new file mode 100644 index 0000000..ab66b22 --- /dev/null +++ b/src/Pulumi.FSharp.Core/Pulumi.FSharp.Core.fsproj @@ -0,0 +1,17 @@ + + + + net8.0 + fsharp pulumi azure + NU1605,NU1608 + true + + + + + + + + + + \ No newline at end of file diff --git a/src/Pulumi.FSharp.Core/build.fsx b/src/Pulumi.FSharp.Core/build.fsx new file mode 100644 index 0000000..5cb582e --- /dev/null +++ b/src/Pulumi.FSharp.Core/build.fsx @@ -0,0 +1,119 @@ +#r "paket: +nuget FSharp.Core 4.7.2 +nuget Fake.DotNet.Cli +nuget Fake.IO.FileSystem +nuget Fake.BuildServer.TeamFoundation +nuget Fake.Core.CommandLineParsing +nuget Fake.Core.Xml +nuget Fake.Core.Target //" +#load ".fake/build.fsx/intellisense.fsx" +#nowarn "52" + +open Fake.IO.Globbing.Operators +open Fake.Core.TargetOperators +open Fake.BuildServer +open Fake.DotNet +open Fake.Core +open System.IO + +BuildServer.install [ TeamFoundation.Installer ] + +let args = + Context.forceFakeContext().Arguments + |> Array.ofList + |> Docopt( + """ +usage: dotnet_fake_run_build.fsx [options] + +options: + -t + """ + ) + .Parse + +let getTarget args = + match Map.tryFind "-t" args with + | Some(Argument t) -> t + | _ -> "Default" + +let getProjectFile () = + !! "**/Pulumi.FSharp.Core.fsproj" + |> Seq.head + +Target.create + "Install" + (fun _ -> + DotNet.Options.Create() + |> DotNet.install DotNet.Versions.FromGlobalJson + |> ignore + ) + +Target.create + "Build" + (fun _ -> + let buildOptions options : DotNet.BuildOptions = { + options with + Common = { + options.Common with + Verbosity = Some DotNet.Verbosity.Quiet + } + NoLogo = true + } + + getProjectFile () + |> DotNet.build buildOptions + ) + +Target.create + "Pack" + (fun _ -> + getProjectFile () + |> DotNet.pack (fun po -> { + po with + MSBuildParams = { + po.MSBuildParams with + DisableInternalBinLog = true + } + }) + ) + +Target.create + "Push" + (fun _ -> + let vaultFile = + Environment.environVarOrNone "FAKEVAULTFILE_SECUREFILEPATH" + |> Option.defaultValue "Pulumi.FSharp.Extensions.vault.json" + |> FileInfo + + let vault = + match Vault.fromFakeEnvironmentOrNone (), vaultFile.Exists with + | Some vault, _ -> vault + | None, true -> + vaultFile.OpenText().ReadToEnd() + |> Vault.fromJson + | None, false -> failwith "Unsupported source for secrets" + + let pushOptions options : DotNet.NuGetPushOptions = { + options with + PushParams = { + options.PushParams with + ApiKey = Vault.tryGet "nuGetApiKey" vault + Source = Some "https://api.nuget.org/v3/index.json" + } + } + + !! "**/Pulumi.FSharp.Core.*.nupkg" + |> Seq.exactlyOne + |> DotNet.nugetPush pushOptions + ) + +Target.create "Default" ignore + +"Install" +==> "Pack" +=?> ("Push", not BuildServer.isLocalBuild) +==> "Default" + +args +|> getTarget +|> Target.runOrDefaultWithArguments diff --git a/Pulumi.FSharp.Core/build.fsx.lock b/src/Pulumi.FSharp.Core/build.fsx.lock similarity index 100% rename from Pulumi.FSharp.Core/build.fsx.lock rename to src/Pulumi.FSharp.Core/build.fsx.lock diff --git a/src/Pulumi.FSharp.Core/paket.references b/src/Pulumi.FSharp.Core/paket.references new file mode 100644 index 0000000..3eb535b --- /dev/null +++ b/src/Pulumi.FSharp.Core/paket.references @@ -0,0 +1 @@ +Pulumi.FSharp \ No newline at end of file diff --git a/src/Pulumi.FSharp.Myriad/AstHelpers.fs b/src/Pulumi.FSharp.Myriad/AstHelpers.fs new file mode 100644 index 0000000..6490867 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/AstHelpers.fs @@ -0,0 +1,323 @@ +module AstHelpers + +open FSharp.Compiler.Syntax +open FSharp.Compiler.SyntaxTrivia +open FSharp.Compiler.Text +open Core +open Myriad.Core.Ast +open Myriad.Core.AstExtensions + +type SimplePat = + /// str + static member id(str) = + SynSimplePat.Id(Ident.Create(str), None, false, false, false, range.Zero) + + static member hashTyped(str, type': string) = + SynSimplePat.CreateTyped( + Ident.Create str, + SynType.HashConstraint(SynType.CreateLongIdent(type'), range.Zero) + ) + + static member typed(str, type': string) = + SynSimplePat.Typed(SimplePat.id (str), SynType.CreateLongIdent(type'), range.Zero) + +type SynPat with + + static member CreateTuple(args: SynPat list) = SynPat.Tuple(false, args, Range.Zero) + +type Pat = + static member tuple(left, right) = + SynPat.CreateTuple( + [ + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(left), []) + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(right), []) + ] + ) + + static member tuple(one, two, three) = + SynPat.CreateTuple( + [ + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(one), []) + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(two), []) + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(three), []) + ] + ) + + static member tuple(left: SynPat, right: SynPat) = + SynPat.CreateTuple( + [ + left + right + ] + ) + + static member paren(pat: SynPat) = SynPat.CreateParen(pat) + + static member ident(str) = + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(str), []) + + static member null' = SynPat.Null(range.Zero) + + static member wild = SynPat.Wild(range.Zero) + + static member typed(name, typeName: string) = + SynPat.Typed(Pat.ident (name), SynType.CreateLongIdent(typeName), range.Zero) + |> SynPat.CreateParen + +type Expr = + /// str + static member ident(str) = SynExpr.CreateIdent(Ident.Create(str)) + + /// str.str + static member longIdent(str) = + SynExpr.CreateLongIdent(LongIdentWithDots.CreateString(str)) + + /// (exp) + static member paren(exp) = SynExpr.CreateParen(exp) + + /// () + static member unit = SynExpr.CreateUnit + + /// null + static member null' = SynExpr.CreateNull + + /// (left, right) + static member tuple(left, right) = + SynExpr.CreateTuple( + [ + left + right + ] + ) + + /// (left, right) + static member tuple(one, two, three) = + SynExpr.CreateTuple( + [ + one + two + three + ] + ) + + /// (a, b, c, ...) + static member tuple(exps) = SynExpr.CreateTuple(exps) + + /// [ ... ] + static member list(exps) = + SynExpr.ArrayOrList(false, exps, range.Zero) + + /// [ ... ] + static member list(idents) = + SynExpr.ArrayOrList( + false, + idents + |> List.map Expr.ident, + range.Zero + ) + + /// exp1 + /// exp2 + /// ... + static member sequential(exps) = SynExpr.CreateSequential(exps) + + /// func arg + static member app(func, arg) = SynExpr.CreateApp(func, arg) + + /// func arg1 arg2 ... + static member app(func: SynExpr, args: SynExpr list) = + match args with + | [] -> Expr.app (func, Expr.unit) + | [ x ] -> Expr.app (func, x) + | x :: xs -> Expr.app (Expr.app (func, x), xs) + + /// func arg1 arg2 ... + static member app(func: string, args: SynExpr list) = + Expr.app ((Expr.longIdent (func): SynExpr), args) + + /// func arg + static member app(func: string, arg: string) = + Expr.app (Expr.longIdent (func), Expr.ident (arg)) + + /// func arg + static member app(func: string, arg: SynExpr) = Expr.app (Expr.longIdent (func), arg) + + /// func (arg1, arg2, ...) + static member appTuple(func: string, args) = + Expr.app ( + func, + Expr.paren ( + Expr.tuple ( + args + |> List.map Expr.ident + ) + ) + ) + + static member match'(expr, clauses) = SynExpr.CreateMatch(expr, clauses) + + /// value + static member const'(value) = SynExpr.CreateConstString(value) + + /// failwith msg + static member failwith(msg) = + Expr.app ("failwith", Expr.const' (msg)) + + static member let'(name, args: SynPat list, exp) = + SynExpr.LetOrUse( + false, + false, + [ + SynBinding.Let( + pattern = SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), args), + expr = exp + ) + ], + Expr.unit, + range.Zero, + { InKeyword = None } + ) + + static member let'(name, args, exp) = + SynExpr.LetOrUse( + false, + false, + [ + SynBinding.Let( + pattern = + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString(name), + (args + |> List.map Pat.ident) + ), + expr = exp + ) + ], + Expr.unit, + range.Zero, + { InKeyword = None } + ) + + static member set(identString, exp) = + SynExpr.Set(Expr.longIdent (identString), exp, range.Zero) + + static member methodCall(identString, exps) = + SynExpr.CreateInstanceMethodCall( + LongIdentWithDots.CreateString(identString), + Expr.paren (Expr.tuple (exps)) + ) + + static member lambda(args: SynSimplePat list, exp: SynExpr) = + let mapArgs = + function + | SynSimplePat.Id(x, _, _, _, _, _) -> + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(x.idText), []) + | SynSimplePat.Typed(SynSimplePat.Id(ident, _, _, _, _, _), targetType, _) -> + SynPat.CreateParen( + SynPat.CreateTyped( + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(ident.idText), []), + targetType + ) + ) + | x -> + sprintf "%A" x + |> failwith + + let pats = + args + |> List.map mapArgs + + let pat = + match pats with + | [] -> SynPat.CreateTuple(pats) + | [ _ ] -> SynPat.CreateTuple(pats) + | _ -> SynPat.CreateParen(SynPat.CreateTuple(pats)) + + SynExpr.CreateLambda([ pat ], exp) + + static member lambda(args: string list, exp) = + SynExpr.CreateLambda( + args + |> List.map (fun x -> SynPat.CreateLongIdent(LongIdentWithDots.CreateString(x), [])), + exp + ) + +//match args with +//| [ ] -> Expr.lambda(List.empty, exp) +//| [x] -> Expr.lambda([ SimplePat.id(x) ], exp) +//| x :: xs -> Expr.lambda([ SimplePat.id(x) ], Expr.lambda(xs, exp)) + +type Match = + static member clause(pat, expr) = + SynMatchClause.SynMatchClause( + pat, + None, + expr, + range.Zero, + DebugPointAtTarget.No, + { + ArrowRange = Some range.Zero + BarRange = Some range.Zero + } + ) + +type Namespace = + static member namespace'(name, content) = + SynModuleOrNamespace.CreateNamespace(Ident.CreateLong name, decls = content) + +type Attribute = + static member attribute(name) = + SynAttributeList.Create(SynAttribute.Create(name)) + +type Module = + static member module'(name, content, attributes) = + let componentInfo = + SynComponentInfo.Create([ Ident.Create name ], attributes = attributes) + + SynModuleDecl.NestedModule( + componentInfo, + false, + content, + false, + Range.Zero, + { + EqualsRange = Some Range.Zero + ModuleKeyword = Some Range.Zero + } + ) + + static member module'(name, content) = Module.module' (name, content, []) + + static member autoOpenModule(name, content) = + Module.module' (name, content, [ Attribute.attribute ("AutoOpen") ]) + + static member open'(namespaceOrModule) = + SynOpenDeclTarget.ModuleOrNamespace( + LongIdentWithDots.CreateString(namespaceOrModule).Lid, + range.Zero + ) + |> SynModuleDecl.CreateOpen + + static member type'(name, content) = + let t = + SynTypeDefn.SynTypeDefn( + SynComponentInfo.Create(Ident.CreateLong(name)), + SynTypeDefnRepr.ObjectModel( + SynTypeDefnKind.Unspecified, + [ SynMemberDefn.CreateImplicitCtor() ], + Range.Zero + ), + content, + None, + Range.Zero, + { + SynTypeDefnTrivia.TypeKeyword = Some Range.Zero + EqualsRange = Some Range.Zero + WithKeyword = None + } + ) + + SynModuleDecl.Types([ t ], Range.Zero) + +type Type = + static member ctor() = SynMemberDefn.CreateImplicitCtor() diff --git a/src/Pulumi.FSharp.Myriad/Attribute.fs b/src/Pulumi.FSharp.Myriad/Attribute.fs new file mode 100644 index 0000000..ed3d776 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Attribute.fs @@ -0,0 +1,19 @@ +module AstAttribute + +open FSharp.Compiler.Text +open FSharp.Compiler.Syntax +open Myriad.Core.AstExtensions + +let createAttribute name = + SynAttributeList.Create(SynAttribute.Create(name)) + +let createAttributeWithArg (name: string) (arg: string) = + let o: SynAttribute = { + TypeName = LongIdentWithDots.CreateString(name) + ArgExpr = SynExpr.CreateParen(SynExpr.CreateConstString(arg)) + Target = None + AppliesToGetterAndSetter = false + Range = range.Zero + } + + SynAttributeList.Create(o) diff --git a/src/Pulumi.FSharp.Myriad/Builder.fs b/src/Pulumi.FSharp.Myriad/Builder.fs new file mode 100644 index 0000000..56c6149 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Builder.fs @@ -0,0 +1,228 @@ +module AstBuilder + +open AstOperations +open AstInstance +open AstHelpers +open AstMember +open AstYield +open AstRun +open Core + +open System.Text.RegularExpressions +open FSharp.Text.RegexProvider + +// "azure:compute/virtualMachine:VirtualMachine" +// CloudProvider - Always the same for each schema (azure here) +type InfoProvider = + Regex<"(?[a-z0-9-]+):(?[A-Za-z0-9.]+)(/(?\w+))?:(?\w+)"> + +let typeInfoProvider = InfoProvider(RegexOptions.Compiled) + +type BuilderType = + | Type of InfoProvider.MatchType + | Resource of InfoProvider.MatchType + +let private argIdent = Pat.ident ("arg") + +let private argToInput = Expr.app ("input", "arg") + +let private args = Expr.ident ("args") + +let private funcIdent = Expr.ident ("func") + +let private yieldReturnExpr = Expr.list ([ Expr.ident ("id") ]) + +let private combineExpr = Expr.app ("_combine", "args") + +let private combineCrosExpr = Expr.app ("_combineCros", "args") + +let private combineArgs = Pat.ident ("args") + +let private combineMember = + createMember' None "this" "Combine" combineArgs [] combineExpr + +let private combineCrosMember = + createMember' None "this" "Combine" combineArgs [] combineCrosExpr + +let private forArgs = Pat.paren (Pat.tuple ("args", "delayedArgs")) + +let private forExpr = + Expr.methodCall ( + "this.Combine", + [ + Expr.ident ("args") + Expr.app ("delayedArgs", Expr.unit) + ] + ) + +let private forMember = createMember' None "this" "For" forArgs [] forExpr + +let private delayMember = + createMember "Delay" (Pat.ident ("f")) [] (Expr.app ("f", [])) + +let private zeroMember = createMember "Zero" Pat.wild [] Expr.unit + +let private yieldMember isType = + createYield isType yieldReturnExpr yieldReturnExpr + +let private newNameExpr = + Expr.tuple (Expr.ident ("newName"), Expr.ident ("args"), Expr.ident ("cros")) + +let private nameMember = createNameOperation newNameExpr + +let createYieldFor argsType propType = + let setExpr = + Expr.sequential ( + [ + Expr.set ( + "args." + + propType.Name, + argToInput + ) + args + ] + ) + + let expr = + Expr.list ( + [ + Expr.paren ( + Expr.sequential ( + [ + Expr.let' ("func", [ Pat.typed ("args", argsType) ], setExpr) + funcIdent + ] + ) + ) + ] + ) + + let cros = Expr.list ([ Expr.ident ("id") ]) + + [ createYield' (not propType.IsResource) argIdent expr cros ] + +let mapOperationType yieldSelector opsSelector = + function + | { + Type = PRef _ + CanGenerateYield = true + } & pt -> yieldSelector pt + | { Type = PRef _ } & pt + | { Type = PString } & pt + | { Type = PInteger } & pt + | { Type = PFloat } & pt + | { Type = PBoolean } & pt + | { Type = PArray _ } & pt + | { Type = PUnion _ } & pt + | { Type = PJson _ } & pt + | { Type = PMap _ } & pt + | { Type = PAssetOrArchive _ } & pt + | { Type = PAny _ } & pt + | { Type = PArchive _ } & pt -> opsSelector pt + +let createBuilderClass isType name pTypes = + let argsType = $"{name}Args" + + let apply varname = + let args = + match varname with + | "args" -> argsType + // in Pulumi.Kubernetes 4.10.0, two new types were added which + // use ComponentResourceOptions instead of CustomResourceOptions + // This check should be made generic for all ResourceOption types + | _ when + [ + "ConfigFile" + "ConfigGroup" + ] + |> List.contains name + -> + "ComponentResourceOptions" + | _ -> "CustomResourceOptions" + + Expr.app ( + "List.fold", + [ + Expr.paren ( + Expr.lambda ( + [ + varname + "f" + ], + Expr.app ("f", varname) + ) + ) + Expr.paren (createInstance args Expr.unit) + Expr.ident (varname) + ] + ) + + let resourceRunExp () = + Expr.paren (Expr.tuple (Expr.ident ("name"), (apply "args"), (apply "cros"))) + |> createInstance name + + let createOperations = + mapOperationType (createYieldFor argsType) (createOperationsFor' argsType) + + let operations = + pTypes + |> Seq.collect createOperations + + let inputListOfInput argName = + Expr.app ( + Expr.ident ("inputList"), + Expr.list ([ Expr.app (Expr.ident ("input"), Expr.ident (argName)) ]) + ) + + let inputListOfResources argName = + Expr.app ( + Expr.ident ("inputList"), + Expr.paren ( + Expr.app ( + Expr.longIdent ("Seq.map"), + Expr.app (Expr.ident ("input"), Expr.ident (argName)) + ) + ) + ) + + Module.type' ( + name + + "Builder", + [ + //Type.ctor() + + yieldMember isType + + if isType then + apply "args" + |> createRunType + else + resourceRunExp () + |> createRunResource + + if isType then combineMember else combineCrosMember + forMember + delayMember + zeroMember + + yield! if isType then [] else [ nameMember ] + + yield! operations + + if not isType then + croOperation + "DependsOn" + "Ensure this resource gets created after its dependency" + "dependency" + (inputListOfInput "dependency") + true + + if not isType then + croOperation + "DependsOn" + "Ensure this resource gets created after its dependency" + "dependency" + (inputListOfResources "dependency") + false + ] + ) diff --git a/src/Pulumi.FSharp.Myriad/BuilderInstance.fs b/src/Pulumi.FSharp.Myriad/BuilderInstance.fs new file mode 100644 index 0000000..47cd0ec --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/BuilderInstance.fs @@ -0,0 +1,76 @@ +module BuilderInstance + +open FSharp.Compiler.Syntax +open AstOperations +open AstInstance +open AstBuilder +open AstLet +open Myriad.Core.AstExtensions +open Core + +let createBuilderInstance description typeName pTypes = + let isYield, ops = + Array.partition + (fun x -> + x.CanGenerateYield + && mapOperationType (fun _ -> true) (fun _ -> false) x + ) + pTypes + + let builderNames = + isYield + |> Array.map ( + function + | { Type = PRef t } -> + String.split ':' t + |> Array.last + |> toCamelCase + | x -> failwith $"{x} type should not use yield" + ) + + let listItem = sprintf " - %s" + + let title text = $"*** {text} ***" + + let builderNamesSection = + match + builderNames + |> List.ofArray + with + | [] -> [] + | bn -> + "" + :: title "Nested computational expressions" + :: (List.map listItem bn) + + let descriptionShort = + description + |> String.split '\n' + |> Array.head + + let ccTypeName = + if typeName = "Input" then + "input'" + else + typeName + |> toCamelCase + + [ + yield descriptionShort + yield "" + yield title "Operations" + yield! + ops + |> Array.map (fun x -> listItem x.OperationName) + |> Array.collect (fun x -> [| + "" + x + |]) + yield! + builderNamesSection + |> List.collect (fun x -> [ + "" + x + ]) + ] + |> createLet ccTypeName (createInstance $"{typeName}Builder" SynExpr.CreateUnit) diff --git a/src/Pulumi.FSharp.Myriad/Core.fs b/src/Pulumi.FSharp.Myriad/Core.fs new file mode 100644 index 0000000..ea38a07 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Core.fs @@ -0,0 +1,27 @@ +module Core + +open System +open FSharp.Compiler.Syntax +open Myriad.Core.Ast +open Myriad.Core.AstExtensions + +let private (|FirstLetter|) (p: string) = p[0], p.Substring(1) + +let private changeInitial change value = + let (FirstLetter(x, xs)) = value + + sprintf "%c%s" (change x) xs + +let toCamelCase = changeInitial Char.ToLower + +let toPascalCase = changeInitial Char.ToUpper + +let createPattern name args = + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), args) + +let (|Lazy|) (lazy': Lazy<'a>) = lazy'.Value + +module String = + let split (char: char) (value: string) = value.Split(char) + + let contains (subString: string) (value: string) = value.Contains(subString) diff --git a/Pulumi.FSharp.Myriad/Debug.fs b/src/Pulumi.FSharp.Myriad/Debug.fs similarity index 62% rename from Pulumi.FSharp.Myriad/Debug.fs rename to src/Pulumi.FSharp.Myriad/Debug.fs index bfd952e..73c7dc3 100644 --- a/Pulumi.FSharp.Myriad/Debug.fs +++ b/src/Pulumi.FSharp.Myriad/Debug.fs @@ -8,18 +8,20 @@ type private Filter<'a> = | Exclude of 'a list type private Filters = { - Providers: Filter - Resources: Filter - Types: Filter - } + Providers: Filter + Resources: Filter + Types: Filter +} let private azureFilters = { - Types = Include [ + Types = + Include [ "WindowsVirtualMachineSourceImageReference" "WindowsVirtualMachineOsDisk" "NetworkInterfaceIpConfiguration" ] - Resources = Include [ + Resources = + Include [ "Blob" "WindowsVirtualMachine" "NetworkInterface" @@ -30,16 +32,18 @@ let private azureFilters = { "Account" "Container" ] - Providers = Include [ + Providers = + Include [ "compute" "storage" "network" "core" - ] - } + ] +} let private azureNativeFilters = { - Types = Include [ + Types = + Include [ "VirtualMachineSourceImageReference" "VirtualMachineOsDisk" "NetworkInterfaceIPConfiguration" @@ -55,7 +59,8 @@ let private azureNativeFilters = { "Sku" "ManagedDiskParameters" ] - Resources = Include [ + Resources = + Include [ "Blob" "VirtualMachine" "NetworkInterface" @@ -69,41 +74,35 @@ let private azureNativeFilters = { "BlobContainer" "StorageAccount" ] - Providers = Include [ + Providers = + Include [ "compute" "storage" "network" "core" "resources" - ] - } + ] +} let private azureAdFilters = { - Types = Include [ - ] - Resources = Include [ + Types = Include [] + Resources = + Include [ "Application" "Group" ] - Providers = Include [ - "index" - ] - } + Providers = Include [ "index" ] +} let private awsFilters = { - Types = Include [ - "BucketWebsite" - ] - Resources = Include [ - "Bucket" - ] - Providers = Include [ - "s3" - ] - } + Types = Include [ "BucketWebsite" ] + Resources = Include [ "Bucket" ] + Providers = Include [ "s3" ] +} let private kubernetesFilters = { - Types = Include [ + Types = + Include [ "ServiceSpecType" "ServiceSpec" "DeploymentSpec" @@ -114,52 +113,73 @@ let private kubernetesFilters = { "ContainerPort" "ObjectMeta" ] - Resources = Include [ - "Deployment" - ] - Providers = Include [ + Resources = Include [ "Deployment" ] + Providers = + Include [ "core/v1" "apps/v1" - "meta/v1" ] - } + "meta/v1" + ] +} let private merge left right = match left, right with - | Include li, Include ri -> li @ ri |> Include - | Exclude le, Include re -> le @ re |> Exclude - | _ -> failwith "Using include and exclude debug filters together is not supported" + | Include li, Include ri -> + li @ ri + |> Include + | Exclude le, Include re -> + le @ re + |> Exclude + | _ -> failwith "Using include and exclude debug filters together is not supported" let private join filtersList = let reduce select = - filtersList |> List.map select |> List.reduce merge - + filtersList + |> List.map select + |> List.reduce merge + { - Types = reduce (fun f -> f.Types) + Types = reduce (fun f -> f.Types) Resources = reduce (fun f -> f.Resources) Providers = reduce (fun f -> f.Providers) } let private isDebug = false -let private filters = join [ azureFilters; awsFilters; kubernetesFilters; azureAdFilters; azureNativeFilters ] + +let private filters = + join [ + azureFilters + awsFilters + kubernetesFilters + azureAdFilters + azureNativeFilters + ] let private typeSelector builderType = match (builderType, filters.Types, filters.Resources) with - | Type t, Include it, _ - | Resource t, _ , Include it -> List.contains t.ResourceType.Value it - | Type t, Exclude et, _ - | Resource t, _ , Exclude et -> not <| List.contains t.ResourceType.Value et + | Type t, Include it, _ + | Resource t, _, Include it -> List.contains t.ResourceType.Value it + | Type t, Exclude et, _ + | Resource t, _, Exclude et -> + not + <| List.contains t.ResourceType.Value et let private providerSelector provider = match filters.Providers with | Include ps -> List.contains provider ps - | Exclude ps -> not <| List.contains provider ps + | Exclude ps -> + not + <| List.contains provider ps let private debugTupleArrayFilter filter values = - values |> - if isDebug then - Array.filter (fst >> filter) - else - id + values + |> if isDebug then + Array.filter ( + fst + >> filter + ) + else + id let debugFilterTypes types = debugTupleArrayFilter typeSelector types diff --git a/Pulumi.FSharp.Myriad/Generator.fs b/src/Pulumi.FSharp.Myriad/Generator.fs similarity index 60% rename from Pulumi.FSharp.Myriad/Generator.fs rename to src/Pulumi.FSharp.Myriad/Generator.fs index 6658b12..bc3f5ec 100644 --- a/Pulumi.FSharp.Myriad/Generator.fs +++ b/src/Pulumi.FSharp.Myriad/Generator.fs @@ -16,53 +16,55 @@ type PulumiFSharpGenerator() = member this.Generate(context) = let getVersionFromFsproj (projectFile: FileInfo) (provider: string) = - let fsproj : XmlDocument = XmlDocument() - in do fsproj.Load (projectFile.OpenText()) - + let fsproj: XmlDocument = XmlDocument() in + do fsproj.Load(projectFile.OpenText()) + fsproj.SelectNodes("/Project/ItemGroup") - |> Seq.cast - |> Seq.collect (fun y -> - y.SelectNodes("PackageReference") - |> Seq.cast) - |> Seq.pick (fun x -> - if x.Attributes["Include"].Value = $"Pulumi.{provider}" then - x.Attributes["Version"].Value |> Some - else - None) - + |> Seq.cast + |> Seq.collect (fun y -> + y.SelectNodes("PackageReference") + |> Seq.cast + ) + |> Seq.pick (fun x -> + if x.Attributes["Include"].Value = $"Pulumi.{provider}" then + x.Attributes["Version"].Value + |> Some + else + None + ) + let projectFile = - FileInfo(context.InputFilename).Directory.EnumerateFiles("*.fsproj") |> - Seq.exactlyOne + FileInfo(context.InputFilename).Directory.EnumerateFiles("*.fsproj") + |> Seq.exactlyOne let provider = - let providerName = projectFile.Name["Pulumi.FSharp.".Length..^".fsproj".Length] - let providerNameOverride = - Map.ofList ["AzureNativeV2", "AzureNative"] + let providerName = projectFile.Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] + let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] providerNameOverride |> Map.tryFind providerName |> Option.defaultValue providerName - let paketDeps = + let paketDeps = FileInfo(context.InputFilename).DirectoryName |> Paket.Dependencies.TryLocate let paketProviderVersion = paketDeps - |> Option.bind(fun deps -> - deps.GetInstalledVersion $"Pulumi.{provider}") - |> Option.map (fun version -> + |> Option.bind (fun deps -> deps.GetInstalledVersion $"Pulumi.{provider}") + |> Option.map (fun version -> let semver = (SemVer.Parse version) in - $"{semver.Major}.{semver.Minor}.{semver.Patch}") - + $"{semver.Major}.{semver.Minor}.{semver.Patch}" + ) + - let version = + let version = match paketProviderVersion with | Some version -> version | None -> getVersionFromFsproj projectFile provider let providerRepositoryNameOverride = - ["AzureNative", "azure-native"] + [ "AzureNative", "azure-native" ] |> Map.ofList let providerRepository = @@ -77,4 +79,4 @@ type PulumiFSharpGenerator() = |> List.singleton |> Output.Ast - member this.ValidInputExtensions = seq { ".fs" } \ No newline at end of file + member this.ValidInputExtensions = seq { ".fs" } diff --git a/src/Pulumi.FSharp.Myriad/IndexModule.fs b/src/Pulumi.FSharp.Myriad/IndexModule.fs new file mode 100644 index 0000000..90c17c6 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/IndexModule.fs @@ -0,0 +1,261 @@ +module IndexModule + +open FSharp.Compiler.Syntax +open AstHelpers +open AstModules +open FSharp.Compiler.Text +open Myriad.Core.Ast +open Myriad.Core.AstExtensions +open Core + +type private Namespace = { + Name: string + SubNamespaceName: string option + Content: seq +} + +type private SubNamespace = { + Name: string option + Content: seq +} + +let createModules provider ((indexTypes, qualifiedTypes): PulumiModule list * PulumiModule list) = + let groupSub contentList = + contentList + |> List.groupBy (fun ns -> ns.SubNamespaceName) + |> List.map (fun (subName, content) -> { + Name = subName + Content = + content + |> Seq.collect (fun c -> c.Content) + }) + + let createSubmodule subName rootNamespace content = + createModule' + subName + [ + $"{provider}.{rootNamespace}.{subName}" + $"{provider}.Types.Inputs.{rootNamespace}.{subName}" + ] + content + + let createSubmodules rootNamespace = + Seq.collect ( + function + | { + Content = content + SubNamespace.Name = None + } -> content + | { + Content = content + Name = Some subName + } -> seq { createSubmodule subName rootNamespace content } + ) + + let qualifiedTypesModules = + qualifiedTypes + |> List.map ( + (fun qualifiedTypeModule -> + (String.split '.' qualifiedTypeModule.ResourceProviderNamespace.Value, + qualifiedTypeModule.Content) + ) + >> (function + | [| rootNamespace |], content -> { + Name = rootNamespace + SubNamespaceName = None + Content = content + } + | [| rootNamespace; subNamespace |], content -> { + Name = rootNamespace + SubNamespaceName = Some subNamespace + Content = content + } + | _ -> failwith "Too many nested namespaces") + ) + |> List.groupBy (fun rootNamespace -> rootNamespace.Name) + |> List.map (fun (rootNamespaceName, content) -> + groupSub content + |> createSubmodules rootNamespaceName + |> createModule' rootNamespaceName [ $"{provider}.{rootNamespaceName}" ] + ) + + let indexTypesAsts = + indexTypes + |> Seq.collect (fun x -> x.Content) + + let letCombineImplementation = + let fromRcd = + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("_combine"), + [ + Pat.paren ( + Pat.tuple ( + Pat.paren (Pat.tuple ("rName", "rArgs")), + Pat.paren (Pat.tuple ("lName", "lArgs")) + ) + ) + ] + ) + |> ignore // Replace below with this + + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("_combine"), + [ + SynPat.CreateParen( + SynPat.Tuple( + false, + [ + SynPat.CreateParen( + SynPat.Tuple( + false, + [ + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("rName"), + [] + ) + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("rArgs"), + [] + ) + ], + range.Zero + ) + ) + SynPat.CreateParen( + SynPat.Tuple( + false, + [ + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("lName"), + [] + ) + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("lArgs"), + [] + ) + ], + range.Zero + ) + ) + ], + Range.Zero + ) + ) + ] + ) + + let matchExpr = + Expr.paren ( + Expr.match' ( + Expr.tuple (Expr.ident ("lName"), Expr.ident ("rName")), + [ + Match.clause (Pat.tuple (Pat.null', Pat.null'), Expr.null') + Match.clause ( + Pat.tuple (Pat.null', Pat.ident ("name")), + Expr.ident ("name") + ) + Match.clause ( + Pat.tuple (Pat.ident ("name"), Pat.null'), + Expr.ident ("name") + ) + Match.clause (Pat.wild, Expr.failwith ("Duplicate name")) + ] + ) + ) + + let combineExpr = + Expr.tuple ( + matchExpr, + Expr.paren ( + Expr.app ( + "List.concat", + (Expr.list [ + "lArgs" + "rArgs" + ]) + ) + ) + ) + + let expr = combineExpr + + SynModuleDecl.CreateLet( + [ SynBinding.Let(SynAccess.Private, pattern = fromRcd, expr = expr) ] + ) + + let letCombineCrosImplementation = + let fromRcd = + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString("_combineCros"), + [ + Pat.paren ( + Pat.tuple ( + Pat.paren (Pat.tuple ("rName", "rArgs", "rCros")), + Pat.paren (Pat.tuple ("lName", "lArgs", "lCros")) + ) + ) + ] + ) + + let matchExpr = + Expr.paren ( + Expr.match' ( + Expr.tuple (Expr.ident ("lName"), Expr.ident ("rName")), + [ + Match.clause (Pat.tuple (Pat.null', Pat.null'), Expr.null') + Match.clause ( + Pat.tuple (Pat.null', Pat.ident ("name")), + Expr.ident ("name") + ) + Match.clause ( + Pat.tuple (Pat.ident ("name"), Pat.null'), + Expr.ident ("name") + ) + Match.clause (Pat.wild, Expr.failwith ("Duplicate name")) + ] + ) + ) + + let combineExpr = + Expr.tuple ( + matchExpr, + Expr.paren ( + Expr.app ( + "List.concat", + (Expr.list [ + "lArgs" + "rArgs" + ]) + ) + ), + Expr.paren ( + Expr.app ( + "List.concat", + (Expr.list [ + "lCros" + "rCros" + ]) + ) + ) + ) + + let expr = combineExpr + + SynModuleDecl.CreateLet( + [ SynBinding.Let(SynAccess.Private, pattern = fromRcd, expr = expr) ] + ) + + Module.module' ( + provider, + [ + Module.open' ($"Pulumi.{provider}") + + letCombineImplementation + + letCombineCrosImplementation + + yield! indexTypesAsts + + yield! qualifiedTypesModules + ] + ) diff --git a/Pulumi.FSharp.Myriad/Instance.fs b/src/Pulumi.FSharp.Myriad/Instance.fs similarity index 50% rename from Pulumi.FSharp.Myriad/Instance.fs rename to src/Pulumi.FSharp.Myriad/Instance.fs index 7db475e..6ace716 100644 --- a/Pulumi.FSharp.Myriad/Instance.fs +++ b/src/Pulumi.FSharp.Myriad/Instance.fs @@ -5,7 +5,7 @@ open Myriad.Core.AstExtensions let createInstance name args = let identifier = - LongIdentWithDots.CreateString name |> - SynExpr.CreateLongIdent - - SynExpr.CreateApp(identifier, args) \ No newline at end of file + LongIdentWithDots.CreateString name + |> SynExpr.CreateLongIdent + + SynExpr.CreateApp(identifier, args) diff --git a/src/Pulumi.FSharp.Myriad/Let.fs b/src/Pulumi.FSharp.Myriad/Let.fs new file mode 100644 index 0000000..d7d893f --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Let.fs @@ -0,0 +1,15 @@ +module AstLet + +open FSharp.Compiler.Syntax +open FSharp.Compiler.Xml +open Myriad.Core.Ast +open Myriad.Core.AstExtensions + +let createLet name expr (docs: string list) = + SynModuleDecl.CreateLet [ + SynBinding.Let( + pattern = SynPat.CreateLongIdent(LongIdentWithDots.CreateString name, []), + expr = expr, + xmldoc = PreXmlDoc.Create(docs) + ) + ] diff --git a/src/Pulumi.FSharp.Myriad/Member.fs b/src/Pulumi.FSharp.Myriad/Member.fs new file mode 100644 index 0000000..ec454fb --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Member.fs @@ -0,0 +1,75 @@ +module AstMember + +open FSharp.Compiler.Syntax +open FSharp.Compiler.SyntaxTrivia +open FSharp.Compiler.Text +open Core +open FSharp.Compiler.Xml +open Myriad.Core.Ast +open Myriad.Core.AstExtensions + +let createMember' xmlDoc this name args attrs expr = + + //let memberFlags : MemberFlags = + //let b : SynBindingRcd = + // { + // ValData = SynValData(Some memberFlags, SynValInfo([], SynArgInfo(SynAttributes.Empty, false, None)), None) + // Pat = SynPat.LongIdent(LongIdentWithDots([mkId "x"; mkId "Points"], [range.Zero]), None, None, SynConstructorArgs.Pats[], None, range.Zero) + // } + let memberFlag: SynMemberFlags = { + IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + MemberKind = SynMemberKind.Member + Trivia = { + MemberRange = Some Range.Zero + OverrideRange = None + AbstractRange = None + StaticRange = None + DefaultRange = None + } + } + + let argsPat = + match args with + | SynPat.Paren _ + | SynPat.Wild _ -> args + | _ -> SynPat.Paren(args, Range.Zero) + + SynBinding.SynBinding( + None, + SynBindingKind.Normal, + false, + false, + attrs, + (match xmlDoc with + | Some x -> x + | None -> PreXmlDoc.Empty), + SynValData.SynValData( + Some memberFlag, + SynValInfo([], SynArgInfo(SynAttributes.Empty, false, None)) (*SynValInfo.Empty*) , + None + ), + SynPat.CreateLongIdent( + LongIdentWithDots.CreateString( + this + + "." + + name + ), + [ argsPat ] + ), + None, + expr, + Range.Zero, + DebugPointAtBinding.NoneAtInvisible, + { + LetKeyword = Some Range.Zero + EqualsRange = Some Range.Zero + } + ) + |> fun x -> SynMemberDefn.Member(x, Range.Zero) + +let createMember'' xmlDoc = createMember' xmlDoc "_" + +let createMember = createMember' None "_" diff --git a/Pulumi.FSharp.Myriad/Modules.fs b/src/Pulumi.FSharp.Myriad/Modules.fs similarity index 86% rename from Pulumi.FSharp.Myriad/Modules.fs rename to src/Pulumi.FSharp.Myriad/Modules.fs index 8815075..bae2c5a 100644 --- a/Pulumi.FSharp.Myriad/Modules.fs +++ b/src/Pulumi.FSharp.Myriad/Modules.fs @@ -15,37 +15,38 @@ let rec createModule name openNamespace types = match name |> Option.map (String.split '.') with | None -> Module.module'(openNamespace, [ Module.open'("Pulumi." + openNamespace) - yield! types ]) - | Some [| name |] -> let openNamespaces = - match name, String.split '.' openNamespace |> List.ofArray with - // Kubernetes is the only provider, which overrides empty namespace with "Provider" - | "Inputs", [ "Kubernetes"; "Provider" ] -> - [ Module.open'("Pulumi.Kubernetes.Types.Inputs.Provider") ] - | "Inputs", "Kubernetes" :: _ -> - [] - | name , "Kubernetes" :: tail -> - let sub = tail |> String.concat "." - let mn types = Module.open'("Pulumi." + "Kubernetes" + types + sub + "." + name) - [ mn ".Types.Inputs." - mn "." ] - | name, _ -> [ Module.open'("Pulumi." + openNamespace + "." + name) ] - - Module.module'(name, [ - yield! openNamespaces - - yield! types - ]) - | Some [| name; subname |] -> Module.module'(name, [ - createModule (Some subname) (openNamespace + "." + name) types - ]) + | Some [| name |] -> + let openNamespaces = + match name, String.split '.' openNamespace |> List.ofArray with + // Kubernetes is the only provider, which overrides empty namespace with "Provider" + | "Inputs", [ "Kubernetes"; "Provider" ] -> + [ Module.open'("Pulumi.Kubernetes.Types.Inputs.Provider") ] + | "Inputs", "Kubernetes" :: _ -> + [] + | name , "Kubernetes" :: tail -> + let sub = tail |> String.concat "." + let mn types = Module.open'("Pulumi." + "Kubernetes" + types + sub + "." + name) + [ + mn ".Types.Inputs." + mn "." + ] + | name, _ -> [ Module.open'("Pulumi." + openNamespace + "." + name) ] + + Module.module'(name, [ + yield! openNamespaces + yield! types + ]) + | Some [| name; subname |] -> + Module.module'(name, [ + createModule (Some subname) (openNamespace + "." + name) types + ]) | _ -> failwith "Too many dots" let createModule' name openNamespaces types = Module.module'(name, [ yield! openNamespaces |> List.map (fun openNamespace -> Module.open'("Pulumi." + openNamespace)) - yield! types ]) @@ -439,28 +440,28 @@ let createTypes (schema : JsonValue) = let filterKubernetesProblematicTypes types = types |> - Array.filter (fun (bt, _) -> match bt with - | Type t -> not (t.ResourceType.Value = "FetchOpts" && - t.ResourceProviderNamespace.Value = "helm.sh") - | Resource r -> not (r.ResourceType.Value = "Chart" && - r.ResourceProviderNamespace.Value = "helm.sh")) + Array.filter (fun (bt, _) -> + match bt with + | Type t -> not (t.ResourceType.Value = "FetchOpts" && t.ResourceProviderNamespace.Value = "helm.sh") + | Resource r -> not (r.ResourceType.Value = "Chart" && r.ResourceProviderNamespace.Value = "helm.sh")) let filterAzureNativeProblematicTypes types = types |> - Array.filter (fun (bt, _) -> match bt with - | Type t -> not (t.ResourceType.Value = "ApplicationCondition" && - t.ResourceProviderNamespace.Value = "security") - | _ -> true) + Array.filter (fun (bt, _) -> + match bt with + | Type t -> not (t.ResourceType.Value = "ApplicationCondition" && t.ResourceProviderNamespace.Value = "security") + | _ -> true) let createBuildersParallelFiltered allTypes typesOrResources = Array.groupBy (fst >> getProvider) typesOrResources |> filters |> Map.ofArray |> - Map.map (fun _ typesOrResources -> typesOrResources |> - debugFilterTypes |> - filterKubernetesProblematicTypes |> - filterAzureNativeProblematicTypes |> - Array.Parallel.collect (createBuilders allTypes)) + Map.map (fun _ typesOrResources -> + typesOrResources |> + debugFilterTypes |> + filterKubernetesProblematicTypes |> + filterAzureNativeProblematicTypes |> + Array.Parallel.collect (createBuilders allTypes)) let typeBuilders = createBuildersParallelFiltered allAvailableTypes types @@ -474,8 +475,17 @@ let createTypes (schema : JsonValue) = | _ -> pulumiProviderName |> toPascalCase let folder modules resourceProvider resourceBuilders = - let resourceProviderNamespace = - namespaces[resourceProvider] + + let ns :: subns = + match pulumiProviderName with + // GCP is the only provider that seems to use inconsistent namespacing/resource provider namnes + // ex: `gcp:privilegedaccessmanager/entitlement` belongs to `PrivilegedAccessManager` + | "gcp" -> + String.split '/' resourceProvider + |> Array.toList + | _ -> [resourceProvider] + + let resourceProviderNamespace = namespaces[ns] let openNamespace = resourceProviderNamespace |> @@ -484,9 +494,12 @@ let createTypes (schema : JsonValue) = // Kubernetes is the only provider which overrides empty namespace with "Provider" match pulumiProviderName with | "kubernetes" -> namespaces[""] - | _ -> None) |> - Option.map (fun rpn -> $"{cloudProviderNamespace}.{rpn}") |> - Option.defaultValue cloudProviderNamespace + | _ -> None) + |> Option.map (fun rpn -> + match subns with + | [] -> $"{cloudProviderNamespace}.{rpn}" + | subns -> $"""{cloudProviderNamespace}.{String.Join(".", subns)}.{rpn}""") + |> Option.defaultValue cloudProviderNamespace let typesModule = typeBuilders |> @@ -508,4 +521,4 @@ let createTypes (schema : JsonValue) = Map.fold folder List.empty |> List.partition (function | { ResourceProviderNamespace = None } -> true - | _ -> false) \ No newline at end of file + | _ -> false) diff --git a/src/Pulumi.FSharp.Myriad/Namespace.fs b/src/Pulumi.FSharp.Myriad/Namespace.fs new file mode 100644 index 0000000..862c1e1 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Namespace.fs @@ -0,0 +1,14 @@ +module AstNamespace + +open AstHelpers + +let createNamespace module' = + Namespace.namespace' ( + "Pulumi.FSharp", + [ + Module.open' ("Pulumi.FSharp") + Module.open' ("Pulumi") + + module' + ] + ) diff --git a/src/Pulumi.FSharp.Myriad/Operations.fs b/src/Pulumi.FSharp.Myriad/Operations.fs new file mode 100644 index 0000000..e1fcb96 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Operations.fs @@ -0,0 +1,425 @@ +module AstOperations + +open FSharp.Compiler.Syntax +open FSharp.Compiler.Xml +open AstAttribute +open AstHelpers +open AstMember +open Myriad.Core.AstExtensions +open Myriad.Core.Ast +open Core + +let private createPatternTyped name args (typeName: string) = + SynPat.CreateTyped( + SynPat.CreateLongIdent(LongIdentWithDots.CreateString(name), args), + SynType.CreateLongIdent(typeName) + ) + +let private createTuple items withParen = + if withParen then + SynPat.CreateParen(SynPat.CreateTuple(items)) + else + SynPat.CreateTuple(items) + +let private argsPattern = createPattern "args" [] + +let private crosPattern = createPattern "cros" [] + +let private nPattern = createPattern "n" [] + +let private namePattern = createPattern "name" [] + +let createPatternFromCache nameVarName = + match nameVarName with + | "n" -> nPattern + | "name" -> namePattern + | _ -> createPattern nameVarName [] + +let argsTuple' isResource nameVarName withParen = + let nvn = + match nameVarName with + | null -> SynPat.CreateWild + | _ -> createPatternFromCache nameVarName + + createTuple + [ + nvn + argsPattern + if isResource then + crosPattern + ] + withParen + +let argsTupleResource withParen = + createTuple + [ + namePattern + argsPattern + crosPattern + ] + withParen + +let argsTupleType withParen = + createTuple + [ + SynPat.CreateWild + argsPattern + ] + withParen + +let private createOperation'' + isResource + (xmlDoc: string list) + nameVarName + name + coName + argName + hasAttribute + typ + = + let attributes = + if hasAttribute then + [ createAttributeWithArg "CustomOperation" coName ] + else + [] + + let patterns = + createTuple + [ + argsTuple' isResource nameVarName true + match typ with + | None -> createPattern argName [] + | Some typ -> createPatternTyped argName [] typ + ] + true + + let doc = + PreXmlDoc.Create(xmlDoc) + |> Some + + createMember'' doc name patterns attributes + +let createNameOperation newNameExpr = + createOperation'' + true + [ "Pulumi logical resource name" ] + null + "Name" + "name" + "newName" + true + None + newNameExpr + +let private listCons = + Expr.appTuple ( + "List.Cons", + [ + "apply" + "args" + ] + ) + +let private nReturnTuple = Expr.tuple (Expr.ident ("n"), listCons) + +let private nameReturnTuple = Expr.tuple (Expr.ident ("name"), listCons) + +let private argsIdent = Expr.ident ("args") + +let private inputIdent = Expr.ident ("input") + +let private ioIdent = Expr.ident ("io") + +let private inputListIdent = Expr.ident ("inputList") + +let private inputMapIdent = Expr.ident ("inputMap") + +let private inputJson = Expr.longIdent ("Pulumi.InputJson.op_Implicit") + +let private resourceNameIdent = Expr.ident ("resourceName") + +let private resourceTypeIdent = Expr.ident ("resourceType") + +let private compose = Expr.paren (Expr.ident ("op_ComposeRight")) + +let private inputListFromSeqOf (expr: SynExpr) = + Expr.paren ( + Expr.app ( + compose, + [ + Expr.paren (Expr.app (Expr.longIdent ("Seq.map"), expr)) + inputListIdent + ] + ) + ) + +let private inputMapFromMapOf (expr: SynExpr) = + let mapSelector = + Expr.paren ( + Expr.lambda ( + [ + SimplePat.id ("k") + SimplePat.id ("v") + ], + Expr.tuple (Expr.ident ("k"), Expr.app (expr, Expr.ident ("v"))) + ) + ) + + Expr.paren ( + Expr.app ( + compose, + [ + Expr.paren (Expr.app (Expr.longIdent ("Seq.map"), mapSelector)) + inputMapIdent + ] + ) + ) + +let private inputMapFromMapOfInput = inputMapFromMapOf inputIdent + +let private inputMapFromMapOfOutput = inputMapFromMapOf ioIdent + +let private inputListFromSeq = inputListFromSeqOf inputIdent + +let private inputListFromOutputSeq = inputListFromSeqOf ioIdent + +let private inputListFromItemOf (expr: SynExpr) = + Expr.paren ( + Expr.app ( + compose, + Expr.app ( + Expr.paren ( + Expr.app ( + compose, + [ + expr + Expr.longIdent ("Seq.singleton") + ] + ) + ), + inputListIdent + ) + ) + ) + +let private inputListFromItem = inputListFromItemOf inputIdent + +let private inputListFromOutput = inputListFromItemOf ioIdent + +let private inputUnion1Of2 = Expr.ident ("inputUnion1Of2") + +let private inputUnion2Of2 = Expr.ident ("inputUnion2Of2") + +let private idIdent = Expr.ident ("id") + +type PType = + | PArray of PType + | PUnion of PType * PType + | PString + | PInteger + | PFloat + | PBoolean + | PMap of PType + | PJson + | PAssetOrArchive + | PArchive + | PAny + | PRef of string + +type Deprecation = + | Current + | Deprecated of string + +type PTypeDefinition = { + Name: string + Type: PType + Description: string + Deprecation: Deprecation + CanGenerateYield: bool + IsResource: bool + OperationName: string +} + +// This should be the same as the member arg (currently "n") +let private returnTupleCache argsType pType opName setRight = + let set = Expr.set ($"args.{pType.Name}", setRight) + + let lambdaExpr = + Expr.sequential ( + [ + set + Expr.ident ("args") + ] + ) + + let lambda = Expr.lambda ([ SimplePat.typed ("args", argsType) ], lambdaExpr) + + let consArg = Expr.paren (Expr.tuple (Expr.paren (lambda), Expr.ident ("args"))) + + let cons = Expr.app (Expr.longIdent ("List.Cons"), consArg) + + match pType.IsResource with + | false -> Expr.tuple (Expr.ident ("n"), cons) + | true -> Expr.tuple (Expr.ident ("name"), cons, Expr.ident ("cros")) + +let createOperationsFor' argsType pType = + let setRights, argType = + match pType with + | { PTypeDefinition.Type = PString } + | { Type = PInteger } + | { Type = PFloat } + | { Type = PBoolean } -> + [ + inputIdent + ioIdent + ], + None + | { Type = PArray _ } -> + [ + inputListIdent + inputListFromSeq + inputListFromOutputSeq + inputListFromItem + inputListFromOutput + ], + None + | { Type = PUnion _ } -> + [ + idIdent + inputUnion1Of2 + inputUnion2Of2 + ], + None + | { Type = PJson } -> [ inputJson ], Some "string" + | { Type = PMap _ } -> + [ + idIdent + inputMapIdent + inputMapFromMapOfInput + inputMapFromMapOfOutput + ], + None + | { Type = PRef _ } + | { Type = PArchive } + | { Type = PAny } + | { Type = PAssetOrArchive } -> [ inputIdent ], None + + let snakeCaseName = + if + pType.Name = "Name" + && pType.IsResource + then + "resourceName" + else + toCamelCase pType.Name + + let argName = + match snakeCaseName with + | "fixed" + | "input" + | "args" -> + snakeCaseName + + "\'" + | "type" -> "resourceType" + | _ -> snakeCaseName + + let operationName = + match pType.Name with + | "Name" when pType.IsResource -> resourceNameIdent + | "Type" when pType.IsResource -> resourceTypeIdent + | _ -> Expr.ident (argName) + + let nameArgName = + if pType.IsResource then "name" + elif pType.OperationName = "n" then "nx" + else "n" + + let memberName = + pType.OperationName + |> toPascalCase + + let doc = + String.split '\n' pType.Description + |> Array.filter ( + (=) "" + >> not + ) + |> List.ofArray + + let returnTupleCache' = returnTupleCache argsType pType operationName + + let argNameExpr = Expr.ident (argName) + + setRights + |> List.map ( + (fun sr -> Expr.app (sr, argNameExpr)) + >> returnTupleCache' + ) + |> List.mapi (fun i e -> + createOperation'' + pType.IsResource + doc + nameArgName + memberName + pType.OperationName + argName + (i = 0) + argType + e + ) + + +let croOperation + operationName + description + argumentName + (setAssignmentExpression: SynExpr) + withAttribute + = + let attributes = [ + if withAttribute then + createAttributeWithArg + "CustomOperation" + (operationName + |> toCamelCase) + ] + + let patterns = + createTuple + [ + argsTupleResource true + createPattern argumentName [] + ] + true + + let doc = + PreXmlDoc.Create([ description ]) + |> Some + + let updateCrosExpression setAssignmentExpression = + let lambdaExpression = + Expr.sequential ( + [ + Expr.set ($"cros.{operationName}", setAssignmentExpression) + Expr.ident ("cros") + ] + ) + + let listConsLambdaFirstExpression = + Expr.lambda ([ SimplePat.hashTyped ("cros", "ResourceOptions") ], lambdaExpression) + + let listConsExpressions = + Expr.paren ( + Expr.tuple (Expr.paren (listConsLambdaFirstExpression), Expr.ident ("cros")) + ) + + Expr.app (Expr.longIdent ("List.Cons"), listConsExpressions) + + let expression = + Expr.tuple ( + Expr.ident ("name"), + Expr.ident ("args"), + updateCrosExpression setAssignmentExpression + ) + + createMember'' doc operationName patterns attributes expression diff --git a/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj b/src/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj similarity index 89% rename from Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj rename to src/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj index abcdcde..ca70500 100644 --- a/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj +++ b/src/Pulumi.FSharp.Myriad/Pulumi.FSharp.Myriad.fsproj @@ -34,8 +34,8 @@ - - - - + + + + \ No newline at end of file diff --git a/src/Pulumi.FSharp.Myriad/Run.fs b/src/Pulumi.FSharp.Myriad/Run.fs new file mode 100644 index 0000000..f534ec5 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Run.fs @@ -0,0 +1,8 @@ +module AstRun + +open AstMember +open AstOperations + +let createRunResource = createMember "Run" (argsTupleResource true) [] + +let createRunType = createMember "Run" (argsTupleType true) [] diff --git a/src/Pulumi.FSharp.Myriad/Schema.fs b/src/Pulumi.FSharp.Myriad/Schema.fs new file mode 100644 index 0000000..46a8e8d --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Schema.fs @@ -0,0 +1,29 @@ +module Schema + +open System +open FSharp.Data +open System.IO +open Fantomas + +let private getSchemaFromFileCacheOrDownload provider version schemaUrl = + match FileInfo($"{provider}.{version}.json") with + | fi when fi.Exists -> fi.OpenText().ReadToEnd() + | fi -> + let json = Http.RequestString(schemaUrl) +#if DEBUG + use fi = fi.CreateText() in + + json + |> fi.Write +#endif + json + +let private loadSchema' version provider = + $"https://raw.githubusercontent.com/pulumi/pulumi-{provider}/v{version}" + + $"/provider/cmd/pulumi-resource-{provider}/schema.json" + |> getSchemaFromFileCacheOrDownload provider version + |> JsonValue.Parse + +let loadSchema provider version = + String.map Char.ToLower provider + |> loadSchema' version diff --git a/src/Pulumi.FSharp.Myriad/Yield.fs b/src/Pulumi.FSharp.Myriad/Yield.fs new file mode 100644 index 0000000..20906d2 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/Yield.fs @@ -0,0 +1,21 @@ +module AstYield + +open AstMember +open FSharp.Compiler.Syntax +open Myriad.Core.Ast +open Myriad.Core.AstExtensions + +let createYield' isType (arg: SynPat) (args: SynExpr) (cros: SynExpr) = + [ + SynExpr.CreateNull + args + if not isType then + cros + ] + |> SynExpr.CreateTuple + |> createMember "Yield" arg [] + +let createYield isType = + let typedWildcardUnit = SynPat.CreateTyped(SynPat.CreateWild, SynType.CreateUnit) + + createYield' isType typedWildcardUnit diff --git a/Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.InTest.props b/src/Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.InTest.props similarity index 100% rename from Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.InTest.props rename to src/Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.InTest.props diff --git a/Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.props b/src/Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.props similarity index 100% rename from Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.props rename to src/Pulumi.FSharp.Myriad/build/Pulumi.FSharp.Myriad.props diff --git a/Pulumi.FSharp.Tls/myriad.toml b/src/Pulumi.FSharp.Myriad/myriad.toml similarity index 100% rename from Pulumi.FSharp.Tls/myriad.toml rename to src/Pulumi.FSharp.Myriad/myriad.toml diff --git a/src/Pulumi.FSharp.Myriad/paket.references b/src/Pulumi.FSharp.Myriad/paket.references new file mode 100644 index 0000000..5663d5f --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/paket.references @@ -0,0 +1,5 @@ +group Myriad +FSharp.Data +FSharp.Text.RegexProvider +Myriad.Sdk +Paket.Core \ No newline at end of file From 35a9101ea5c4d63de28f138bf8b0235fe710deaf Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 15 Jun 2024 01:32:04 -0300 Subject: [PATCH 011/113] paket-autoupdate.yml: +git config for github-actions bot (#16) --- .github/workflows/paket-autoupdate.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/paket-autoupdate.yml b/.github/workflows/paket-autoupdate.yml index f666abc..5133a72 100644 --- a/.github/workflows/paket-autoupdate.yml +++ b/.github/workflows/paket-autoupdate.yml @@ -1,6 +1,7 @@ name: Paket Update on: + workflow_dispatch: {} schedule: - cron: "0 */4 * * *" @@ -17,6 +18,11 @@ jobs: global-json-file: global.json dotnet-version: | 8.x + # https://github.com/orgs/community/discussions/26560#discussioncomment-3531273 + - name: Configure Git + run: | + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config user.name "github-actions[bot]" - name: Paket Update env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From dd2dcdce842fd2b0b38e66b197536cad5e79386b Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 15 Jun 2024 02:09:56 -0300 Subject: [PATCH 012/113] Fix CI permissions for `github-actions[bot]` (#17) * fix(gha): +contents write permissions, use github-actions[bot] as pr owner * only publish extensions on changes to src --- .github/workflows/paket-autoupdate.yml | 1 + .github/workflows/publish.yml | 5 +++-- build/build.fs | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/paket-autoupdate.yml b/.github/workflows/paket-autoupdate.yml index 5133a72..04f41e6 100644 --- a/.github/workflows/paket-autoupdate.yml +++ b/.github/workflows/paket-autoupdate.yml @@ -8,6 +8,7 @@ on: jobs: paket-update: permissions: + contents: write pull-requests: write runs-on: ubuntu-latest steps: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bd95975..6dc88d7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,10 +1,11 @@ -name: .NET Publish +name: .NET Publish (Release) on: push: branches: - main - - dev + paths: + - src/** env: CONFIGURATION: Release jobs: diff --git a/build/build.fs b/build/build.fs index 16ed61e..f5c87a4 100644 --- a/build/build.fs +++ b/build/build.fs @@ -739,13 +739,14 @@ let paketUpdate _ = (Git.Information.getBranchName rootDirectory) newBranch + Git.Staging.stageFile rootDirectory "paket.lock" |> ignore Git.Commit.exec rootDirectory prTitle Git.Branches.pushBranch rootDirectory gitHubRepoUrl newBranch let pr = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch,Body = prTitle) GitHub.createClientWithToken (Option.get githubToken) - |> GitHub.createPullRequest gitRepoName gitOwner pr + |> GitHub.createPullRequest gitRepoName "github-actions[bot]" pr |> Async.RunSynchronously |> Async.RunSynchronously |> ignore From b934387ef968f5897e9634458061a533ea6fe21e Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 15 Jun 2024 02:32:22 -0300 Subject: [PATCH 013/113] fix(build.fs): +paket update pr targets the correct repo (#18) --- build/build.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.fs b/build/build.fs index f5c87a4..25f5ed2 100644 --- a/build/build.fs +++ b/build/build.fs @@ -746,7 +746,7 @@ let paketUpdate _ = let pr = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch,Body = prTitle) GitHub.createClientWithToken (Option.get githubToken) - |> GitHub.createPullRequest gitRepoName "github-actions[bot]" pr + |> GitHub.createPullRequest gitOwner gitRepoName pr |> Async.RunSynchronously |> Async.RunSynchronously |> ignore From 8551fd0e144061278e94198523d3c0c256ef30b0 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 17 Jun 2024 18:26:13 -0300 Subject: [PATCH 014/113] feat(build): dedicated providers dependency group; provider republishing logic (#20) --- .github/workflows/publish-providers.yml | 36 ++++ .github/workflows/publish.yml | 1 - CHANGELOG.md | 7 + build/build.fs | 109 ++++++++--- paket.dependencies | 15 +- paket.lock | 175 +++++++++--------- .../Pulumi.FSharp.Auth0/paket.references | 8 +- providers/Pulumi.FSharp.Aws/paket.references | 8 +- .../Pulumi.FSharp.Azure/paket.references | 6 +- .../Pulumi.FSharp.AzureAD/paket.references | 9 +- .../paket.references | 6 +- .../paket.references | 8 +- .../Pulumi.FSharp.Command/paket.references | 8 +- .../paket.references | 8 +- .../Pulumi.FSharp.Docker/paket.references | 8 +- providers/Pulumi.FSharp.Gcp/paket.references | 8 +- .../Pulumi.FSharp.Kubernetes/paket.references | 8 +- .../Pulumi.FSharp.Random/paket.references | 8 +- providers/Pulumi.FSharp.Tls/paket.references | 8 +- .../paket.references | 3 +- src/Pulumi.FSharp.Core/paket.references | 3 +- src/Pulumi.FSharp.Myriad/Generator.fs | 8 +- src/Pulumi.FSharp.Myriad/paket.references | 8 +- 23 files changed, 302 insertions(+), 164 deletions(-) create mode 100644 .github/workflows/publish-providers.yml diff --git a/.github/workflows/publish-providers.yml b/.github/workflows/publish-providers.yml new file mode 100644 index 0000000..0525b1e --- /dev/null +++ b/.github/workflows/publish-providers.yml @@ -0,0 +1,36 @@ +name: .NET Publish Providers + +on: + push: + branches: + - main + paths: + - src/ +env: + CONFIGURATION: Release +jobs: + build: + # Sets permissions of the GITHUB_TOKEN to allow release creating + permissions: + packages: write + environment: + name: nuget + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup necessary dotnet SDKs + uses: actions/setup-dotnet@v4 + with: + global-json-file: global.json + dotnet-version: | + 8.x + - name: Checkout previous revision's lockfile to obtain the list of updated providers + run: git show HEAD^1:./paket.lock > ./paket.lock.previous + - name: Publish updated providers + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NUGET_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this is intentional — we publish to github packages + FAKE_DETAILED_ERRORS: true + ENABLE_COVERAGE: false # AltCover doesn't work with Release builds, reports lower coverage than actual + run: | + ./build.sh PublishProviders diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6dc88d7..cc70b64 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,7 +12,6 @@ jobs: build: # Sets permissions of the GITHUB_TOKEN to allow release creating permissions: - contents: write packages: write environment: name: nuget diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c460ac..8353869 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.1.6] - 2024-05-31 + +Providers now use a dedicated FAKE dependency group to enable detection of updated providers via GitOps + +### Changed +- Provider dependencies moved from `Main` group to `Providers`. + ## [3.1.5] - 2024-05-31 Updated the project to use modern build tooling. diff --git a/build/build.fs b/build/build.fs index 25f5ed2..f47d0ce 100644 --- a/build/build.fs +++ b/build/build.fs @@ -231,13 +231,46 @@ module PulumiExtensions = let paketDeps = Paket.Dependencies.Locate projectFile.DirectoryName - let version = - paketDeps.GetInstalledVersion $"Pulumi.{provider}" - |> Option.get - |> SemVer.parse - version.Normalize() + paketDeps + .GetInstalledPackageModel(Some "Providers", $"Pulumi.{provider}") + .PackageVersion.Normalize() + + let getProviderVersions (lock1: Paket.LockFile) (lock2: Paket.LockFile) = + (lock1.Groups[Paket.Domain.GroupName "Providers"].Resolution + |> Map.toList) + @ (lock2.Groups[Paket.Domain.GroupName "Providers"].Resolution + |> Map.toList) + |> List.groupBy fst + |> List.map (fun (k, v) -> k, List.map snd v) + |> Map.ofList + |> Map.map (fun package versions -> + match versions with + | [ v1; v2 ] -> + (min v1.Version v2.Version, + Some + <| max v1.Version v2.Version) + | [ version ] -> (version.Version, None) + ) + let providersRequiringRebuild = + + if + not + <| File.exists "paket.lock.previous" + then + Set.empty + else + let current = Paket.LockFile.LoadFrom "paket.lock" + let previous = Paket.LockFile.LoadFrom "paket.lock.previous" + + getProviderVersions previous current + |> Seq.choose (fun (KeyValue(k, v)) -> + match v with + | _, None -> None + | _, Some _ -> Some k.Name + ) + |> Set.ofSeq module dotnet = let watch cmdParam program args = @@ -633,6 +666,7 @@ let generateAssemblyInfo _ = "AssemblyInfo.vb") attributes ) + let packProvider projectFile = fun (ctx: TargetParameter) -> let args = [ $"/p:VersionPrefix={PulumiExtensions.getProviderVersion projectFile}" ] @@ -694,18 +728,19 @@ let sourceLinkTest _ = let publishProvider packageName = fun (_: TargetParameter) -> - let packageFile = - !! (distDir $"{packageName}.*.nupkg") + let packageFile = + !!(distDir + $"{packageName}.*.nupkg") |> Seq.exactlyOne - - Paket.push(fun pushParams -> - { pushParams with + + Paket.push (fun pushParams -> { + pushParams with ApiKey = match nugetToken with | Some s -> s | _ -> pushParams.ApiKey // assume paket-config was set properly - - }) + + }) let publishToNuget _ = allPublishChecks () @@ -729,22 +764,39 @@ let paketUpdate _ = failOnWrongBranch () failOnLocalBuild () - let dependencies = (Paket.Dependencies.Locate ()).DependenciesFile + + let dependencies = (Paket.Dependencies.Locate()).DependenciesFile + + let oldLockfile = + (rootDirectory + "paket.lock") + |> Paket.LockFile.LoadFrom + if Paket.UpdateProcess.Update(dependencies, Paket.UpdaterOptions.Default) then + let newLockfile = + (rootDirectory + "paket.lock") + |> Paket.LockFile.LoadFrom + + let packageUpdates = PulumiExtensions.getProviderVersions oldLockfile newLockfile + let newBranch = $"paket-update-{Git.Information.getCurrentHash ()}" let prTitle = $"Paket Update for {DateTime.Now}" - Git.Branches.checkoutNewBranch + Git.Branches.checkoutNewBranch rootDirectory (Git.Information.getBranchName rootDirectory) newBranch - Git.Staging.stageFile rootDirectory "paket.lock" |> ignore + Git.Staging.stageFile rootDirectory "paket.lock" + |> ignore + Git.Commit.exec rootDirectory prTitle Git.Branches.pushBranch rootDirectory gitHubRepoUrl newBranch - let pr = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch,Body = prTitle) + let pr = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch, Body = prTitle) + GitHub.createClientWithToken (Option.get githubToken) |> GitHub.createPullRequest gitOwner gitRepoName pr |> Async.RunSynchronously @@ -761,9 +813,14 @@ let gitRelease _ = Git.Staging.stageFile "" "CHANGELOG.md" |> ignore - !!(rootDirectory "src/**/AssemblyInfo.fs") - ++ (rootDirectory "tests/**/AssemblyInfo.fs") - |> Seq.iter (Git.Staging.stageFile "" >> ignore) + !!(rootDirectory + "src/**/AssemblyInfo.fs") + ++ (rootDirectory + "tests/**/AssemblyInfo.fs") + |> Seq.iter ( + Git.Staging.stageFile "" + >> ignore + ) let msg = sprintf "Bump version to %s\n\n%s" latestEntry.NuGetVersion releaseNotesGitCommitFormat @@ -799,7 +856,8 @@ let githubRelease _ = gitOwner gitRepoName (Changelog.tagFromVersionNumber latestEntry.NuGetVersion) - (latestEntry.SemVer.PreRelease <> None) + (latestEntry.SemVer.PreRelease + <> None) (Seq.singleton releaseNotes) |> GitHub.uploadFiles files |> GitHub.publishDraft @@ -889,7 +947,6 @@ let initTargets () = Target.create $"BuildProvider.{providerName}" (buildProvider projectFile) Target.create $"PackProvider.{providerName}" (packProvider projectFile) - Target.create $"PublishProvider.{providerName}" (publishProvider providerName) "Clean" @@ -906,18 +963,18 @@ let initTargets () = $"BuildProvider.{providerName}" ==>! "BuildProviders" - $"PackProvider.{providerName}" - ==>! "PackProviders" + if PulumiExtensions.providersRequiringRebuild.Contains providerName then + $"PackProvider.{providerName}" + ==>! "PackProviders" - $"PublishProvider.{providerName}" - ==>! "PublishProviders" + $"PublishProvider.{providerName}" + ==>! "PublishProviders" ) //----------------------------------------------------------------------------- // Target Dependencies //----------------------------------------------------------------------------- - // Only call Clean if DotnetPack was in the call chain // Ensure Clean is called before DotnetRestore "Clean" diff --git a/paket.dependencies b/paket.dependencies index f390cd5..33c4c15 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -10,14 +10,11 @@ group Myriad nuget Myriad.Sdk 0.8.1 nuget Paket.Core ~> 8 -group Main +group Providers framework: net8.0 source https://api.nuget.org/v3/index.json storage: none - nuget FSharp.Core ~> 8 - nuget Myriad.Sdk 0.8.1 copy_local: true - nuget Pulumi.Aws nuget Pulumi.Auth0 nuget Pulumi.Azure @@ -26,13 +23,19 @@ group Main nuget Pulumi.Command nuget Pulumi.DigitalOcean nuget Pulumi.Docker + nuget Pulumi.FSharp nuget Pulumi.Gcp nuget Pulumi.Kubernetes nuget Pulumi.Random nuget Pulumi.Tls - nuget Pulumi.FSharp.Core - +group Main + framework: net8.0 + source https://api.nuget.org/v3/index.json + storage: none + + nuget FSharp.Core ~> 8 + nuget Myriad.Sdk 0.8.1 copy_local: true nuget Microsoft.SourceLink.GitHub copy_local: true nuget YoloDev.Expecto.TestSdk nuget Microsoft.NET.Test.Sdk diff --git a/paket.lock b/paket.lock index 33f49c0..f8d9d76 100644 --- a/paket.lock +++ b/paket.lock @@ -3,44 +3,12 @@ RESTRICTION: == net8.0 NUGET remote: https://api.nuget.org/v3/index.json altcover (8.8.74) - Ben.Demystifier (0.4.1) - System.Reflection.Metadata (>= 5.0) Expecto (10.2.1) FSharp.Core (>= 7.0.200) Mono.Cecil (>= 0.11.4 < 1.0) FSharp.Core (8.0.300) - Glob (1.1.9) - Google.Protobuf (3.27) - Grpc.AspNetCore.Server (2.63) - Grpc.Net.Common (>= 2.63) - Grpc.AspNetCore.Server.Reflection (2.63) - Google.Protobuf (>= 3.24) - Grpc.AspNetCore.Server (>= 2.63) - Grpc.Reflection (>= 2.63) - Grpc.Core.Api (2.63) - Grpc.Net.Client (2.63) - Grpc.Net.Common (>= 2.63) - Microsoft.Extensions.Logging.Abstractions (>= 6.0) - Grpc.Net.Common (2.63) - Grpc.Core.Api (>= 2.63) - Grpc.Reflection (2.63) - Google.Protobuf (>= 3.24) - Grpc.Core.Api (>= 2.63) Microsoft.Build.Tasks.Git (8.0) - copy_local: true Microsoft.CodeCoverage (17.10) - Microsoft.Extensions.DependencyInjection (8.0) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) - Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) - Microsoft.Extensions.Logging (8.0) - Microsoft.Extensions.DependencyInjection (>= 8.0) - Microsoft.Extensions.Logging.Abstractions (>= 8.0) - Microsoft.Extensions.Options (>= 8.0) - Microsoft.Extensions.Logging.Abstractions (8.0.1) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) - Microsoft.Extensions.Options (8.0.2) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) - Microsoft.Extensions.Primitives (>= 8.0) - Microsoft.Extensions.Primitives (8.0) Microsoft.NET.Test.Sdk (17.10) Microsoft.CodeCoverage (>= 17.10) Microsoft.TestPlatform.TestHost (>= 17.10) @@ -56,58 +24,6 @@ NUGET Mono.Cecil (0.11.5) Myriad.Sdk (0.8.1) - copy_local: true Newtonsoft.Json (13.0.3) - OneOf (3.0.271) - Pulumi (3.63.1) - Ben.Demystifier (>= 0.4.1) - Grpc.AspNetCore.Server (>= 2.37) - Grpc.AspNetCore.Server.Reflection (>= 2.37) - Grpc.Net.Client (>= 2.52) - Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) - OneOf (>= 3.0.216) - Pulumi.Protobuf (>= 3.20.1) - Semver (>= 2.1) - Serilog.Extensions.Logging (>= 3.0.1) - Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.3.1) - Pulumi (>= 3.60) - Pulumi.Aws (6.33.1) - Pulumi (>= 3.63.1) - Pulumi.Azure (5.79) - Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.50) - Pulumi (>= 3.63.1) - Pulumi.AzureNative (2.43) - Pulumi (>= 3.63.1) - System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.11.1) - Pulumi (>= 3.63.1) - Pulumi.DigitalOcean (4.30) - Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.4) - Pulumi (>= 3.63.1) - Pulumi.FSharp (3.63.1) - FSharp.Core (>= 4.7.2) - Pulumi (>= 3.63.1) - Pulumi.FSharp.Core (3.1.4) - FSharp.Core (>= 6.0.6) - Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.24) - Pulumi (>= 3.63.1) - Pulumi.Kubernetes (4.12) - Glob (>= 1.1.5) - Pulumi (>= 3.63.1) - Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.2) - Pulumi (>= 3.63.1) - Pulumi.Tls (5.0.3) - Pulumi (>= 3.63.1) - Semver (2.3) - Serilog (3.1.1) - Serilog.Extensions.Logging (8.0) - Microsoft.Extensions.Logging (>= 8.0) - Serilog (>= 3.1.1) - Serilog.Sinks.Console (5.0.1) - Serilog (>= 3.1.1) System.Collections.Immutable (8.0) System.Reflection.Metadata (8.0) System.Collections.Immutable (>= 8.0) @@ -1019,3 +935,94 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) + +GROUP Providers +STORAGE: NONE +RESTRICTION: == net8.0 +NUGET + remote: https://api.nuget.org/v3/index.json + Ben.Demystifier (0.4.1) + System.Reflection.Metadata (>= 5.0) + FSharp.Core (8.0.300) + Glob (1.1.9) + Google.Protobuf (3.27.1) + Grpc.AspNetCore.Server (2.63) + Grpc.Net.Common (>= 2.63) + Grpc.AspNetCore.Server.Reflection (2.63) + Google.Protobuf (>= 3.24) + Grpc.AspNetCore.Server (>= 2.63) + Grpc.Reflection (>= 2.63) + Grpc.Core.Api (2.63) + Grpc.Net.Client (2.63) + Grpc.Net.Common (>= 2.63) + Microsoft.Extensions.Logging.Abstractions (>= 6.0) + Grpc.Net.Common (2.63) + Grpc.Core.Api (>= 2.63) + Grpc.Reflection (2.63) + Google.Protobuf (>= 3.24) + Grpc.Core.Api (>= 2.63) + Microsoft.Extensions.DependencyInjection (8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) + Microsoft.Extensions.Logging (8.0) + Microsoft.Extensions.DependencyInjection (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (>= 8.0) + Microsoft.Extensions.Options (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (8.0.1) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) + Microsoft.Extensions.Options (8.0.2) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.Primitives (>= 8.0) + Microsoft.Extensions.Primitives (8.0) + OneOf (3.0.271) + Pulumi (3.64) + Ben.Demystifier (>= 0.4.1) + Grpc.AspNetCore.Server (>= 2.37) + Grpc.AspNetCore.Server.Reflection (>= 2.37) + Grpc.Net.Client (>= 2.52) + Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) + OneOf (>= 3.0.216) + Pulumi.Protobuf (>= 3.20.1) + Semver (>= 2.1) + Serilog.Extensions.Logging (>= 3.0.1) + Serilog.Sinks.Console (>= 4.0.1) + Pulumi.Auth0 (3.3.3) + Pulumi (>= 3.63.1) + Pulumi.Aws (6.40) + Pulumi (>= 3.64) + Pulumi.Azure (5.80) + Pulumi (>= 3.63.1) + Pulumi.AzureAD (5.52) + Pulumi (>= 3.64) + Pulumi.AzureNative (2.45) + Pulumi (>= 3.63.1) + System.Collections.Immutable (>= 5.0) + Pulumi.Command (0.11.1) + Pulumi (>= 3.63.1) + Pulumi.DigitalOcean (4.30.2) + Pulumi (>= 3.63.1) + Pulumi.Docker (4.5.4) + Pulumi (>= 3.63.1) + Pulumi.FSharp (3.64) + FSharp.Core (>= 4.7.2) + Pulumi (>= 3.64) + Pulumi.Gcp (7.27) + Pulumi (>= 3.64) + Pulumi.Kubernetes (4.13.1) + Glob (>= 1.1.5) + Pulumi (>= 3.63.1) + Pulumi.Protobuf (3.20.1) + Pulumi.Random (4.16.2) + Pulumi (>= 3.63.1) + Pulumi.Tls (5.0.3) + Pulumi (>= 3.63.1) + Semver (2.3) + Serilog (4.0) + Serilog.Extensions.Logging (8.0) + Microsoft.Extensions.Logging (>= 8.0) + Serilog (>= 3.1.1) + Serilog.Sinks.Console (6.0) + Serilog (>= 4.0) + System.Collections.Immutable (8.0) + System.Reflection.Metadata (8.0) + System.Collections.Immutable (>= 8.0) diff --git a/providers/Pulumi.FSharp.Auth0/paket.references b/providers/Pulumi.FSharp.Auth0/paket.references index 6d744c3..2e3e74d 100644 --- a/providers/Pulumi.FSharp.Auth0/paket.references +++ b/providers/Pulumi.FSharp.Auth0/paket.references @@ -1,3 +1,5 @@ -Pulumi.Auth0 -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.Auth0 + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Aws/paket.references b/providers/Pulumi.FSharp.Aws/paket.references index 3548e63..451d877 100644 --- a/providers/Pulumi.FSharp.Aws/paket.references +++ b/providers/Pulumi.FSharp.Aws/paket.references @@ -1,3 +1,5 @@ -Pulumi.Aws -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.Aws + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Azure/paket.references b/providers/Pulumi.FSharp.Azure/paket.references index 49eb95d..207f4fe 100644 --- a/providers/Pulumi.FSharp.Azure/paket.references +++ b/providers/Pulumi.FSharp.Azure/paket.references @@ -1,3 +1,5 @@ -Pulumi.Azure Myriad.Sdk -Pulumi.FSharp.Core \ No newline at end of file + +group Providers + Pulumi.FSharp + Pulumi.Azure \ No newline at end of file diff --git a/providers/Pulumi.FSharp.AzureAD/paket.references b/providers/Pulumi.FSharp.AzureAD/paket.references index be5a164..fb13033 100644 --- a/providers/Pulumi.FSharp.AzureAD/paket.references +++ b/providers/Pulumi.FSharp.AzureAD/paket.references @@ -1,3 +1,6 @@ -Pulumi.AzureAD -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file + +Myriad.Sdk + +group Providers + Pulumi.AzureAD + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.AzureNative/paket.references b/providers/Pulumi.FSharp.AzureNative/paket.references index 987482e..fd41288 100644 --- a/providers/Pulumi.FSharp.AzureNative/paket.references +++ b/providers/Pulumi.FSharp.AzureNative/paket.references @@ -1,3 +1,5 @@ -Pulumi.AzureNative Myriad.Sdk -Pulumi.FSharp.Core \ No newline at end of file + +group Providers + Pulumi.AzureNative + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.AzureNativeV2/paket.references b/providers/Pulumi.FSharp.AzureNativeV2/paket.references index fba66c2..fd41288 100644 --- a/providers/Pulumi.FSharp.AzureNativeV2/paket.references +++ b/providers/Pulumi.FSharp.AzureNativeV2/paket.references @@ -1,3 +1,5 @@ -Pulumi.AzureNative -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.AzureNative + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Command/paket.references b/providers/Pulumi.FSharp.Command/paket.references index 421fa10..e7525b6 100644 --- a/providers/Pulumi.FSharp.Command/paket.references +++ b/providers/Pulumi.FSharp.Command/paket.references @@ -1,3 +1,5 @@ -Pulumi.Command -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.Command + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.DigitalOcean/paket.references b/providers/Pulumi.FSharp.DigitalOcean/paket.references index 70ef4ec..da3b042 100644 --- a/providers/Pulumi.FSharp.DigitalOcean/paket.references +++ b/providers/Pulumi.FSharp.DigitalOcean/paket.references @@ -1,3 +1,5 @@ -Pulumi.DigitalOcean -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.DigitalOcean + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Docker/paket.references b/providers/Pulumi.FSharp.Docker/paket.references index 632da32..0231308 100644 --- a/providers/Pulumi.FSharp.Docker/paket.references +++ b/providers/Pulumi.FSharp.Docker/paket.references @@ -1,3 +1,5 @@ -Pulumi.Docker -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.Docker + Pulumi.FSharp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Gcp/paket.references b/providers/Pulumi.FSharp.Gcp/paket.references index 014276d..c0bcc8c 100644 --- a/providers/Pulumi.FSharp.Gcp/paket.references +++ b/providers/Pulumi.FSharp.Gcp/paket.references @@ -1,3 +1,5 @@ -Pulumi.Gcp -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.FSharp + Pulumi.Gcp \ No newline at end of file diff --git a/providers/Pulumi.FSharp.Kubernetes/paket.references b/providers/Pulumi.FSharp.Kubernetes/paket.references index 92c8dd9..c66bff6 100644 --- a/providers/Pulumi.FSharp.Kubernetes/paket.references +++ b/providers/Pulumi.FSharp.Kubernetes/paket.references @@ -1,3 +1,5 @@ -Pulumi.Kubernetes -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.FSharp + Pulumi.Kubernetes diff --git a/providers/Pulumi.FSharp.Random/paket.references b/providers/Pulumi.FSharp.Random/paket.references index 0139428..ee06147 100644 --- a/providers/Pulumi.FSharp.Random/paket.references +++ b/providers/Pulumi.FSharp.Random/paket.references @@ -1,3 +1,5 @@ -Pulumi.Random -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.FSharp + Pulumi.Random diff --git a/providers/Pulumi.FSharp.Tls/paket.references b/providers/Pulumi.FSharp.Tls/paket.references index a2b31b2..24e2d05 100644 --- a/providers/Pulumi.FSharp.Tls/paket.references +++ b/providers/Pulumi.FSharp.Tls/paket.references @@ -1,3 +1,5 @@ -Pulumi.Tls -Pulumi.FSharp -Myriad.Sdk \ No newline at end of file +Myriad.Sdk + +group Providers + Pulumi.FSharp + Pulumi.Tls diff --git a/src/Pulumi.FSharp.AzureNative.Common/paket.references b/src/Pulumi.FSharp.AzureNative.Common/paket.references index 3eb535b..2db73ac 100644 --- a/src/Pulumi.FSharp.AzureNative.Common/paket.references +++ b/src/Pulumi.FSharp.AzureNative.Common/paket.references @@ -1 +1,2 @@ -Pulumi.FSharp \ No newline at end of file +group Providers + Pulumi.FSharp \ No newline at end of file diff --git a/src/Pulumi.FSharp.Core/paket.references b/src/Pulumi.FSharp.Core/paket.references index 3eb535b..2db73ac 100644 --- a/src/Pulumi.FSharp.Core/paket.references +++ b/src/Pulumi.FSharp.Core/paket.references @@ -1 +1,2 @@ -Pulumi.FSharp \ No newline at end of file +group Providers + Pulumi.FSharp \ No newline at end of file diff --git a/src/Pulumi.FSharp.Myriad/Generator.fs b/src/Pulumi.FSharp.Myriad/Generator.fs index bc3f5ec..55c4ec0 100644 --- a/src/Pulumi.FSharp.Myriad/Generator.fs +++ b/src/Pulumi.FSharp.Myriad/Generator.fs @@ -51,10 +51,10 @@ type PulumiFSharpGenerator() = let paketProviderVersion = paketDeps - |> Option.bind (fun deps -> deps.GetInstalledVersion $"Pulumi.{provider}") - |> Option.map (fun version -> - let semver = (SemVer.Parse version) in - $"{semver.Major}.{semver.Minor}.{semver.Patch}" + |> Option.map (fun deps -> + deps + .GetInstalledPackageModel(Some "Providers", $"Pulumi.{provider}") + .PackageVersion.Normalize() ) diff --git a/src/Pulumi.FSharp.Myriad/paket.references b/src/Pulumi.FSharp.Myriad/paket.references index 5663d5f..1bd8fa4 100644 --- a/src/Pulumi.FSharp.Myriad/paket.references +++ b/src/Pulumi.FSharp.Myriad/paket.references @@ -1,5 +1,5 @@ group Myriad -FSharp.Data -FSharp.Text.RegexProvider -Myriad.Sdk -Paket.Core \ No newline at end of file + FSharp.Data + FSharp.Text.RegexProvider + Myriad.Sdk + Paket.Core \ No newline at end of file From d67296aed315fe88d51eb23163cef67e9a3f23cb Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 17 Jun 2024 18:32:49 -0300 Subject: [PATCH 015/113] Fix path filters for "Publish Providers"; distinguish action from "Publish Extensions" (#21) --- .github/workflows/publish-providers.yml | 3 +-- .github/workflows/publish.yml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-providers.yml b/.github/workflows/publish-providers.yml index 0525b1e..9a88574 100644 --- a/.github/workflows/publish-providers.yml +++ b/.github/workflows/publish-providers.yml @@ -4,8 +4,7 @@ on: push: branches: - main - paths: - - src/ + env: CONFIGURATION: Release jobs: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cc70b64..9904092 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,4 @@ -name: .NET Publish (Release) +name: .NET Publish Extensions on: push: From 660a8f7bda3a3a1b7f54183a4fd4bfaa8b49ec8a Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 17 Jun 2024 18:38:44 -0300 Subject: [PATCH 016/113] increase fetch-depth to 2 for paket.lock.previous (#22) --- .github/workflows/publish-providers.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish-providers.yml b/.github/workflows/publish-providers.yml index 9a88574..48e73a9 100644 --- a/.github/workflows/publish-providers.yml +++ b/.github/workflows/publish-providers.yml @@ -17,6 +17,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + with: + fetch-depth: 2 - name: Setup necessary dotnet SDKs uses: actions/setup-dotnet@v4 with: From 2cb5a164cbf5e794729c1aafa16a7e3b186eeb70 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 17 Jun 2024 19:02:24 -0300 Subject: [PATCH 017/113] pin providers to force republish (#24) --- paket.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/paket.lock b/paket.lock index f8d9d76..1c3ac6c 100644 --- a/paket.lock +++ b/paket.lock @@ -275,7 +275,7 @@ NUGET NuGet.Protocol (6.10) NuGet.Packaging (>= 6.10) NuGet.Versioning (6.10) - Octokit (11.0.1) + Octokit (12.0) Paket.Core (8.0.3) Chessie (>= 0.6) FSharp.Core (6.0.3) @@ -594,7 +594,7 @@ NUGET Chessie (0.6) FSharp.Core (>= 4.0.1.7-alpha) NETStandard.Library (>= 1.6) - fantomas (6.3.5) + Fantomas (6.3.9) FSharp.Core (6.0.3) FSharp.Data (6.4) FSharp.Core (>= 6.0.1) @@ -637,7 +637,7 @@ NUGET Microsoft.NETCore.Targets (5.0) Mono.Cecil (0.11.5) Myriad.Core (0.8.1) - fantomas (>= 4.7.9) + Fantomas (>= 4.7.9) Myriad.Sdk (0.8.1) NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) @@ -986,36 +986,36 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.3.3) + Pulumi.Auth0 (3.3.1) + Pulumi (>= 3.60) + Pulumi.Aws (6.33.1) Pulumi (>= 3.63.1) - Pulumi.Aws (6.40) - Pulumi (>= 3.64) - Pulumi.Azure (5.80) + Pulumi.Azure (5.79) Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.52) - Pulumi (>= 3.64) - Pulumi.AzureNative (2.45) + Pulumi.AzureAD (5.50) Pulumi (>= 3.63.1) - System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.11.1) + Pulumi.AzureNative (2.43) Pulumi (>= 3.63.1) - Pulumi.DigitalOcean (4.30.2) - Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.4) + System.Collections.Immutable (>= 5.0) + Pulumi.Command (0.10) + Pulumi (>= 3.60) + Pulumi.DigitalOcean (4.30) Pulumi (>= 3.63.1) + Pulumi.Docker (4.5.3) + Pulumi (>= 3.60) Pulumi.FSharp (3.64) FSharp.Core (>= 4.7.2) Pulumi (>= 3.64) - Pulumi.Gcp (7.27) - Pulumi (>= 3.64) - Pulumi.Kubernetes (4.13.1) + Pulumi.Gcp (7.24) + Pulumi (>= 3.63.1) + Pulumi.Kubernetes (4.12) Glob (>= 1.1.5) Pulumi (>= 3.63.1) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.2) - Pulumi (>= 3.63.1) - Pulumi.Tls (5.0.3) - Pulumi (>= 3.63.1) + Pulumi.Random (4.16.1) + Pulumi (>= 3.61) + Pulumi.Tls (5.0.2) + Pulumi (>= 3.60) Semver (2.3) Serilog (4.0) Serilog.Extensions.Logging (8.0) From 699b1d862f8d5a964d17192bff4dde4042bdd271 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 19:04:48 -0300 Subject: [PATCH 018/113] Paket Update for 06/17/2024 22:04:16 (#25) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/paket.lock b/paket.lock index 1c3ac6c..3b033e1 100644 --- a/paket.lock +++ b/paket.lock @@ -986,36 +986,36 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.3.1) - Pulumi (>= 3.60) - Pulumi.Aws (6.33.1) + Pulumi.Auth0 (3.3.3) Pulumi (>= 3.63.1) - Pulumi.Azure (5.79) - Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.50) + Pulumi.Aws (6.40) + Pulumi (>= 3.64) + Pulumi.Azure (5.80) Pulumi (>= 3.63.1) - Pulumi.AzureNative (2.43) + Pulumi.AzureAD (5.52) + Pulumi (>= 3.64) + Pulumi.AzureNative (2.45) Pulumi (>= 3.63.1) System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.10) - Pulumi (>= 3.60) - Pulumi.DigitalOcean (4.30) + Pulumi.Command (0.11.1) + Pulumi (>= 3.63.1) + Pulumi.DigitalOcean (4.30.2) + Pulumi (>= 3.63.1) + Pulumi.Docker (4.5.4) Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.3) - Pulumi (>= 3.60) Pulumi.FSharp (3.64) FSharp.Core (>= 4.7.2) Pulumi (>= 3.64) - Pulumi.Gcp (7.24) - Pulumi (>= 3.63.1) - Pulumi.Kubernetes (4.12) + Pulumi.Gcp (7.27) + Pulumi (>= 3.64) + Pulumi.Kubernetes (4.13.1) Glob (>= 1.1.5) Pulumi (>= 3.63.1) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.1) - Pulumi (>= 3.61) - Pulumi.Tls (5.0.2) - Pulumi (>= 3.60) + Pulumi.Random (4.16.2) + Pulumi (>= 3.63.1) + Pulumi.Tls (5.0.3) + Pulumi (>= 3.63.1) Semver (2.3) Serilog (4.0) Serilog.Extensions.Logging (8.0) From 9d1344b8c49bc4253716debbb2c57ea4ad2d0398 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 17 Jun 2024 19:09:22 -0300 Subject: [PATCH 019/113] Revert "Paket Update for 06/17/2024 22:04:16" (#26) * Revert "Paket Update for 06/17/2024 22:04:16 (#25)" This reverts commit 699b1d862f8d5a964d17192bff4dde4042bdd271. * fix detection of providers requiring rebuild --- build/build.fs | 2 +- paket.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/build/build.fs b/build/build.fs index f47d0ce..151f6e9 100644 --- a/build/build.fs +++ b/build/build.fs @@ -963,7 +963,7 @@ let initTargets () = $"BuildProvider.{providerName}" ==>! "BuildProviders" - if PulumiExtensions.providersRequiringRebuild.Contains providerName then + if PulumiExtensions.providersRequiringRebuild.Contains $"Pulumi.{providerName}" then $"PackProvider.{providerName}" ==>! "PackProviders" diff --git a/paket.lock b/paket.lock index 3b033e1..1c3ac6c 100644 --- a/paket.lock +++ b/paket.lock @@ -986,36 +986,36 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.3.3) + Pulumi.Auth0 (3.3.1) + Pulumi (>= 3.60) + Pulumi.Aws (6.33.1) Pulumi (>= 3.63.1) - Pulumi.Aws (6.40) - Pulumi (>= 3.64) - Pulumi.Azure (5.80) + Pulumi.Azure (5.79) Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.52) - Pulumi (>= 3.64) - Pulumi.AzureNative (2.45) + Pulumi.AzureAD (5.50) Pulumi (>= 3.63.1) - System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.11.1) + Pulumi.AzureNative (2.43) Pulumi (>= 3.63.1) - Pulumi.DigitalOcean (4.30.2) - Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.4) + System.Collections.Immutable (>= 5.0) + Pulumi.Command (0.10) + Pulumi (>= 3.60) + Pulumi.DigitalOcean (4.30) Pulumi (>= 3.63.1) + Pulumi.Docker (4.5.3) + Pulumi (>= 3.60) Pulumi.FSharp (3.64) FSharp.Core (>= 4.7.2) Pulumi (>= 3.64) - Pulumi.Gcp (7.27) - Pulumi (>= 3.64) - Pulumi.Kubernetes (4.13.1) + Pulumi.Gcp (7.24) + Pulumi (>= 3.63.1) + Pulumi.Kubernetes (4.12) Glob (>= 1.1.5) Pulumi (>= 3.63.1) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.2) - Pulumi (>= 3.63.1) - Pulumi.Tls (5.0.3) - Pulumi (>= 3.63.1) + Pulumi.Random (4.16.1) + Pulumi (>= 3.61) + Pulumi.Tls (5.0.2) + Pulumi (>= 3.60) Semver (2.3) Serilog (4.0) Serilog.Extensions.Logging (8.0) From b3460bf036d56662422127e2c3d6706b5d350c8a Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 18 Jun 2024 22:09:36 -0300 Subject: [PATCH 020/113] fix pulumi.fsharp.azure dependencies; improved republish logic (#28) * fix pulumi.fsharp.azure dependencies; improved republish logic * fix(providers/azure): paket.references order --- build/build.fs | 53 ++++++++----------- paket.dependencies | 1 + paket.lock | 3 ++ .../Pulumi.FSharp.Azure/paket.references | 3 +- 4 files changed, 27 insertions(+), 33 deletions(-) diff --git a/build/build.fs b/build/build.fs index 151f6e9..8cec642 100644 --- a/build/build.fs +++ b/build/build.fs @@ -216,26 +216,34 @@ let failOnWrongBranch () = module PulumiExtensions = let getProviderName projectFile = - (FileInfo projectFile).Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] - - let getProviderVersion projectFile = let projectFile = FileInfo projectFile - let provider = - let providerName = projectFile.Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] - let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] + let providerName = projectFile.Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] + let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] - providerNameOverride - |> Map.tryFind providerName - |> Option.defaultValue providerName + providerNameOverride + |> Map.tryFind providerName + |> Option.defaultValue providerName - let paketDeps = Paket.Dependencies.Locate projectFile.DirectoryName + let getProviderVersion provider = + let paketDeps = Paket.Dependencies.Locate provider paketDeps .GetInstalledPackageModel(Some "Providers", $"Pulumi.{provider}") .PackageVersion.Normalize() + + let isExtensionPublished provider = + let lockfile = Paket.LockFile.LoadFrom "paket.lock" + try + let providerVersion = getProviderVersion provider + NuGet.NuGet.getPackage publishUrl $"Pulumi.FSharp.{provider}" providerVersion |> ignore + true // if we didn't throw in the previous step, this is a valid version. + with + | _ -> false + + let getProviderVersions (lock1: Paket.LockFile) (lock2: Paket.LockFile) = (lock1.Groups[Paket.Domain.GroupName "Providers"].Resolution |> Map.toList) @@ -253,25 +261,6 @@ module PulumiExtensions = | [ version ] -> (version.Version, None) ) - let providersRequiringRebuild = - - if - not - <| File.exists "paket.lock.previous" - then - Set.empty - else - let current = Paket.LockFile.LoadFrom "paket.lock" - let previous = Paket.LockFile.LoadFrom "paket.lock.previous" - - getProviderVersions previous current - |> Seq.choose (fun (KeyValue(k, v)) -> - match v with - | _, None -> None - | _, Some _ -> Some k.Name - ) - |> Set.ofSeq - module dotnet = let watch cmdParam program args = DotNet.exec cmdParam (sprintf "watch %s" program) args @@ -960,10 +949,10 @@ let initTargets () = "DotnetRestore" ==>! $"BuildProvider.{providerName}" - $"BuildProvider.{providerName}" - ==>! "BuildProviders" + if PulumiExtensions.isExtensionPublished providerName then + $"BuildProvider.{providerName}" + ==>! "BuildProviders" - if PulumiExtensions.providersRequiringRebuild.Contains $"Pulumi.{providerName}" then $"PackProvider.{providerName}" ==>! "PackProviders" diff --git a/paket.dependencies b/paket.dependencies index 33c4c15..ef42f11 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -24,6 +24,7 @@ group Providers nuget Pulumi.DigitalOcean nuget Pulumi.Docker nuget Pulumi.FSharp + nuget Pulumi.FSharp.Core nuget Pulumi.Gcp nuget Pulumi.Kubernetes nuget Pulumi.Random diff --git a/paket.lock b/paket.lock index 1c3ac6c..bc9a379 100644 --- a/paket.lock +++ b/paket.lock @@ -1006,6 +1006,9 @@ NUGET Pulumi.FSharp (3.64) FSharp.Core (>= 4.7.2) Pulumi (>= 3.64) + Pulumi.FSharp.Core (3.1.4) + FSharp.Core (>= 6.0.6) + Pulumi.FSharp (>= 3.43.1) Pulumi.Gcp (7.24) Pulumi (>= 3.63.1) Pulumi.Kubernetes (4.12) diff --git a/providers/Pulumi.FSharp.Azure/paket.references b/providers/Pulumi.FSharp.Azure/paket.references index 207f4fe..ed8e255 100644 --- a/providers/Pulumi.FSharp.Azure/paket.references +++ b/providers/Pulumi.FSharp.Azure/paket.references @@ -1,5 +1,6 @@ Myriad.Sdk group Providers + Pulumi.Azure Pulumi.FSharp - Pulumi.Azure \ No newline at end of file + Pulumi.FSharp.Core \ No newline at end of file From 75926ddd48bf9e6b007687a2c6ecf8d2e91c7f97 Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 18 Jun 2024 22:22:50 -0300 Subject: [PATCH 021/113] fix(build): getProviderName -> getExtensionName (#29) --- build/build.fs | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/build/build.fs b/build/build.fs index 8cec642..47b6549 100644 --- a/build/build.fs +++ b/build/build.fs @@ -215,18 +215,10 @@ let failOnWrongBranch () = module PulumiExtensions = - let getProviderName projectFile = - let projectFile = FileInfo projectFile - - let providerName = projectFile.Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] - let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] - - providerNameOverride - |> Map.tryFind providerName - |> Option.defaultValue providerName + let getExtensionName projectFile = + (FileInfo projectFile).Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] let getProviderVersion provider = - let paketDeps = Paket.Dependencies.Locate provider paketDeps @@ -932,31 +924,31 @@ let initTargets () = !!providersGlob |> Seq.iter (fun projectFile -> - let providerName = PulumiExtensions.getProviderName projectFile + let extensionName = PulumiExtensions.getExtensionName projectFile - Target.create $"BuildProvider.{providerName}" (buildProvider projectFile) - Target.create $"PackProvider.{providerName}" (packProvider projectFile) - Target.create $"PublishProvider.{providerName}" (publishProvider providerName) + Target.create $"BuildProvider.{extensionName}" (buildProvider projectFile) + Target.create $"PackProvider.{extensionName}" (packProvider projectFile) + Target.create $"PublishProvider.{extensionName}" (publishProvider extensionName) "Clean" - ==>! $"PackProvider.{providerName}" + ==>! $"PackProvider.{extensionName}" "DotnetBuild" - ==> $"BuildProvider.{providerName}" - ==> $"PackProvider.{providerName}" - ==>! $"PublishProvider.{providerName}" + ==> $"BuildProvider.{extensionName}" + ==> $"PackProvider.{extensionName}" + ==>! $"PublishProvider.{extensionName}" "DotnetRestore" - ==>! $"BuildProvider.{providerName}" + ==>! $"BuildProvider.{extensionName}" - if PulumiExtensions.isExtensionPublished providerName then - $"BuildProvider.{providerName}" + if PulumiExtensions.isExtensionPublished extensionName then + $"BuildProvider.{extensionName}" ==>! "BuildProviders" - $"PackProvider.{providerName}" + $"PackProvider.{extensionName}" ==>! "PackProviders" - $"PublishProvider.{providerName}" + $"PublishProvider.{extensionName}" ==>! "PublishProviders" ) From 3241a83dfa5adead09bf1b885d567adefaade455 Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 18 Jun 2024 22:29:02 -0300 Subject: [PATCH 022/113] Fix republish logic --- build/build.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.fs b/build/build.fs index 47b6549..ef76b23 100644 --- a/build/build.fs +++ b/build/build.fs @@ -941,7 +941,7 @@ let initTargets () = "DotnetRestore" ==>! $"BuildProvider.{extensionName}" - if PulumiExtensions.isExtensionPublished extensionName then + if not (PulumiExtensions.isExtensionPublished extensionName) then $"BuildProvider.{extensionName}" ==>! "BuildProviders" From aa1e8bda69247e53f06f740211d694145275e7ee Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 18 Jun 2024 23:05:42 -0300 Subject: [PATCH 023/113] fix(build): PulumiExtensions.getProviderName (#30) --- build/build.fs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/build/build.fs b/build/build.fs index ef76b23..b625581 100644 --- a/build/build.fs +++ b/build/build.fs @@ -218,14 +218,21 @@ module PulumiExtensions = let getExtensionName projectFile = (FileInfo projectFile).Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] - let getProviderVersion provider = - let paketDeps = Paket.Dependencies.Locate provider - - paketDeps + let getProviderVersion providerName = + let dependencies = Paket.Dependencies.Locate () + let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] + let provider = + providerNameOverride + |> Map.tryFind providerName + |> Option.defaultValue providerName + dependencies .GetInstalledPackageModel(Some "Providers", $"Pulumi.{provider}") .PackageVersion.Normalize() - + let getProviderVersionFromFsproj projectFile = + getExtensionName projectFile + |> getProviderVersion + let isExtensionPublished provider = let lockfile = Paket.LockFile.LoadFrom "paket.lock" try @@ -427,7 +434,7 @@ let deleteChangelogBackupFile _ = let buildProvider projectFile = fun (ctx: TargetParameter) -> let args = [ - $"/p:VersionPrefix={PulumiExtensions.getProviderVersion projectFile}" + $"/p:VersionPrefix={PulumiExtensions.getProviderVersionFromFsproj projectFile}" //"/p:NoRegenerate=true" "--no-restore" ] @@ -650,7 +657,7 @@ let generateAssemblyInfo _ = let packProvider projectFile = fun (ctx: TargetParameter) -> - let args = [ $"/p:VersionPrefix={PulumiExtensions.getProviderVersion projectFile}" ] + let args = [ $"/p:VersionPrefix={PulumiExtensions.getProviderVersionFromFsproj projectFile}" ] DotNet.pack (fun (c: DotNet.PackOptions) -> { From 134c60485b472db5f016668a764d4862f876936b Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 18 Jun 2024 23:54:08 -0300 Subject: [PATCH 024/113] fix(build): publishProvider input package name (#31) --- build/build.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.fs b/build/build.fs index b625581..af3094e 100644 --- a/build/build.fs +++ b/build/build.fs @@ -935,7 +935,7 @@ let initTargets () = Target.create $"BuildProvider.{extensionName}" (buildProvider projectFile) Target.create $"PackProvider.{extensionName}" (packProvider projectFile) - Target.create $"PublishProvider.{extensionName}" (publishProvider extensionName) + Target.create $"PublishProvider.{extensionName}" (publishProvider $"Pulumi.FSharp.{extensionName}") "Clean" ==>! $"PackProvider.{extensionName}" From 784cc856f449c756f951840d09c2870052c30431 Mon Sep 17 00:00:00 2001 From: Cadence Date: Wed, 19 Jun 2024 13:01:39 -0300 Subject: [PATCH 025/113] fix(build): use nuget push for providers (#33) --- build/build.fs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/build/build.fs b/build/build.fs index af3094e..2bde6b9 100644 --- a/build/build.fs +++ b/build/build.fs @@ -716,19 +716,22 @@ let sourceLinkTest _ = let publishProvider packageName = fun (_: TargetParameter) -> - let packageFile = + let nupkg = !!(distDir $"{packageName}.*.nupkg") |> Seq.exactlyOne - Paket.push (fun pushParams -> { - pushParams with - ApiKey = - match nugetToken with - | Some s -> s - | _ -> pushParams.ApiKey // assume paket-config was set properly - - }) + DotNet.nugetPush (fun c -> { + c with + PushParams = { + c.PushParams with + ApiKey = + match nugetToken with + | Some s -> nugetToken + | _ -> c.PushParams.ApiKey // assume paket-config was set properly + Source = Some publishUrl + } + }) nupkg let publishToNuget _ = allPublishChecks () From 770ffa5059790c2a2a5ba24ca8b991f06a818bfa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 14:03:03 -0300 Subject: [PATCH 026/113] Paket Update for 06/19/2024 17:02:17 (#35) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/paket.lock b/paket.lock index bc9a379..7fb829e 100644 --- a/paket.lock +++ b/paket.lock @@ -986,39 +986,39 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.3.1) - Pulumi (>= 3.60) - Pulumi.Aws (6.33.1) + Pulumi.Auth0 (3.4) + Pulumi (>= 3.64) + Pulumi.Aws (6.41) + Pulumi (>= 3.64) + Pulumi.Azure (5.80) Pulumi (>= 3.63.1) - Pulumi.Azure (5.79) + Pulumi.AzureAD (5.52) + Pulumi (>= 3.64) + Pulumi.AzureNative (2.45) Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.50) + System.Collections.Immutable (>= 5.0) + Pulumi.Command (0.11.1) Pulumi (>= 3.63.1) - Pulumi.AzureNative (2.43) + Pulumi.DigitalOcean (4.30.2) Pulumi (>= 3.63.1) - System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.10) - Pulumi (>= 3.60) - Pulumi.DigitalOcean (4.30) + Pulumi.Docker (4.5.4) Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.3) - Pulumi (>= 3.60) Pulumi.FSharp (3.64) FSharp.Core (>= 4.7.2) Pulumi (>= 3.64) Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.24) - Pulumi (>= 3.63.1) - Pulumi.Kubernetes (4.12) + Pulumi.Gcp (7.27) + Pulumi (>= 3.64) + Pulumi.Kubernetes (4.13.1) Glob (>= 1.1.5) Pulumi (>= 3.63.1) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.1) - Pulumi (>= 3.61) - Pulumi.Tls (5.0.2) - Pulumi (>= 3.60) + Pulumi.Random (4.16.2) + Pulumi (>= 3.63.1) + Pulumi.Tls (5.0.3) + Pulumi (>= 3.63.1) Semver (2.3) Serilog (4.0) Serilog.Extensions.Logging (8.0) From 139577b91d404529979b0c4cf98d35b500feb5fc Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 24 Jun 2024 16:16:16 -0300 Subject: [PATCH 027/113] Fix Pulumi ComponentResourceTypes; split CI/CD for Core and Myriad packages. (#37) * fix(compiler-plugin): generate ComponentResourceOptions for resources with isComponent=true * Split CI for core and myriad extension --- .github/workflows/fsdocs-gh-pages.yml | 58 --- .github/workflows/publish-providers.yml | 4 +- Pulumi.FSharp.Extensions.sln | 7 - build/build.fs | 426 +++++------------- .../Pulumi.FSharp.AzureNative.Common.fsproj | 12 - .../paket.references | 2 - .../Pulumi.FSharp.Core/CHANGELOG.md | 0 src/Pulumi.FSharp.Myriad/Builder.fs | 14 +- src/Pulumi.FSharp.Myriad/CHANGELOG.md | 31 ++ src/Pulumi.FSharp.Myriad/Modules.fs | 6 +- 10 files changed, 153 insertions(+), 407 deletions(-) delete mode 100644 .github/workflows/fsdocs-gh-pages.yml delete mode 100644 src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj delete mode 100644 src/Pulumi.FSharp.AzureNative.Common/paket.references rename CHANGELOG.md => src/Pulumi.FSharp.Core/CHANGELOG.md (100%) create mode 100644 src/Pulumi.FSharp.Myriad/CHANGELOG.md diff --git a/.github/workflows/fsdocs-gh-pages.yml b/.github/workflows/fsdocs-gh-pages.yml deleted file mode 100644 index 7f8ddf5..0000000 --- a/.github/workflows/fsdocs-gh-pages.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Deploy Docs - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Setup Pages - uses: actions/configure-pages@v3 - - name: Setup necessary dotnet SDKs - uses: actions/setup-dotnet@v3 - with: - global-json-file: global.json - dotnet-version: | - 6.x - - name: Build Docs - run: | - chmod +x ./build.sh - ./build.sh builddocs - - - name: Upload artifact - uses: actions/upload-pages-artifact@v1 - with: - path: docs/ - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 diff --git a/.github/workflows/publish-providers.yml b/.github/workflows/publish-providers.yml index 48e73a9..c604da3 100644 --- a/.github/workflows/publish-providers.yml +++ b/.github/workflows/publish-providers.yml @@ -25,9 +25,7 @@ jobs: global-json-file: global.json dotnet-version: | 8.x - - name: Checkout previous revision's lockfile to obtain the list of updated providers - run: git show HEAD^1:./paket.lock > ./paket.lock.previous - - name: Publish updated providers + - name: Publish providers env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NUGET_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this is intentional — we publish to github packages diff --git a/Pulumi.FSharp.Extensions.sln b/Pulumi.FSharp.Extensions.sln index 8264f24..f949c32 100644 --- a/Pulumi.FSharp.Extensions.sln +++ b/Pulumi.FSharp.Extensions.sln @@ -5,8 +5,6 @@ VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{28C09E13-D45B-40D2-AAB0-F7D3A69417D8}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.AzureNative.Common", "src\Pulumi.FSharp.AzureNative.Common\Pulumi.FSharp.AzureNative.Common.fsproj", "{8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}" -EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Core", "src\Pulumi.FSharp.Core\Pulumi.FSharp.Core.fsproj", "{7A74E40C-7A88-4683-807B-26FE69C00C9E}" EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Pulumi.FSharp.Myriad", "src\Pulumi.FSharp.Myriad\Pulumi.FSharp.Myriad.fsproj", "{39E6A928-3D66-4D1D-9F12-5CAE5C47D82B}" @@ -50,10 +48,6 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F}.Release|Any CPU.Build.0 = Release|Any CPU {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU {7A74E40C-7A88-4683-807B-26FE69C00C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -120,7 +114,6 @@ Global {F001F2EE-9ED0-4FE0-87F6-0365F1CA887E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution - {8EC6FF58-5CB7-4FBD-A82F-0EEE2795307F} = {28C09E13-D45B-40D2-AAB0-F7D3A69417D8} {7A74E40C-7A88-4683-807B-26FE69C00C9E} = {28C09E13-D45B-40D2-AAB0-F7D3A69417D8} {39E6A928-3D66-4D1D-9F12-5CAE5C47D82B} = {28C09E13-D45B-40D2-AAB0-F7D3A69417D8} {23F69D6B-8674-49A3-A872-70F06F8A982C} = {6A29027D-A6AF-406A-B0E5-FBBBD9962BFC} diff --git a/build/build.fs b/build/build.fs index 2bde6b9..6514a29 100644 --- a/build/build.fs +++ b/build/build.fs @@ -129,21 +129,6 @@ let readme = "README.md" let changelogFile = "CHANGELOG.md" let READMElink = Uri(Uri(gitHubRepoUrl), $"blob/{releaseBranch}/{readme}") -let CHANGELOGlink = Uri(Uri(gitHubRepoUrl), $"blob/{releaseBranch}/{changelogFile}") - -let changelogPath = - rootDirectory - changelogFile - -let changelog = Fake.Core.Changelog.load changelogPath - -let mutable latestEntry = - if Seq.isEmpty changelog.Entries then - Changelog.ChangelogEntry.New("0.0.1", "0.0.1-alpha.1", Some DateTime.Today, None, [], false) - else - changelog.LatestEntry - -let mutable changelogBackupFilename = "" let publishUrl = $"https://nuget.pkg.github.com/{gitOwner}/index.json" @@ -163,7 +148,6 @@ let shortGitShubHA = // Helpers //----------------------------------------------------------------------------- - let isRelease (targets: Target list) = targets |> Seq.map (fun t -> t.Name) @@ -218,13 +202,15 @@ module PulumiExtensions = let getExtensionName projectFile = (FileInfo projectFile).Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] - let getProviderVersion providerName = - let dependencies = Paket.Dependencies.Locate () + let getProviderVersion providerName = + let dependencies = Paket.Dependencies.Locate() let providerNameOverride = Map.ofList [ "AzureNativeV2", "AzureNative" ] - let provider = + + let provider = providerNameOverride |> Map.tryFind providerName |> Option.defaultValue providerName + dependencies .GetInstalledPackageModel(Some "Providers", $"Pulumi.{provider}") .PackageVersion.Normalize() @@ -235,12 +221,16 @@ module PulumiExtensions = let isExtensionPublished provider = let lockfile = Paket.LockFile.LoadFrom "paket.lock" + try let providerVersion = getProviderVersion provider - NuGet.NuGet.getPackage publishUrl $"Pulumi.FSharp.{provider}" providerVersion |> ignore + + NuGet.NuGet.getPackage publishUrl $"Pulumi.FSharp.{provider}" providerVersion + |> ignore + true // if we didn't throw in the previous step, this is a valid version. - with - | _ -> false + with _ -> + false let getProviderVersions (lock1: Paket.LockFile) (lock2: Paket.LockFile) = @@ -260,6 +250,20 @@ module PulumiExtensions = | [ version ] -> (version.Version, None) ) +module NuGet = + let isPublished project = + let projectFile = FileInfo project + let changelog: Changelog.Changelog = + projectFile.DirectoryName + "CHANGELOG.md" + |> Changelog.load + + let packageInfo = + Path.GetFileNameWithoutExtension project + |> NuGet.NuGet.getLatestPackage publishUrl + + (SemVer.parse packageInfo.Version) = changelog.LatestEntry.SemVer + module dotnet = let watch cmdParam program args = DotNet.exec cmdParam (sprintf "watch %s" program) args @@ -293,67 +297,6 @@ module FSharpAnalyzers = interface IArgParserTemplate with member s.Usage = "" - -module DocsTool = - let quoted s = $"\"%s{s}\"" - - let fsDocsDotnetOptions (o: DotNet.Options) = { - o with - WorkingDirectory = rootDirectory - } - - let fsDocsBuildParams configuration (p: Fsdocs.BuildCommandParams) = { - p with - Clean = Some true - Input = Some(quoted docsSrcDir) - Output = Some(quoted docsDir) - Eval = Some true - Projects = Some(Seq.map quoted (!!srcGlob)) - Properties = Some($"Configuration=%s{configuration}") - Parameters = - Some [ - // https://fsprojects.github.io/FSharp.Formatting/content.html#Templates-and-Substitutions - "root", quoted documentationRootUrl - "fsdocs-collection-name", quoted productName - "fsdocs-repository-branch", quoted releaseBranch - "fsdocs-package-version", quoted latestEntry.NuGetVersion - "fsdocs-readme-link", quoted (READMElink.ToString()) - "fsdocs-release-notes-link", quoted (CHANGELOGlink.ToString()) - ] - Strict = Some true - } - - - let cleanDocsCache () = Fsdocs.cleanCache rootDirectory - - let build (configuration) = - Fsdocs.build fsDocsDotnetOptions (fsDocsBuildParams configuration) - - - let watch (configuration) = - let buildParams bp = - let bp = - Option.defaultValue Fsdocs.BuildCommandParams.Default bp - |> fsDocsBuildParams configuration - - { - bp with - Output = Some watchDocsDir - Strict = None - } - - Fsdocs.watch - fsDocsDotnetOptions - (fun p -> { - p with - BuildCommandParams = Some(buildParams p.BuildCommandParams) - }) - -let allReleaseChecks () = - failOnWrongBranch () - Changelog.failOnEmptyChangelog latestEntry - - let failOnLocalBuild () = if not isCI.Value then failwith "Not on CI. If you want to publish, please use CI." @@ -362,9 +305,7 @@ let failOnCIBuild () = if isCI.Value then failwith "On CI. If you want to run this target, please use a local build." -let allPublishChecks () = - failOnLocalBuild () - Changelog.failOnEmptyChangelog latestEntry +let allPublishChecks () = failOnLocalBuild () //----------------------------------------------------------------------------- // Target Implementations @@ -419,18 +360,6 @@ let dotnetRestore _ = ) |> Seq.iter (retryIfInCI 10) -let updateChangelog ctx = - latestEntry <- Changelog.updateChangelog changelogPath changelog gitHubRepoUrl ctx - -let revertChangelog _ = - if String.isNotNullOrEmpty Changelog.changelogBackupFilename then - Changelog.changelogBackupFilename - |> Shell.copyFile changelogPath - -let deleteChangelogBackupFile _ = - if String.isNotNullOrEmpty Changelog.changelogBackupFilename then - Shell.rm Changelog.changelogBackupFilename - let buildProvider projectFile = fun (ctx: TargetParameter) -> let args = [ @@ -452,15 +381,24 @@ let buildProvider projectFile = projectFile -let dotnetBuild ctx = - let args = [ - sprintf "/p:VersionPrefix=%s" latestEntry.NuGetVersion - //"/p:NoRegenerate=true" - "--no-restore" - ] +let dotnetBuild project = + fun ctx -> + let changelog = + (FileInfo project).DirectoryName + "CHANGELOG.md" + |> Changelog.load + + let latestEntry = changelog.LatestEntry + + // Get release notes with properly-linked version number + let releaseNotes = Changelog.mkReleaseNotes changelog latestEntry gitHubRepoUrl + + let args = [ + sprintf "/p:VersionPrefix=%s" latestEntry.NuGetVersion + //"/p:NoRegenerate=true" + "--no-restore" + ] - !!srcGlob - |> Seq.iter (fun provider -> DotNet.build (fun c -> { c with @@ -471,8 +409,15 @@ let dotnetBuild ctx = |> DotNet.Options.withAdditionalArgs args }) - provider - ) + project + +let buildCore = + srcDir "Pulumi.FSharp.Core.fsproj" + |> dotnetBuild + +let buildMyriadExtension = + srcDir "Pulumi.FSharp.Myriad.fsproj" + |> dotnetBuild let fsharpAnalyzers _ = let argParser = @@ -597,67 +542,11 @@ let watchTests _ = cancelEvent.Cancel <- true -let generateAssemblyInfo _ = - - let (|Fsproj|Csproj|Vbproj|) (projFileName: string) = - match projFileName with - | f when f.EndsWith("fsproj") -> Fsproj - | f when f.EndsWith("csproj") -> Csproj - | f when f.EndsWith("vbproj") -> Vbproj - | _ -> - failwith (sprintf "Project file %s not supported. Unknown project type." projFileName) - - let releaseChannel = - match latestEntry.SemVer.PreRelease with - | Some pr -> pr.Name - | _ -> "release" - - let getAssemblyInfoAttributes projectName = [ - AssemblyInfo.Title(projectName) - AssemblyInfo.Product productName - AssemblyInfo.Version latestEntry.AssemblyVersion - AssemblyInfo.Metadata("ReleaseDate", latestEntry.Date.Value.ToString("o")) - AssemblyInfo.FileVersion latestEntry.AssemblyVersion - AssemblyInfo.InformationalVersion latestEntry.AssemblyVersion - AssemblyInfo.Metadata("ReleaseChannel", releaseChannel) - AssemblyInfo.Metadata("GitHash", Git.Information.getCurrentSHA1 (null)) - ] - - let getProjectDetails (projectPath: string) = - let projectName = IO.Path.GetFileNameWithoutExtension(projectPath) - - (projectPath, - projectName, - IO.Path.GetDirectoryName(projectPath), - (getAssemblyInfoAttributes projectName)) - - !!srcGlob - ++ providersGlob - |> Seq.map getProjectDetails - |> Seq.iter (fun (projFileName, _, folderName, attributes) -> - match projFileName with - | Fsproj -> - AssemblyInfoFile.createFSharp - (folderName - "AssemblyInfo.fs") - attributes - | Csproj -> - AssemblyInfoFile.createCSharp - ((folderName - "Properties") - "AssemblyInfo.cs") - attributes - | Vbproj -> - AssemblyInfoFile.createVisualBasic - ((folderName - "My Project") - "AssemblyInfo.vb") - attributes - ) - let packProvider projectFile = fun (ctx: TargetParameter) -> - let args = [ $"/p:VersionPrefix={PulumiExtensions.getProviderVersionFromFsproj projectFile}" ] + let args = [ + $"/p:VersionPrefix={PulumiExtensions.getProviderVersionFromFsproj projectFile}" + ] DotNet.pack (fun (c: DotNet.PackOptions) -> { @@ -679,16 +568,23 @@ let packProvider projectFile = projectFile let dotnetPack ctx = - // Get release notes with properly-linked version number - let releaseNotes = Changelog.mkReleaseNotes changelog latestEntry gitHubRepoUrl - - let args = [ - $"/p:VersionPrefix={latestEntry.NuGetVersion}" - $"/p:PackageReleaseNotes=\"{releaseNotes}\"" - ] - !!srcGlob |> Seq.iter (fun project -> + let changelog = + (FileInfo project).DirectoryName + "CHANGELOG.md" + |> Changelog.load + + let latestEntry = changelog.LatestEntry + + // Get release notes with properly-linked version number + let releaseNotes = Changelog.mkReleaseNotes changelog latestEntry gitHubRepoUrl + + let args = [ + $"/p:VersionPrefix={latestEntry.NuGetVersion}" + $"/p:PackageReleaseNotes=\"{releaseNotes}\"" + ] + DotNet.pack (fun c -> { c with @@ -721,17 +617,19 @@ let publishProvider packageName = $"{packageName}.*.nupkg") |> Seq.exactlyOne - DotNet.nugetPush (fun c -> { - c with - PushParams = { - c.PushParams with - ApiKey = - match nugetToken with - | Some s -> nugetToken - | _ -> c.PushParams.ApiKey // assume paket-config was set properly - Source = Some publishUrl - } - }) nupkg + DotNet.nugetPush + (fun c -> { + c with + PushParams = { + c.PushParams with + ApiKey = + match nugetToken with + | Some s -> nugetToken + | _ -> c.PushParams.ApiKey // assume paket-config was set properly + Source = Some publishUrl + } + }) + nupkg let publishToNuget _ = allPublishChecks () @@ -796,63 +694,6 @@ let paketUpdate _ = else failwith "Paket update failed. Unable to create PR." -let gitRelease _ = - allReleaseChecks () - - let releaseNotesGitCommitFormat = latestEntry.ToString() - - Git.Staging.stageFile "" "CHANGELOG.md" - |> ignore - - !!(rootDirectory - "src/**/AssemblyInfo.fs") - ++ (rootDirectory - "tests/**/AssemblyInfo.fs") - |> Seq.iter ( - Git.Staging.stageFile "" - >> ignore - ) - - let msg = - sprintf "Bump version to %s\n\n%s" latestEntry.NuGetVersion releaseNotesGitCommitFormat - - Git.Commit.exec "" msg - - Target.deactivateBuildFailure "RevertChangelog" - - Git.Branches.push "" - - let tag = Changelog.tagFromVersionNumber latestEntry.NuGetVersion - - Git.Branches.tag "" tag - Git.Branches.pushTag "" "origin" tag - -let githubRelease _ = - allPublishChecks () - - let token = - match githubToken with - | Some s -> s - | _ -> - failwith - "please set the github_token environment variable to a github personal access token with repo access." - - let files = !!distGlob - // Get release notes with properly-linked version number - - let releaseNotes = Changelog.mkReleaseNotes changelog latestEntry gitHubRepoUrl - - GitHub.createClientWithToken token - |> GitHub.draftNewRelease - gitOwner - gitRepoName - (Changelog.tagFromVersionNumber latestEntry.NuGetVersion) - (latestEntry.SemVer.PreRelease - <> None) - (Seq.singleton releaseNotes) - |> GitHub.uploadFiles files - |> GitHub.publishDraft - |> Async.RunSynchronously let formatCode _ = let result = dotnet.fantomas $"{srcDir}" @@ -870,18 +711,6 @@ let checkFormatCode ctx = else Trace.logf "Errors while formatting: %A" result.Errors - -let cleanDocsCache _ = DocsTool.cleanDocsCache () - -let buildDocs ctx = - let configuration = configuration (ctx.Context.AllExecutingTargets) - DocsTool.build (string configuration) - -let watchDocs ctx = - let configuration = configuration (ctx.Context.AllExecutingTargets) - DocsTool.watch (string configuration) - - let initTargets () = BuildServer.install [ GitHubActions.Installer ] @@ -905,32 +734,28 @@ let initTargets () = Target.create "Clean" clean Target.create "DotnetRestore" dotnetRestore - Target.create "UpdateChangelog" updateChangelog - Target.createBuildFailure "RevertChangelog" revertChangelog // Do NOT put this in the dependency chain - Target.createFinal "DeleteChangelogBackupFile" deleteChangelogBackupFile // Do NOT put this in the dependency chain - Target.create "DotnetBuild" dotnetBuild + + Target.create "BuildMyriadExtension" buildMyriadExtension + Target.create "BuildCore" buildCore + Target.create "DotnetBuild" ignore Target.create "BuildProviders" ignore - Target.create "FSharpAnalyzers" fsharpAnalyzers + Target.create "DotnetTest" dotnetTest + Target.create "WatchTests" watchTests + + Target.create "FSharpAnalyzers" fsharpAnalyzers Target.create "GenerateCoverageReport" generateCoverageReport Target.create "ShowCoverageReport" showCoverageReport - Target.create "WatchTests" watchTests - Target.create "GenerateAssemblyInfo" generateAssemblyInfo + Target.create "DotnetPack" dotnetPack Target.create "PackProviders" ignore Target.create "PublishProviders" ignore Target.create "SourceLinkTest" sourceLinkTest Target.create "PublishToNuGet" publishToNuget Target.create "PaketUpdate" paketUpdate - Target.create "GitRelease" gitRelease - Target.create "GitHubRelease" githubRelease Target.create "FormatCode" formatCode Target.create "CheckFormatCode" checkFormatCode - Target.create "Release" ignore // For local Target.create "Publish" ignore //For CI - Target.create "CleanDocsCache" cleanDocsCache - Target.create "BuildDocs" buildDocs - Target.create "WatchDocs" watchDocs !!providersGlob |> Seq.iter (fun projectFile -> @@ -938,7 +763,10 @@ let initTargets () = Target.create $"BuildProvider.{extensionName}" (buildProvider projectFile) Target.create $"PackProvider.{extensionName}" (packProvider projectFile) - Target.create $"PublishProvider.{extensionName}" (publishProvider $"Pulumi.FSharp.{extensionName}") + + Target.create + $"PublishProvider.{extensionName}" + (publishProvider $"Pulumi.FSharp.{extensionName}") "Clean" ==>! $"PackProvider.{extensionName}" @@ -974,56 +802,32 @@ let initTargets () = "Clean" ==>! "DotnetPack" - // Only call GenerateAssemblyInfo if GitRelease was in the call chain - // Ensure GenerateAssemblyInfo is called after DotnetRestore and before DotnetBuild - "DotnetRestore" - ?=>! "GenerateAssemblyInfo" - - "GenerateAssemblyInfo" - ?=>! "DotnetBuild" - - // Ensure UpdateChangelog is called after DotnetRestore - "DotnetRestore" - ?=>! "UpdateChangelog" - - "UpdateChangelog" - ?=>! "GenerateAssemblyInfo" - - "CleanDocsCache" - ==>! "BuildDocs" - "DotnetBuild" ==>! "BuildProviders" - "BuildProviders" - ?=>! "BuildDocs" - - "BuildProviders" - ==>! "BuildDocs" - - "BuildProviders" - ==>! "WatchDocs" - "DotnetTest" ==> "GenerateCoverageReport" ==>! "ShowCoverageReport" - "UpdateChangelog" - ==> "GenerateAssemblyInfo" - ==> "GitRelease" - ==>! "Release" - - "DotnetRestore" - =?> ("CheckFormatCode", isCI.Value) - ==> "DotnetBuild" - ==> "DotnetTest" - ==> "DotnetPack" - ==> "PublishToNuGet" - // ==> "GitHubRelease" - ==>! "Publish" + if NuGet.isPublished (srcDir "Pulumi.FSharp.Myriad.fsproj") then + "DotnetRestore" + =?> ("CheckFormatCode", isCI.Value) + ==> "BuildMyriadExtension" + ==> "DotnetTest" + ==> "DotnetPack" + ==> "PublishToNuGet" + ==>! "Publish" + + if NuGet.isPublished (srcDir "Pulumi.FSharp.Core.fsproj") then + "DotnetRestore" + =?> ("CheckFormatCode", isCI.Value) + ==> "BuildCore" + ==> "DotnetTest" + ==> "DotnetPack" + ==> "PublishToNuGet" + ==>! "Publish" "DotnetRestore" - =?> ("CheckFormatCode", isCI.Value) ==> "BuildProviders" ==> "PackProviders" ==>! "PublishProviders" @@ -1043,6 +847,6 @@ let main argv = |> Context.setExecutionContext initTargets () - Target.runOrDefaultWithArguments "PackProviders" + Target.runOrDefaultWithArguments "PublishProviders" 0 // return an integer exit code diff --git a/src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj b/src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj deleted file mode 100644 index f4fa60c..0000000 --- a/src/Pulumi.FSharp.AzureNative.Common/Pulumi.FSharp.AzureNative.Common.fsproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - net8.0 - true - - - - - - - \ No newline at end of file diff --git a/src/Pulumi.FSharp.AzureNative.Common/paket.references b/src/Pulumi.FSharp.AzureNative.Common/paket.references deleted file mode 100644 index 2db73ac..0000000 --- a/src/Pulumi.FSharp.AzureNative.Common/paket.references +++ /dev/null @@ -1,2 +0,0 @@ -group Providers - Pulumi.FSharp \ No newline at end of file diff --git a/CHANGELOG.md b/src/Pulumi.FSharp.Core/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to src/Pulumi.FSharp.Core/CHANGELOG.md diff --git a/src/Pulumi.FSharp.Myriad/Builder.fs b/src/Pulumi.FSharp.Myriad/Builder.fs index 56c6149..2125fff 100644 --- a/src/Pulumi.FSharp.Myriad/Builder.fs +++ b/src/Pulumi.FSharp.Myriad/Builder.fs @@ -120,24 +120,14 @@ let mapOperationType yieldSelector opsSelector = | { Type = PAny _ } & pt | { Type = PArchive _ } & pt -> opsSelector pt -let createBuilderClass isType name pTypes = +let createBuilderClass isType isComponent name pTypes = let argsType = $"{name}Args" let apply varname = let args = match varname with | "args" -> argsType - // in Pulumi.Kubernetes 4.10.0, two new types were added which - // use ComponentResourceOptions instead of CustomResourceOptions - // This check should be made generic for all ResourceOption types - | _ when - [ - "ConfigFile" - "ConfigGroup" - ] - |> List.contains name - -> - "ComponentResourceOptions" + | _ when isComponent -> "ComponentResourceOptions" | _ -> "CustomResourceOptions" Expr.app ( diff --git a/src/Pulumi.FSharp.Myriad/CHANGELOG.md b/src/Pulumi.FSharp.Myriad/CHANGELOG.md new file mode 100644 index 0000000..63ac2f0 --- /dev/null +++ b/src/Pulumi.FSharp.Myriad/CHANGELOG.md @@ -0,0 +1,31 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [3.1.7] - 2024-06-24 + +Pulumi providers that use `ComponentResource` as a base class are now interpreted correctly by the Myriad compiler extension. + +## [3.1.6] - 2024-05-31 + +Providers now use a dedicated FAKE dependency group to enable detection of updated providers via GitOps + +### Changed +- Provider dependencies moved from `Main` group to `Providers`. + +## [3.1.5] - 2024-05-31 + +Updated the project to use modern build tooling. + +### Fixed +- Numbers in provider names (e.g. `auth0`) no longer break the plugin. +- GCP resources that use slashes as namespacing (e.g. `gcp:privilegedaccessmanager/entitlement`) no longer break the plugin. + +### Added +- DigitalOcean provider +- Auth0 provider +- Support for Kubernetes `ConfigFile` and `ConfigGroup` types \ No newline at end of file diff --git a/src/Pulumi.FSharp.Myriad/Modules.fs b/src/Pulumi.FSharp.Myriad/Modules.fs index bae2c5a..552b9dc 100644 --- a/src/Pulumi.FSharp.Myriad/Modules.fs +++ b/src/Pulumi.FSharp.Myriad/Modules.fs @@ -276,7 +276,6 @@ let createTypes (schema : JsonValue) = | PTMap t | PTArray t -> getRefType t - | PTUnion (a, b) (*PTUnion typeTuple*) -> //typeTuple |> tupleMap getRefType |> optionApply (@) //typeTuple |> tupleMap getRefType |> lift2 (@) //typeTuple |> @@ -375,6 +374,9 @@ let createTypes (schema : JsonValue) = Map.add "remote" (Some("Remote")) let create allTypes (jsonValue : JsonValue) (propertyName : string) typeName isType = + + let isComponent = if not isType then jsonValue.TryGetProperty "isComponent" |> Option.isSome else false + let properties = match jsonValue.TryGetProperty(propertyName) with | Some ip -> ip.Properties() @@ -411,7 +413,7 @@ let createTypes (schema : JsonValue) = [||] else [| - createBuilderClass isType typeName pTypes + createBuilderClass isType isComponent typeName pTypes createBuilderInstance description typeName pTypes |] From 5db59c11a55896a58356c241283ee124ca2fced0 Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 25 Jun 2024 00:50:41 -0300 Subject: [PATCH 028/113] fix(build): fix search path for isPublished for src projects (#38) --- build/build.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/build.fs b/build/build.fs index 6514a29..4975470 100644 --- a/build/build.fs +++ b/build/build.fs @@ -809,7 +809,7 @@ let initTargets () = ==> "GenerateCoverageReport" ==>! "ShowCoverageReport" - if NuGet.isPublished (srcDir "Pulumi.FSharp.Myriad.fsproj") then + if NuGet.isPublished (srcDir "Pulumi.FSharp.Myriad" "Pulumi.FSharp.Myriad.fsproj") then "DotnetRestore" =?> ("CheckFormatCode", isCI.Value) ==> "BuildMyriadExtension" @@ -818,7 +818,7 @@ let initTargets () = ==> "PublishToNuGet" ==>! "Publish" - if NuGet.isPublished (srcDir "Pulumi.FSharp.Core.fsproj") then + if NuGet.isPublished (srcDir "Pulumi.FSharp.Core" "Pulumi.FSharp.Core.fsproj") then "DotnetRestore" =?> ("CheckFormatCode", isCI.Value) ==> "BuildCore" From 287152731c378c40c84b215d1664cdb1bc0208b3 Mon Sep 17 00:00:00 2001 From: Cadence Date: Sat, 29 Jun 2024 18:45:14 -0300 Subject: [PATCH 029/113] Fix NuGet package version check (#40) * fix nuget package version check * build and test on all prs * clean up build script --- .github/workflows/build-and-test.yml | 6 +- .github/workflows/publish-providers.yml | 1 - build/build.fs | 178 ++++++++++++++---------- build/paket.references | 29 ++-- 4 files changed, 120 insertions(+), 94 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index fd0e91a..aa6d01d 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,10 +1,7 @@ name: .NET Build and Test on: - pull_request: - branches: - - main - - dev + pull_request: {} env: CONFIGURATION: Debug jobs: @@ -20,6 +17,7 @@ jobs: 8.x - name: Build providers env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} FAKE_DETAILED_ERRORS: true ENABLE_COVERAGE: false run: | diff --git a/.github/workflows/publish-providers.yml b/.github/workflows/publish-providers.yml index c604da3..d90d432 100644 --- a/.github/workflows/publish-providers.yml +++ b/.github/workflows/publish-providers.yml @@ -9,7 +9,6 @@ env: CONFIGURATION: Release jobs: build: - # Sets permissions of the GITHUB_TOKEN to allow release creating permissions: packages: write environment: diff --git a/build/build.fs b/build/build.fs index 4975470..09c5381 100644 --- a/build/build.fs +++ b/build/build.fs @@ -2,16 +2,19 @@ open System open System.IO + +open Argu +open Fake.Api +open Fake.BuildServer open Fake.Core +open Fake.Core.TargetOperators open Fake.DotNet -open Fake.Tools open Fake.IO open Fake.IO.FileSystemOperators open Fake.IO.Globbing.Operators -open Fake.Core.TargetOperators -open Fake.Api -open Fake.BuildServer -open Argu +open Fake.Tools +open global.Paket.PackageSources + let environVarAsBoolOrDefault varName defaultValue = let truthyConsts = [ @@ -64,6 +67,16 @@ let srcDir = rootDirectory "src" +let srcCoreDir = + srcDir + "Pulumi.FSharp.Core" + "Pulumi.FSharp.Core.fsproj" + +let myriadPluginDir = + srcDir + "Pulumi.FSharp.Myriad" + "Pulumi.FSharp.Myriad.fsproj" + let providersDir = rootDirectory "providers" @@ -138,6 +151,20 @@ let githubToken = Environment.environVarOrNone "GITHUB_TOKEN" let nugetToken = Environment.environVarOrNone "GITHUB_TOKEN" // "NUGET_TOKEN" +let githubPackageSource = + NuGetV3 { + Url = publishUrl + Authentication = + match githubToken with + | Some token -> + Paket.NetUtils.AuthProvider.ofUserPassword { + Username = GitHubActions.Environment.Actor + Password = token + Type = Paket.NetUtils.AuthType.Basic + } + | None -> Paket.AuthService.GetGlobalAuthenticationProvider publishUrl + } + let githubSHA = Environment.environVarOrNone "GITHUB_SHA" let shortGitShubHA = @@ -199,7 +226,7 @@ let failOnWrongBranch () = module PulumiExtensions = - let getExtensionName projectFile = + let getProviderName projectFile = (FileInfo projectFile).Name["Pulumi.FSharp.".Length .. ^".fsproj".Length] let getProviderVersion providerName = @@ -216,16 +243,15 @@ module PulumiExtensions = .PackageVersion.Normalize() let getProviderVersionFromFsproj projectFile = - getExtensionName projectFile + getProviderName projectFile |> getProviderVersion - let isExtensionPublished provider = + let isProviderPublished provider = let lockfile = Paket.LockFile.LoadFrom "paket.lock" try - let providerVersion = getProviderVersion provider - - NuGet.NuGet.getPackage publishUrl $"Pulumi.FSharp.{provider}" providerVersion + getProviderVersion provider + |> NuGet.NuGet.getPackage publishUrl $"Pulumi.FSharp.{provider}" |> ignore true // if we didn't throw in the previous step, this is a valid version. @@ -251,19 +277,29 @@ module PulumiExtensions = ) module NuGet = + let isPublished project = let projectFile = FileInfo project + let changelog: Changelog.Changelog = projectFile.DirectoryName "CHANGELOG.md" |> Changelog.load - let packageInfo = - Path.GetFileNameWithoutExtension project - |> NuGet.NuGet.getLatestPackage publishUrl + Paket.Dependencies.FindPackageVersions( + rootDirectory, + [ githubPackageSource ], + System.IO.Path.GetFileNameWithoutExtension project + ) + |> Set.ofArray + |> Set.map (SemVer.parse) + |> Set.contains changelog.LatestEntry.SemVer + |> not + + let shouldPublishCore = Lazy<_>.Create(fun () -> isPublished srcCoreDir) + + let shouldPublishMyriadPlugin = Lazy<_>.Create(fun () -> isPublished myriadPluginDir) - (SemVer.parse packageInfo.Version) = changelog.LatestEntry.SemVer - module dotnet = let watch cmdParam program args = DotNet.exec cmdParam (sprintf "watch %s" program) args @@ -411,14 +447,6 @@ let dotnetBuild project = }) project -let buildCore = - srcDir "Pulumi.FSharp.Core.fsproj" - |> dotnetBuild - -let buildMyriadExtension = - srcDir "Pulumi.FSharp.Myriad.fsproj" - |> dotnetBuild - let fsharpAnalyzers _ = let argParser = ArgumentParser.Create(programName = "fsharp-analyzers") @@ -567,9 +595,9 @@ let packProvider projectFile = }) projectFile -let dotnetPack ctx = - !!srcGlob - |> Seq.iter (fun project -> +let dotnetPack project = + + fun ctx -> let changelog = (FileInfo project).DirectoryName "CHANGELOG.md" @@ -604,7 +632,6 @@ let dotnetPack ctx = |> DotNet.Options.withAdditionalArgs args }) project - ) let sourceLinkTest _ = !!distGlob @@ -728,26 +755,27 @@ let initTargets () = //----------------------------------------------------------------------------- Option.iter (TraceSecrets.register "") githubToken Option.iter (TraceSecrets.register "") nugetToken + //----------------------------------------------------------------------------- // Target Declaration //----------------------------------------------------------------------------- - Target.create "Clean" clean Target.create "DotnetRestore" dotnetRestore - Target.create "BuildMyriadExtension" buildMyriadExtension - Target.create "BuildCore" buildCore - Target.create "DotnetBuild" ignore + Target.create "BuildCore" (dotnetBuild srcCoreDir) + Target.create "BuildMyriadPlugin" (dotnetBuild myriadPluginDir) Target.create "BuildProviders" ignore Target.create "DotnetTest" dotnetTest Target.create "WatchTests" watchTests - + Target.create "FSharpAnalyzers" fsharpAnalyzers Target.create "GenerateCoverageReport" generateCoverageReport Target.create "ShowCoverageReport" showCoverageReport - Target.create "DotnetPack" dotnetPack + Target.create "PackCore" (dotnetPack srcCoreDir) + Target.create "PackMyriadPlugin" (dotnetPack myriadPluginDir) + Target.create "DotnetPack" ignore Target.create "PackProviders" ignore Target.create "PublishProviders" ignore Target.create "SourceLinkTest" sourceLinkTest @@ -759,41 +787,41 @@ let initTargets () = !!providersGlob |> Seq.iter (fun projectFile -> - let extensionName = PulumiExtensions.getExtensionName projectFile + let providerName = PulumiExtensions.getProviderName projectFile - Target.create $"BuildProvider.{extensionName}" (buildProvider projectFile) - Target.create $"PackProvider.{extensionName}" (packProvider projectFile) + Target.create $"BuildProvider.{providerName}" (buildProvider projectFile) + Target.create $"PackProvider.{providerName}" (packProvider projectFile) Target.create - $"PublishProvider.{extensionName}" - (publishProvider $"Pulumi.FSharp.{extensionName}") + $"PublishProvider.{providerName}" + (publishProvider $"Pulumi.FSharp.{providerName}") - "Clean" - ==>! $"PackProvider.{extensionName}" +//----------------------------------------------------------------------------- +// Target Dependencies +//----------------------------------------------------------------------------- - "DotnetBuild" - ==> $"BuildProvider.{extensionName}" - ==> $"PackProvider.{extensionName}" - ==>! $"PublishProvider.{extensionName}" + "Clean" + ==>! $"PackProvider.{providerName}" "DotnetRestore" - ==>! $"BuildProvider.{extensionName}" + ==>! $"BuildProvider.{providerName}" - if not (PulumiExtensions.isExtensionPublished extensionName) then - $"BuildProvider.{extensionName}" + "BuildMyriadPlugin" + ==> $"BuildProvider.{providerName}" + ==> $"PackProvider.{providerName}" + ==>! $"PublishProvider.{providerName}" + + if not (PulumiExtensions.isProviderPublished providerName) then + $"BuildProvider.{providerName}" ==>! "BuildProviders" - $"PackProvider.{extensionName}" + $"PackProvider.{providerName}" ==>! "PackProviders" - $"PublishProvider.{extensionName}" + $"PublishProvider.{providerName}" ==>! "PublishProviders" ) - //----------------------------------------------------------------------------- - // Target Dependencies - //----------------------------------------------------------------------------- - // Only call Clean if DotnetPack was in the call chain // Ensure Clean is called before DotnetRestore "Clean" @@ -802,32 +830,34 @@ let initTargets () = "Clean" ==>! "DotnetPack" - "DotnetBuild" - ==>! "BuildProviders" + "Clean" + ==>! "PackCore" + + "Clean" + ==>! "PackMyriadPlugin" "DotnetTest" ==> "GenerateCoverageReport" ==>! "ShowCoverageReport" - if NuGet.isPublished (srcDir "Pulumi.FSharp.Myriad" "Pulumi.FSharp.Myriad.fsproj") then - "DotnetRestore" - =?> ("CheckFormatCode", isCI.Value) - ==> "BuildMyriadExtension" - ==> "DotnetTest" - ==> "DotnetPack" - ==> "PublishToNuGet" - ==>! "Publish" - - if NuGet.isPublished (srcDir "Pulumi.FSharp.Core" "Pulumi.FSharp.Core.fsproj") then - "DotnetRestore" - =?> ("CheckFormatCode", isCI.Value) - ==> "BuildCore" - ==> "DotnetTest" - ==> "DotnetPack" - ==> "PublishToNuGet" - ==>! "Publish" + "DotnetRestore" + =?> ("CheckFormatCode", isCI.Value) + =?> ("BuildCore", NuGet.shouldPublishCore.Value) + ==> "DotnetTest" + =?> ("PackCore", NuGet.shouldPublishCore.Value) + ==> "PublishToNuGet" + ==>! "Publish" + + "DotnetRestore" + =?> ("CheckFormatCode", isCI.Value) + =?> ("BuildMyriadPlugin", NuGet.shouldPublishMyriadPlugin.Value) + ==> "DotnetTest" + =?> ("PackMyriadPlugin", NuGet.shouldPublishMyriadPlugin.Value) + ==> "PublishToNuGet" + ==>! "Publish" "DotnetRestore" + ==> "BuildMyriadPlugin" ==> "BuildProviders" ==> "PackProviders" ==>! "PublishProviders" @@ -847,6 +877,6 @@ let main argv = |> Context.setExecutionContext initTargets () - Target.runOrDefaultWithArguments "PublishProviders" + Target.runOrDefaultWithArguments "Publish" 0 // return an integer exit code diff --git a/build/paket.references b/build/paket.references index c8af8be..dac93c0 100644 --- a/build/paket.references +++ b/build/paket.references @@ -1,16 +1,15 @@ group Build -Argu -Octokit -FSharp.Core -Fake.IO.FileSystem -Fake.Core.Target -Fake.Core.ReleaseNotes -FAKE.Core.Environment -Fake.DotNet.Cli -FAKE.Core.Process -Fake.DotNet.AssemblyInfoFile -Fake.Tools.Git -Fake.DotNet.Paket -Fake.Api.GitHub -Fake.BuildServer.GitHubActions -Paket.Core + Argu + Fake.Api.GitHub + Fake.BuildServer.GitHubActions + Fake.Core.Target + Fake.Core.ReleaseNotes + Fake.Core.Environment + Fake.Core.Process + Fake.DotNet.AssemblyInfoFile + Fake.DotNet.Cli + Fake.DotNet.Paket + Fake.IO.FileSystem + Fake.Tools.Git + Octokit + Paket.Core From 446f9cd865da836f446afacd96a1f7b8b9fec242 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 1 Jul 2024 13:18:04 -0300 Subject: [PATCH 030/113] Give explicit read packages: read permissions to paket-autoupdate.yml (#41) --- .github/workflows/paket-autoupdate.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/paket-autoupdate.yml b/.github/workflows/paket-autoupdate.yml index 04f41e6..abd0b95 100644 --- a/.github/workflows/paket-autoupdate.yml +++ b/.github/workflows/paket-autoupdate.yml @@ -8,6 +8,7 @@ on: jobs: paket-update: permissions: + packages: read contents: write pull-requests: write runs-on: ubuntu-latest From 81faa2c99bae2655e7941afd9a930eaf97a0db64 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 1 Jul 2024 15:14:26 -0300 Subject: [PATCH 031/113] Use Paket to check whether provider versions have already been published (#43) * fix(build): use paket for provider publish check * fix(build): isProviderPublished handles unpublished packages --- build/build.fs | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/build/build.fs b/build/build.fs index 09c5381..4aace83 100644 --- a/build/build.fs +++ b/build/build.fs @@ -67,7 +67,7 @@ let srcDir = rootDirectory "src" -let srcCoreDir = +let srcCoreDir = srcDir "Pulumi.FSharp.Core" "Pulumi.FSharp.Core.fsproj" @@ -247,16 +247,18 @@ module PulumiExtensions = |> getProviderVersion let isProviderPublished provider = - let lockfile = Paket.LockFile.LoadFrom "paket.lock" - try + Paket.Dependencies.FindPackageVersions( + rootDirectory, + [ githubPackageSource ], + $"Pulumi.FSharp.{provider}") + with e -> Array.empty + |> Set.ofArray + |> Set.map (SemVer.parse) + |> Set.contains ( getProviderVersion provider - |> NuGet.NuGet.getPackage publishUrl $"Pulumi.FSharp.{provider}" - |> ignore - - true // if we didn't throw in the previous step, this is a valid version. - with _ -> - false + |> SemVer.parse + ) let getProviderVersions (lock1: Paket.LockFile) (lock2: Paket.LockFile) = @@ -298,7 +300,8 @@ module NuGet = let shouldPublishCore = Lazy<_>.Create(fun () -> isPublished srcCoreDir) - let shouldPublishMyriadPlugin = Lazy<_>.Create(fun () -> isPublished myriadPluginDir) + let shouldPublishMyriadPlugin = + Lazy<_>.Create(fun () -> isPublished myriadPluginDir) module dotnet = let watch cmdParam program args = @@ -796,9 +799,9 @@ let initTargets () = $"PublishProvider.{providerName}" (publishProvider $"Pulumi.FSharp.{providerName}") -//----------------------------------------------------------------------------- -// Target Dependencies -//----------------------------------------------------------------------------- + //----------------------------------------------------------------------------- + // Target Dependencies + //----------------------------------------------------------------------------- "Clean" ==>! $"PackProvider.{providerName}" @@ -811,13 +814,13 @@ let initTargets () = ==> $"PackProvider.{providerName}" ==>! $"PublishProvider.{providerName}" - if not (PulumiExtensions.isProviderPublished providerName) then - $"BuildProvider.{providerName}" - ==>! "BuildProviders" + $"BuildProvider.{providerName}" + ==>! "BuildProviders" - $"PackProvider.{providerName}" - ==>! "PackProviders" + $"PackProvider.{providerName}" + ==>! "PackProviders" + if not (PulumiExtensions.isProviderPublished providerName) then $"PublishProvider.{providerName}" ==>! "PublishProviders" ) @@ -840,9 +843,13 @@ let initTargets () = ==> "GenerateCoverageReport" ==>! "ShowCoverageReport" + "DotnetRestore" + ==>! "WatchTests" + + "DotnetRestore" =?> ("CheckFormatCode", isCI.Value) - =?> ("BuildCore", NuGet.shouldPublishCore.Value) + ==> "BuildCore" ==> "DotnetTest" =?> ("PackCore", NuGet.shouldPublishCore.Value) ==> "PublishToNuGet" @@ -850,7 +857,7 @@ let initTargets () = "DotnetRestore" =?> ("CheckFormatCode", isCI.Value) - =?> ("BuildMyriadPlugin", NuGet.shouldPublishMyriadPlugin.Value) + ==> "BuildMyriadPlugin" ==> "DotnetTest" =?> ("PackMyriadPlugin", NuGet.shouldPublishMyriadPlugin.Value) ==> "PublishToNuGet" @@ -862,9 +869,6 @@ let initTargets () = ==> "PackProviders" ==>! "PublishProviders" - "DotnetRestore" - ==>! "WatchTests" - //----------------------------------------------------------------------------- // Target Start //----------------------------------------------------------------------------- From bb0db6f04757632c70a9443a2aa582a228b006d7 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 1 Jul 2024 15:48:05 -0300 Subject: [PATCH 032/113] Remove unnecessary target dependencies for PublishProviders (#44) --- build/build.fs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/build/build.fs b/build/build.fs index 4aace83..3650013 100644 --- a/build/build.fs +++ b/build/build.fs @@ -251,8 +251,10 @@ module PulumiExtensions = Paket.Dependencies.FindPackageVersions( rootDirectory, [ githubPackageSource ], - $"Pulumi.FSharp.{provider}") - with e -> Array.empty + $"Pulumi.FSharp.{provider}" + ) + with e -> + Array.empty |> Set.ofArray |> Set.map (SemVer.parse) |> Set.contains ( @@ -863,12 +865,6 @@ let initTargets () = ==> "PublishToNuGet" ==>! "Publish" - "DotnetRestore" - ==> "BuildMyriadPlugin" - ==> "BuildProviders" - ==> "PackProviders" - ==>! "PublishProviders" - //----------------------------------------------------------------------------- // Target Start //----------------------------------------------------------------------------- From cd05e7020d85adccd12dfb8cf88f6e909a9bb2f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:54:23 -0300 Subject: [PATCH 033/113] Paket Update for 07/01/2024 16:22:28 (#42) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 70 +++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/paket.lock b/paket.lock index 7fb829e..115e75b 100644 --- a/paket.lock +++ b/paket.lock @@ -261,21 +261,21 @@ NUGET NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) Newtonsoft.Json (13.0.3) - NuGet.Common (6.10) - NuGet.Frameworks (>= 6.10) - NuGet.Configuration (6.10) - NuGet.Common (>= 6.10) + NuGet.Common (6.10.1) + NuGet.Frameworks (>= 6.10.1) + NuGet.Configuration (6.10.1) + NuGet.Common (>= 6.10.1) System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.10) - NuGet.Packaging (6.10) + NuGet.Frameworks (6.10.1) + NuGet.Packaging (6.10.1) Newtonsoft.Json (>= 13.0.3) - NuGet.Configuration (>= 6.10) - NuGet.Versioning (>= 6.10) + NuGet.Configuration (>= 6.10.1) + NuGet.Versioning (>= 6.10.1) System.Security.Cryptography.Pkcs (>= 6.0.4) - NuGet.Protocol (6.10) - NuGet.Packaging (>= 6.10) - NuGet.Versioning (6.10) - Octokit (12.0) + NuGet.Protocol (6.10.1) + NuGet.Packaging (>= 6.10.1) + NuGet.Versioning (6.10.1) + Octokit (13.0) Paket.Core (8.0.3) Chessie (>= 0.6) FSharp.Core (6.0.3) @@ -642,18 +642,18 @@ NUGET NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) Newtonsoft.Json (13.0.3) - NuGet.Common (6.10) - NuGet.Frameworks (>= 6.10) - NuGet.Configuration (6.10) - NuGet.Common (>= 6.10) + NuGet.Common (6.10.1) + NuGet.Frameworks (>= 6.10.1) + NuGet.Configuration (6.10.1) + NuGet.Common (>= 6.10.1) System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.10) - NuGet.Packaging (6.10) + NuGet.Frameworks (6.10.1) + NuGet.Packaging (6.10.1) Newtonsoft.Json (>= 13.0.3) - NuGet.Configuration (>= 6.10) - NuGet.Versioning (>= 6.10) + NuGet.Configuration (>= 6.10.1) + NuGet.Versioning (>= 6.10.1) System.Security.Cryptography.Pkcs (>= 6.0.4) - NuGet.Versioning (6.10) + NuGet.Versioning (6.10.1) Paket.Core (8.0.3) Chessie (>= 0.6) FSharp.Core (6.0.3) @@ -945,7 +945,7 @@ NUGET System.Reflection.Metadata (>= 5.0) FSharp.Core (8.0.300) Glob (1.1.9) - Google.Protobuf (3.27.1) + Google.Protobuf (3.27.2) Grpc.AspNetCore.Server (2.63) Grpc.Net.Common (>= 2.63) Grpc.AspNetCore.Server.Reflection (2.63) @@ -988,17 +988,17 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.4) Pulumi (>= 3.64) - Pulumi.Aws (6.41) + Pulumi.Aws (6.42.1) Pulumi (>= 3.64) - Pulumi.Azure (5.80) - Pulumi (>= 3.63.1) - Pulumi.AzureAD (5.52) + Pulumi.Azure (5.81) + Pulumi (>= 3.64) + Pulumi.AzureAD (5.53) + Pulumi (>= 3.64) + Pulumi.AzureNative (2.47.1) Pulumi (>= 3.64) - Pulumi.AzureNative (2.45) - Pulumi (>= 3.63.1) System.Collections.Immutable (>= 5.0) - Pulumi.Command (0.11.1) - Pulumi (>= 3.63.1) + Pulumi.Command (1.0) + Pulumi (>= 3.64) Pulumi.DigitalOcean (4.30.2) Pulumi (>= 3.63.1) Pulumi.Docker (4.5.4) @@ -1009,14 +1009,14 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.27) + Pulumi.Gcp (7.29) Pulumi (>= 3.64) - Pulumi.Kubernetes (4.13.1) + Pulumi.Kubernetes (4.14) Glob (>= 1.1.5) - Pulumi (>= 3.63.1) + Pulumi (>= 3.64) Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.2) - Pulumi (>= 3.63.1) + Pulumi.Random (4.16.3) + Pulumi (>= 3.64) Pulumi.Tls (5.0.3) Pulumi (>= 3.63.1) Semver (2.3) From c767aaf506334776a2570b866905bc1e8843d180 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 21:59:37 -0300 Subject: [PATCH 034/113] Paket Update for 07/01/2024 20:12:10 (#45) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 115e75b..2b26ed7 100644 --- a/paket.lock +++ b/paket.lock @@ -992,7 +992,7 @@ NUGET Pulumi (>= 3.64) Pulumi.Azure (5.81) Pulumi (>= 3.64) - Pulumi.AzureAD (5.53) + Pulumi.AzureAD (5.53.1) Pulumi (>= 3.64) Pulumi.AzureNative (2.47.1) Pulumi (>= 3.64) From d4b484bbd0bc5bb228f83c9aa5d4d05e2748d948 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 12:48:17 -0300 Subject: [PATCH 035/113] Paket Update for 07/02/2024 12:20:02 (#46) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 2b26ed7..dcafe7c 100644 --- a/paket.lock +++ b/paket.lock @@ -994,7 +994,7 @@ NUGET Pulumi (>= 3.64) Pulumi.AzureAD (5.53.1) Pulumi (>= 3.64) - Pulumi.AzureNative (2.47.1) + Pulumi.AzureNative (2.48) Pulumi (>= 3.64) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0) From fb69ea98bf3a6773c627a464eac5ef237a10aef1 Mon Sep 17 00:00:00 2001 From: Cadence Date: Wed, 3 Jul 2024 16:50:01 -0300 Subject: [PATCH 036/113] Improve reliability of Paket autoupdate when all providers are up to date; enable auto merge (#48) --- .github/workflows/build-and-test.yml | 2 +- .github/workflows/paket-autoupdate.yml | 2 +- .github/workflows/publish-providers.yml | 4 +- .github/workflows/publish.yml | 2 +- build/build.fs | 55 +++++++++++++++---------- 5 files changed, 37 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index aa6d01d..29c7521 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -8,7 +8,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup necessary dotnet SDKs uses: actions/setup-dotnet@v4 with: diff --git a/.github/workflows/paket-autoupdate.yml b/.github/workflows/paket-autoupdate.yml index abd0b95..08ae74f 100644 --- a/.github/workflows/paket-autoupdate.yml +++ b/.github/workflows/paket-autoupdate.yml @@ -13,7 +13,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup necessary dotnet SDKs uses: actions/setup-dotnet@v4 with: diff --git a/.github/workflows/publish-providers.yml b/.github/workflows/publish-providers.yml index d90d432..debb4f5 100644 --- a/.github/workflows/publish-providers.yml +++ b/.github/workflows/publish-providers.yml @@ -15,9 +15,7 @@ jobs: name: nuget runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 2 + - uses: actions/checkout@v4 - name: Setup necessary dotnet SDKs uses: actions/setup-dotnet@v4 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9904092..08c1de0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: name: nuget runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup necessary dotnet SDKs uses: actions/setup-dotnet@v4 with: diff --git a/build/build.fs b/build/build.fs index 3650013..e381624 100644 --- a/build/build.fs +++ b/build/build.fs @@ -644,6 +644,9 @@ let sourceLinkTest _ = let publishProvider packageName = fun (_: TargetParameter) -> + failOnLocalBuild () + failOnWrongBranch () + let nupkg = !!(distDir $"{packageName}.*.nupkg") @@ -685,7 +688,6 @@ let paketUpdate _ = failOnWrongBranch () failOnLocalBuild () - let dependencies = (Paket.Dependencies.Locate()).DependenciesFile let oldLockfile = @@ -694,35 +696,44 @@ let paketUpdate _ = |> Paket.LockFile.LoadFrom if Paket.UpdateProcess.Update(dependencies, Paket.UpdaterOptions.Default) then - let newLockfile = - (rootDirectory - "paket.lock") - |> Paket.LockFile.LoadFrom + if not (Git.Information.isCleanWorkingCopy rootDirectory) then + let newLockfile = + (rootDirectory + "paket.lock") + |> Paket.LockFile.LoadFrom - let packageUpdates = PulumiExtensions.getProviderVersions oldLockfile newLockfile + let packageUpdates = PulumiExtensions.getProviderVersions oldLockfile newLockfile - let newBranch = $"paket-update-{Git.Information.getCurrentHash ()}" - let prTitle = $"Paket Update for {DateTime.Now}" + let newBranch = $"paket-update-{Git.Information.getCurrentHash ()}" + let prTitle = $"Paket Update for {DateTime.Now}" - Git.Branches.checkoutNewBranch - rootDirectory - (Git.Information.getBranchName rootDirectory) - newBranch + Git.Branches.checkoutNewBranch + rootDirectory + (Git.Information.getBranchName rootDirectory) + newBranch - Git.Staging.stageFile rootDirectory "paket.lock" - |> ignore + Git.Staging.stageFile rootDirectory "paket.lock" + |> ignore - Git.Commit.exec rootDirectory prTitle + Git.Commit.exec rootDirectory prTitle - Git.Branches.pushBranch rootDirectory gitHubRepoUrl newBranch + Git.Branches.pushBranch rootDirectory gitHubRepoUrl newBranch - let pr = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch, Body = prTitle) + let newPR = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch, Body = prTitle) - GitHub.createClientWithToken (Option.get githubToken) - |> GitHub.createPullRequest gitOwner gitRepoName pr - |> Async.RunSynchronously - |> Async.RunSynchronously - |> ignore + let pr = + GitHub.createClientWithToken (Option.get githubToken) + |> GitHub.createPullRequest gitOwner gitRepoName newPR + |> Async.RunSynchronously + |> Async.RunSynchronously + + let prMergeResult = Process.shellExec { + Program = "gh" + WorkingDir = rootDirectory + CommandLine = $"pr merge {pr.Id} --auto" + Args = [] + } + if prMergeResult <> 0 then failwith "gh pr merge failed with exit code {prMerge}" else failwith "Paket update failed. Unable to create PR." From 8e7066e71f683076a7df85c43d4dab78af5151a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:53:08 -0300 Subject: [PATCH 037/113] Paket Update for 07/03/2024 00:50:46 (#47) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paket.lock b/paket.lock index dcafe7c..df44aa9 100644 --- a/paket.lock +++ b/paket.lock @@ -275,7 +275,7 @@ NUGET NuGet.Protocol (6.10.1) NuGet.Packaging (>= 6.10.1) NuGet.Versioning (6.10.1) - Octokit (13.0) + Octokit (13.0.1) Paket.Core (8.0.3) Chessie (>= 0.6) FSharp.Core (6.0.3) @@ -1017,8 +1017,8 @@ NUGET Pulumi.Protobuf (3.20.1) Pulumi.Random (4.16.3) Pulumi (>= 3.64) - Pulumi.Tls (5.0.3) - Pulumi (>= 3.63.1) + Pulumi.Tls (5.0.4) + Pulumi (>= 3.64) Semver (2.3) Serilog (4.0) Serilog.Extensions.Logging (8.0) From e23cff05ca46d0972bf449ae55ecdc511459c63d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:58:59 -0300 Subject: [PATCH 038/113] Paket Update for 07/03/2024 19:54:49 (#49) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index df44aa9..8380a23 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.64) Pulumi.Aws (6.42.1) Pulumi (>= 3.64) - Pulumi.Azure (5.81) + Pulumi.Azure (5.82) Pulumi (>= 3.64) Pulumi.AzureAD (5.53.1) Pulumi (>= 3.64) From d962bd2a71aadca0c7b371f10392f3a8f4d1e7ec Mon Sep 17 00:00:00 2001 From: Cadence Date: Wed, 3 Jul 2024 23:19:45 -0300 Subject: [PATCH 039/113] fix(build): `gh pr merge` arguments (#50) --- build/build.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/build.fs b/build/build.fs index e381624..a77fde5 100644 --- a/build/build.fs +++ b/build/build.fs @@ -730,10 +730,10 @@ let paketUpdate _ = let prMergeResult = Process.shellExec { Program = "gh" WorkingDir = rootDirectory - CommandLine = $"pr merge {pr.Id} --auto" + CommandLine = $"pr merge {pr.Number} --auto" Args = [] } - if prMergeResult <> 0 then failwith "gh pr merge failed with exit code {prMerge}" + if prMergeResult <> 0 then failwith $"gh pr merge failed with exit code {prMergeResult}" else failwith "Paket update failed. Unable to create PR." From 9ff89f5fd929cf10bd5afb037dee6d926d23c560 Mon Sep 17 00:00:00 2001 From: Cadence Date: Wed, 3 Jul 2024 23:29:52 -0300 Subject: [PATCH 040/113] fix(build): `--squash` on `gh pr merge` (#52) --- build/build.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.fs b/build/build.fs index a77fde5..88321d8 100644 --- a/build/build.fs +++ b/build/build.fs @@ -730,7 +730,7 @@ let paketUpdate _ = let prMergeResult = Process.shellExec { Program = "gh" WorkingDir = rootDirectory - CommandLine = $"pr merge {pr.Number} --auto" + CommandLine = $"pr merge {pr.Number} --squash --auto" Args = [] } if prMergeResult <> 0 then failwith $"gh pr merge failed with exit code {prMergeResult}" From d00f5a3a45e7df3880233878db9546e6bb6a4d2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 23:30:22 -0300 Subject: [PATCH 041/113] Paket Update for 07/04/2024 02:21:22 (#51) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 8380a23..27a2045 100644 --- a/paket.lock +++ b/paket.lock @@ -988,7 +988,7 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.4) Pulumi (>= 3.64) - Pulumi.Aws (6.42.1) + Pulumi.Aws (6.43) Pulumi (>= 3.64) Pulumi.Azure (5.82) Pulumi (>= 3.64) From 06a7a0ce26a38c6dbac15b1440d23257f103add8 Mon Sep 17 00:00:00 2001 From: Cadence Date: Fri, 5 Jul 2024 13:28:31 -0300 Subject: [PATCH 042/113] Paket update checks git status for paket.lock changes (#53) --- build/build.fs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build/build.fs b/build/build.fs index 88321d8..97755b2 100644 --- a/build/build.fs +++ b/build/build.fs @@ -696,7 +696,11 @@ let paketUpdate _ = |> Paket.LockFile.LoadFrom if Paket.UpdateProcess.Update(dependencies, Paket.UpdaterOptions.Default) then - if not (Git.Information.isCleanWorkingCopy rootDirectory) then + let modified = + Git.FileStatus.getChangedFilesInWorkingCopy + rootDirectory + (Git.Information.getCurrentSHA1 rootDirectory) + if Seq.contains (Git.FileStatus.Modified, "paket.lock") modified then let newLockfile = (rootDirectory "paket.lock") From 1823b3ac7f015342ab29ea1e291511761e1cd848 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 16:15:05 +0000 Subject: [PATCH 043/113] Paket Update for 07/08/2024 16:15:02 (#54) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 27a2045..2a17cb8 100644 --- a/paket.lock +++ b/paket.lock @@ -994,7 +994,7 @@ NUGET Pulumi (>= 3.64) Pulumi.AzureAD (5.53.1) Pulumi (>= 3.64) - Pulumi.AzureNative (2.48) + Pulumi.AzureNative (2.49) Pulumi (>= 3.64) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0) @@ -1009,7 +1009,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.29) + Pulumi.Gcp (7.30) Pulumi (>= 3.64) Pulumi.Kubernetes (4.14) Glob (>= 1.1.5) From b7b56abf84f55b621d817fad2e4d15b75036363d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 20:14:05 +0000 Subject: [PATCH 044/113] Paket Update for 07/08/2024 20:14:01 (#55) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 2a17cb8..bb549d8 100644 --- a/paket.lock +++ b/paket.lock @@ -1009,7 +1009,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.30) + Pulumi.Gcp (7.30.1) Pulumi (>= 3.64) Pulumi.Kubernetes (4.14) Glob (>= 1.1.5) From 0803718cc37a232f531c4c59dc5f26633bbd05cb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 00:51:47 +0000 Subject: [PATCH 045/113] Paket Update for 07/09/2024 00:51:45 (#56) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index bb549d8..eeaf047 100644 --- a/paket.lock +++ b/paket.lock @@ -988,9 +988,9 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.4) Pulumi (>= 3.64) - Pulumi.Aws (6.43) + Pulumi.Aws (6.44) Pulumi (>= 3.64) - Pulumi.Azure (5.82) + Pulumi.Azure (5.83) Pulumi (>= 3.64) Pulumi.AzureAD (5.53.1) Pulumi (>= 3.64) From 454de0f581f7ca5366172891c4ef4513d465bbc9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:15:25 +0000 Subject: [PATCH 046/113] Paket Update for 07/09/2024 16:15:14 (#57) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/paket.lock b/paket.lock index eeaf047..6ac4664 100644 --- a/paket.lock +++ b/paket.lock @@ -6,7 +6,7 @@ NUGET Expecto (10.2.1) FSharp.Core (>= 7.0.200) Mono.Cecil (>= 0.11.4 < 1.0) - FSharp.Core (8.0.300) + FSharp.Core (8.0.301) Microsoft.Build.Tasks.Git (8.0) - copy_local: true Microsoft.CodeCoverage (17.10) Microsoft.NET.Test.Sdk (17.10) @@ -38,13 +38,12 @@ NUGET BinaryDefense.FSharp.Analyzers.Hashing (0.2.2) FSharp.Analyzers.SDK (>= 0.8) - restriction: >= net5.0 FSharp.Core (>= 5.0.1) - restriction: >= net5.0 - FSharp.Analyzers.SDK (0.26) - restriction: >= net5.0 - FSharp.Compiler.Service (43.8.300) - restriction: >= net6.0 - FSharp.Core (8.0.300) - restriction: >= net6.0 + FSharp.Analyzers.SDK (0.16) - restriction: >= net5.0 + FSharp.Compiler.Service (>= 43.7.400) - restriction: >= net6.0 + FSharp.Core (>= 7.0.400) - restriction: >= net6.0 McMaster.NETCore.Plugins (>= 1.4) - restriction: >= net6.0 - Microsoft.Extensions.Logging.Abstractions (>= 6.0) - restriction: >= net6.0 - FSharp.Compiler.Service (43.8.300) - restriction: >= net6.0 - FSharp.Core (8.0.300) - restriction: >= netstandard2.0 + FSharp.Compiler.Service (43.8.301) - restriction: >= net6.0 + FSharp.Core (8.0.301) - restriction: >= netstandard2.0 System.Buffers (>= 4.5.1) - restriction: >= netstandard2.0 System.Collections.Immutable (>= 7.0) - restriction: >= netstandard2.0 System.Diagnostics.DiagnosticSource (>= 7.0.2) - restriction: >= netstandard2.0 @@ -52,17 +51,14 @@ NUGET System.Reflection.Emit (>= 4.7) - restriction: >= netstandard2.0 System.Reflection.Metadata (>= 7.0) - restriction: >= netstandard2.0 System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: >= netstandard2.0 - FSharp.Core (8.0.300) - restriction: >= net5.0 + FSharp.Core (8.0.301) - restriction: >= net5.0 McMaster.NETCore.Plugins (1.4) - restriction: >= net6.0 Microsoft.DotNet.PlatformAbstractions (>= 3.1.6) - restriction: >= netcoreapp2.1 Microsoft.Extensions.DependencyModel (>= 5.0) - restriction: >= netcoreapp2.1 Microsoft.DotNet.PlatformAbstractions (3.1.6) - restriction: >= net6.0 - Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) - restriction: >= net6.0 - Microsoft.Extensions.DependencyModel (8.0) - restriction: >= net6.0 + Microsoft.Extensions.DependencyModel (8.0.1) - restriction: >= net6.0 System.Text.Encodings.Web (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) - System.Text.Json (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) - Microsoft.Extensions.Logging.Abstractions (8.0.1) - restriction: >= net6.0 - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) - restriction: || (>= net462) (>= netstandard2.0) + System.Text.Json (>= 8.0.4) - restriction: || (>= net462) (>= netstandard2.0) System.Buffers (4.5.1) - restriction: >= net6.0 System.Collections.Immutable (8.0) - restriction: >= net6.0 System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) @@ -77,7 +73,7 @@ NUGET System.Runtime.CompilerServices.Unsafe (6.0) - restriction: >= net6.0 System.Text.Encodings.Web (8.0) - restriction: >= net6.0 System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) - System.Text.Json (8.0.3) - restriction: >= net6.0 + System.Text.Json (8.0.4) - restriction: >= net6.0 System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (>= net462) (&& (>= net6.0) (< net7.0)) (&& (< net6.0) (>= netstandard2.0)) System.Text.Encodings.Web (>= 8.0) - restriction: || (>= net462) (>= netstandard2.0) @@ -355,7 +351,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Formats.Asn1 (8.0) + System.Formats.Asn1 (8.0.1) System.Globalization (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -423,7 +419,7 @@ NUGET System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Net.Http.WinHttpHandler (8.0) + System.Net.Http.WinHttpHandler (8.0.1) System.Net.Primitives (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) @@ -573,7 +569,7 @@ NUGET System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Text.Encodings.Web (8.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Json (8.0.3) + System.Text.Json (8.0.4) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Text.Encodings.Web (>= 8.0) System.Threading (4.3) @@ -583,7 +579,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (8.0) + System.Threading.Tasks.Dataflow (8.0.1) System.Windows.Extensions (8.0) GROUP Myriad @@ -728,7 +724,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Formats.Asn1 (8.0) + System.Formats.Asn1 (8.0.1) System.Globalization (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -795,7 +791,7 @@ NUGET System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Net.Http.WinHttpHandler (8.0) + System.Net.Http.WinHttpHandler (8.0.1) System.Net.Primitives (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) @@ -943,7 +939,7 @@ NUGET remote: https://api.nuget.org/v3/index.json Ben.Demystifier (0.4.1) System.Reflection.Metadata (>= 5.0) - FSharp.Core (8.0.300) + FSharp.Core (8.0.301) Glob (1.1.9) Google.Protobuf (3.27.2) Grpc.AspNetCore.Server (2.63) From 3855b3d9d61bdba793eaf594a60bb14b708788b8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:21:23 +0000 Subject: [PATCH 047/113] Paket Update for 07/10/2024 12:21:18 (#58) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 6ac4664..c0aa1f8 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.64) Pulumi.AzureAD (5.53.1) Pulumi (>= 3.64) - Pulumi.AzureNative (2.49) + Pulumi.AzureNative (2.49.1) Pulumi (>= 3.64) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0) From af06bac50e6c70c816653e59d2896e227e3c967a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 18:39:08 -0300 Subject: [PATCH 048/113] Paket Update for 07/10/2024 20:12:38 (#59) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index c0aa1f8..5a142fa 100644 --- a/paket.lock +++ b/paket.lock @@ -1005,9 +1005,9 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.30.1) + Pulumi.Gcp (7.30.2) Pulumi (>= 3.64) - Pulumi.Kubernetes (4.14) + Pulumi.Kubernetes (4.15) Glob (>= 1.1.5) Pulumi (>= 3.64) Pulumi.Protobuf (3.20.1) From a27b885a730552089ce3cadc2ed04b4d7cff393e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 21:58:10 -0300 Subject: [PATCH 049/113] Paket Update for 07/13/2024 00:51:59 (#60) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 5a142fa..84f9d39 100644 --- a/paket.lock +++ b/paket.lock @@ -590,7 +590,7 @@ NUGET Chessie (0.6) FSharp.Core (>= 4.0.1.7-alpha) NETStandard.Library (>= 1.6) - Fantomas (6.3.9) + Fantomas (6.3.10) FSharp.Core (6.0.3) FSharp.Data (6.4) FSharp.Core (>= 6.0.1) From 1a8e07961731ee2cb060cf8cbddece1e3d05fb93 Mon Sep 17 00:00:00 2001 From: Cadence Date: Mon, 29 Jul 2024 17:44:35 -0300 Subject: [PATCH 050/113] fix(build): paket auto-updates only update providers (#62) --- build/build.fs | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/build/build.fs b/build/build.fs index 97755b2..f117b8e 100644 --- a/build/build.fs +++ b/build/build.fs @@ -695,15 +695,20 @@ let paketUpdate _ = "paket.lock") |> Paket.LockFile.LoadFrom - if Paket.UpdateProcess.Update(dependencies, Paket.UpdaterOptions.Default) then - let modified = + if Paket.UpdateProcess.UpdateGroup( + dependencies, + Paket.Domain.GroupName "Providers", + Paket.UpdaterOptions.Default) then + + let modified = Git.FileStatus.getChangedFilesInWorkingCopy rootDirectory (Git.Information.getCurrentSHA1 rootDirectory) + if Seq.contains (Git.FileStatus.Modified, "paket.lock") modified then let newLockfile = (rootDirectory - "paket.lock") + "paket.lock") |> Paket.LockFile.LoadFrom let packageUpdates = PulumiExtensions.getProviderVersions oldLockfile newLockfile @@ -723,21 +728,28 @@ let paketUpdate _ = Git.Branches.pushBranch rootDirectory gitHubRepoUrl newBranch - let newPR = Octokit.NewPullRequest(prTitle, newBranch, releaseBranch, Body = prTitle) + let newPR = + Octokit.NewPullRequest(prTitle, newBranch, releaseBranch, Body = prTitle) - let pr = + let pr = GitHub.createClientWithToken (Option.get githubToken) |> GitHub.createPullRequest gitOwner gitRepoName newPR |> Async.RunSynchronously |> Async.RunSynchronously - let prMergeResult = Process.shellExec { - Program = "gh" - WorkingDir = rootDirectory - CommandLine = $"pr merge {pr.Number} --squash --auto" - Args = [] - } - if prMergeResult <> 0 then failwith $"gh pr merge failed with exit code {prMergeResult}" + let prMergeResult = + Process.shellExec { + Program = "gh" + WorkingDir = rootDirectory + CommandLine = $"pr merge {pr.Number} --squash --auto" + Args = [] + } + + if + prMergeResult + <> 0 + then + failwith $"gh pr merge failed with exit code {prMergeResult}" else failwith "Paket update failed. Unable to create PR." From b37ebebb76d18a465c23ac7153b2f89a32c8ba2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 18:01:38 -0300 Subject: [PATCH 051/113] Paket Update for 07/29/2024 20:59:35 (#63) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 74 +++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/paket.lock b/paket.lock index 84f9d39..21a9970 100644 --- a/paket.lock +++ b/paket.lock @@ -942,21 +942,21 @@ NUGET FSharp.Core (8.0.301) Glob (1.1.9) Google.Protobuf (3.27.2) - Grpc.AspNetCore.Server (2.63) - Grpc.Net.Common (>= 2.63) - Grpc.AspNetCore.Server.Reflection (2.63) - Google.Protobuf (>= 3.24) - Grpc.AspNetCore.Server (>= 2.63) - Grpc.Reflection (>= 2.63) - Grpc.Core.Api (2.63) - Grpc.Net.Client (2.63) - Grpc.Net.Common (>= 2.63) + Grpc.AspNetCore.Server (2.65) + Grpc.Net.Common (>= 2.65) + Grpc.AspNetCore.Server.Reflection (2.65) + Google.Protobuf (>= 3.27) + Grpc.AspNetCore.Server (>= 2.65) + Grpc.Reflection (>= 2.65) + Grpc.Core.Api (2.65) + Grpc.Net.Client (2.65) + Grpc.Net.Common (>= 2.65) Microsoft.Extensions.Logging.Abstractions (>= 6.0) - Grpc.Net.Common (2.63) - Grpc.Core.Api (>= 2.63) - Grpc.Reflection (2.63) - Google.Protobuf (>= 3.24) - Grpc.Core.Api (>= 2.63) + Grpc.Net.Common (2.65) + Grpc.Core.Api (>= 2.65) + Grpc.Reflection (2.65) + Google.Protobuf (>= 3.27) + Grpc.Core.Api (>= 2.65) Microsoft.Extensions.DependencyInjection (8.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) @@ -971,41 +971,41 @@ NUGET Microsoft.Extensions.Primitives (>= 8.0) Microsoft.Extensions.Primitives (8.0) OneOf (3.0.271) - Pulumi (3.64) + Pulumi (3.65) Ben.Demystifier (>= 0.4.1) - Grpc.AspNetCore.Server (>= 2.37) - Grpc.AspNetCore.Server.Reflection (>= 2.37) - Grpc.Net.Client (>= 2.52) - Microsoft.Extensions.Logging.Abstractions (>= 3.1.16) + Grpc.AspNetCore.Server (>= 2.63) + Grpc.AspNetCore.Server.Reflection (>= 2.63) + Grpc.Net.Client (>= 2.63) + Microsoft.Extensions.Logging.Abstractions (>= 6.0) OneOf (>= 3.0.216) Pulumi.Protobuf (>= 3.20.1) Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.4) - Pulumi (>= 3.64) - Pulumi.Aws (6.44) - Pulumi (>= 3.64) - Pulumi.Azure (5.83) - Pulumi (>= 3.64) - Pulumi.AzureAD (5.53.1) - Pulumi (>= 3.64) - Pulumi.AzureNative (2.49.1) - Pulumi (>= 3.64) + Pulumi.Auth0 (3.5) + Pulumi (>= 3.65) + Pulumi.Aws (6.47) + Pulumi (>= 3.65) + Pulumi.Azure (5.85) + Pulumi (>= 3.65) + Pulumi.AzureAD (5.53.3) + Pulumi (>= 3.65) + Pulumi.AzureNative (2.51) + Pulumi (>= 3.65) System.Collections.Immutable (>= 5.0) - Pulumi.Command (1.0) - Pulumi (>= 3.64) + Pulumi.Command (1.0.1) + Pulumi (>= 3.65) Pulumi.DigitalOcean (4.30.2) Pulumi (>= 3.63.1) - Pulumi.Docker (4.5.4) - Pulumi (>= 3.63.1) - Pulumi.FSharp (3.64) + Pulumi.Docker (4.5.5) + Pulumi (>= 3.65) + Pulumi.FSharp (3.65) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.64) + Pulumi (>= 3.65) Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.30.2) + Pulumi.Gcp (7.32) Pulumi (>= 3.64) Pulumi.Kubernetes (4.15) Glob (>= 1.1.5) @@ -1016,7 +1016,7 @@ NUGET Pulumi.Tls (5.0.4) Pulumi (>= 3.64) Semver (2.3) - Serilog (4.0) + Serilog (4.0.1) Serilog.Extensions.Logging (8.0) Microsoft.Extensions.Logging (>= 8.0) Serilog (>= 3.1.1) From 5c9e798ad0e12608aaeead7b8e8cc201f5c89219 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:59:17 -0300 Subject: [PATCH 052/113] Paket Update for 07/31/2024 12:21:39 (#64) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 21a9970..7d60d5a 100644 --- a/paket.lock +++ b/paket.lock @@ -1005,8 +1005,8 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.32) - Pulumi (>= 3.64) + Pulumi.Gcp (7.33) + Pulumi (>= 3.65) Pulumi.Kubernetes (4.15) Glob (>= 1.1.5) Pulumi (>= 3.64) From 42b89f45cf192d8b0e70204d72b3dc0626374e20 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:29:47 -0300 Subject: [PATCH 053/113] Paket Update for 08/01/2024 08:14:53 (#66) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 7d60d5a..dc247dc 100644 --- a/paket.lock +++ b/paket.lock @@ -941,7 +941,7 @@ NUGET System.Reflection.Metadata (>= 5.0) FSharp.Core (8.0.301) Glob (1.1.9) - Google.Protobuf (3.27.2) + Google.Protobuf (3.27.3) Grpc.AspNetCore.Server (2.65) Grpc.Net.Common (>= 2.65) Grpc.AspNetCore.Server.Reflection (2.65) From d0d9dc765da1486a07a138a1a89d9bdc13d68638 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:15:31 -0300 Subject: [PATCH 054/113] Paket Update for 08/02/2024 16:14:16 (#67) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index dc247dc..b362116 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.65) Pulumi.AzureAD (5.53.3) Pulumi (>= 3.65) - Pulumi.AzureNative (2.51) + Pulumi.AzureNative (2.52) Pulumi (>= 3.65) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) @@ -1005,7 +1005,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.33) + Pulumi.Gcp (7.34) Pulumi (>= 3.65) Pulumi.Kubernetes (4.15) Glob (>= 1.1.5) From c21fd7a77ca5f50b683dab91f06158d1e4fed875 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 12:40:25 -0300 Subject: [PATCH 055/113] Paket Update for 08/05/2024 16:14:20 (#68) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/paket.lock b/paket.lock index b362116..5447213 100644 --- a/paket.lock +++ b/paket.lock @@ -986,17 +986,17 @@ NUGET Pulumi (>= 3.65) Pulumi.Aws (6.47) Pulumi (>= 3.65) - Pulumi.Azure (5.85) + Pulumi.Azure (5.86) Pulumi (>= 3.65) Pulumi.AzureAD (5.53.3) Pulumi (>= 3.65) - Pulumi.AzureNative (2.52) + Pulumi.AzureNative (2.52.1) Pulumi (>= 3.65) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.30.2) - Pulumi (>= 3.63.1) + Pulumi.DigitalOcean (4.31) + Pulumi (>= 3.65) Pulumi.Docker (4.5.5) Pulumi (>= 3.65) Pulumi.FSharp (3.65) From 85894e795a5c624eac2b0a0c9ffc669f20c7a528 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 13:18:32 -0300 Subject: [PATCH 056/113] Paket Update for 08/06/2024 16:14:50 (#69) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 5447213..36d2f56 100644 --- a/paket.lock +++ b/paket.lock @@ -984,7 +984,7 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.5) Pulumi (>= 3.65) - Pulumi.Aws (6.47) + Pulumi.Aws (6.48) Pulumi (>= 3.65) Pulumi.Azure (5.86) Pulumi (>= 3.65) @@ -1005,7 +1005,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.34) + Pulumi.Gcp (7.35) Pulumi (>= 3.65) Pulumi.Kubernetes (4.15) Glob (>= 1.1.5) From a3859b4fea2277b3e145e00c233903b873c67516 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 01:32:56 -0300 Subject: [PATCH 057/113] Paket Update for 08/06/2024 20:10:24 (#70) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 36d2f56..9d1adcb 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.65) Pulumi.AzureAD (5.53.3) Pulumi (>= 3.65) - Pulumi.AzureNative (2.52.1) + Pulumi.AzureNative (2.53) Pulumi (>= 3.65) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From b38f85f756055c6bd8c77ca0c96374be4144294b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 22:19:09 -0300 Subject: [PATCH 058/113] Paket Update for 08/08/2024 08:15:08 (#71) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 9d1adcb..115c361 100644 --- a/paket.lock +++ b/paket.lock @@ -1007,9 +1007,9 @@ NUGET Pulumi.FSharp (>= 3.43.1) Pulumi.Gcp (7.35) Pulumi (>= 3.65) - Pulumi.Kubernetes (4.15) + Pulumi.Kubernetes (4.16) Glob (>= 1.1.5) - Pulumi (>= 3.64) + Pulumi (>= 3.65) Pulumi.Protobuf (3.20.1) Pulumi.Random (4.16.3) Pulumi (>= 3.64) From 1831e83b75f35181d68d1277f35c28f45b5b7c21 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 10 Aug 2024 22:13:19 -0300 Subject: [PATCH 059/113] Paket Update for 08/09/2024 04:14:30 (#72) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 115c361..320124e 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.65) Pulumi.AzureAD (5.53.3) Pulumi (>= 3.65) - Pulumi.AzureNative (2.53) + Pulumi.AzureNative (2.54) Pulumi (>= 3.65) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From c52db4f6cd829ae103ef730c9437efeafb9ed5b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 11 Aug 2024 13:17:19 -0300 Subject: [PATCH 060/113] Paket Update for 08/11/2024 04:14:20 (#73) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/paket.lock b/paket.lock index 320124e..0563f24 100644 --- a/paket.lock +++ b/paket.lock @@ -971,7 +971,7 @@ NUGET Microsoft.Extensions.Primitives (>= 8.0) Microsoft.Extensions.Primitives (8.0) OneOf (3.0.271) - Pulumi (3.65) + Pulumi (3.66.1) Ben.Demystifier (>= 0.4.1) Grpc.AspNetCore.Server (>= 2.63) Grpc.AspNetCore.Server.Reflection (>= 2.63) @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.65) Pulumi.AzureAD (5.53.3) Pulumi (>= 3.65) - Pulumi.AzureNative (2.54) + Pulumi.AzureNative (2.55) Pulumi (>= 3.65) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) @@ -999,9 +999,9 @@ NUGET Pulumi (>= 3.65) Pulumi.Docker (4.5.5) Pulumi (>= 3.65) - Pulumi.FSharp (3.65) + Pulumi.FSharp (3.66.1) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.65) + Pulumi (>= 3.66.1) Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) From bfb67cb967c8e19d86057e91a0c9c46ede476df0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 21:55:19 -0300 Subject: [PATCH 061/113] Paket Update for 08/12/2024 20:12:42 (#74) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 0563f24..414718f 100644 --- a/paket.lock +++ b/paket.lock @@ -984,8 +984,8 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.5) Pulumi (>= 3.65) - Pulumi.Aws (6.48) - Pulumi (>= 3.65) + Pulumi.Aws (6.49) + Pulumi (>= 3.66.1) Pulumi.Azure (5.86) Pulumi (>= 3.65) Pulumi.AzureAD (5.53.3) From f611b6704826e278d118d8daff025b86f456f8ec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 13 Aug 2024 13:15:29 -0300 Subject: [PATCH 062/113] Paket Update for 08/13/2024 12:22:24 (#75) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 414718f..b78f263 100644 --- a/paket.lock +++ b/paket.lock @@ -986,8 +986,8 @@ NUGET Pulumi (>= 3.65) Pulumi.Aws (6.49) Pulumi (>= 3.66.1) - Pulumi.Azure (5.86) - Pulumi (>= 3.65) + Pulumi.Azure (5.87) + Pulumi (>= 3.66.1) Pulumi.AzureAD (5.53.3) Pulumi (>= 3.65) Pulumi.AzureNative (2.55) From e0d7cd5383a68f9e76a38b5b1f3019330645f903 Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 1 Oct 2024 21:41:33 -0300 Subject: [PATCH 063/113] Fix AWS provider for >6.49; improvements to ResourceOptions (#77) --- build/build.fs | 11 ++- src/Pulumi.FSharp.Core/Config.fs | 16 +++- src/Pulumi.FSharp.Myriad/AstHelpers.fs | 14 +++ src/Pulumi.FSharp.Myriad/Builder.fs | 126 ++++++++++++++++++++++++- src/Pulumi.FSharp.Myriad/CHANGELOG.md | 11 +++ src/Pulumi.FSharp.Myriad/Modules.fs | 96 +++++++++++-------- src/Pulumi.FSharp.Myriad/Operations.fs | 26 ++++- 7 files changed, 252 insertions(+), 48 deletions(-) diff --git a/build/build.fs b/build/build.fs index f117b8e..01dacf2 100644 --- a/build/build.fs +++ b/build/build.fs @@ -695,10 +695,13 @@ let paketUpdate _ = "paket.lock") |> Paket.LockFile.LoadFrom - if Paket.UpdateProcess.UpdateGroup( - dependencies, - Paket.Domain.GroupName "Providers", - Paket.UpdaterOptions.Default) then + if + Paket.UpdateProcess.UpdateGroup( + dependencies, + Paket.Domain.GroupName "Providers", + Paket.UpdaterOptions.Default + ) + then let modified = Git.FileStatus.getChangedFilesInWorkingCopy diff --git a/src/Pulumi.FSharp.Core/Config.fs b/src/Pulumi.FSharp.Core/Config.fs index d854450..25d94e9 100644 --- a/src/Pulumi.FSharp.Core/Config.fs +++ b/src/Pulumi.FSharp.Core/Config.fs @@ -2,16 +2,30 @@ module Pulumi.FSharp.Config open Pulumi -let private pulumiConfig = Lazy(fun _ -> Config()) +let private pulumiConfig = lazy Config() type Config() = member _.Item with get (name) = pulumiConfig.Value.Require(name) + member _.get<'T> (key: string) = + pulumiConfig.Value.RequireObject<'T>(key) + + member _.tryGet<'T when 'T: null> (key: string) = + pulumiConfig.Value.GetObject<'T>(key) + |> Option.ofObj + type SecretConfig() = member _.Item with get (name) = pulumiConfig.Value.RequireSecret(name) + member _.get<'T> (key: string) = + pulumiConfig.Value.RequireSecretObject<'T>(key) + + member _.tryGet<'T> (key: string) = + pulumiConfig.Value.GetSecretObject<'T>(key) + |> Option.ofObj + // Type provider for YAML config variables let config = Config() let secret = SecretConfig() diff --git a/src/Pulumi.FSharp.Myriad/AstHelpers.fs b/src/Pulumi.FSharp.Myriad/AstHelpers.fs index 6490867..85831ae 100644 --- a/src/Pulumi.FSharp.Myriad/AstHelpers.fs +++ b/src/Pulumi.FSharp.Myriad/AstHelpers.fs @@ -154,6 +154,20 @@ type Expr = ) ) + static member appTuple(func: SynExpr, args) = + Expr.app ( + func, + Expr.paren ( + Expr.tuple ( + args + |> List.map Expr.ident + ) + ) + ) + + static member appTuple(func: string, args: SynExpr list) = + Expr.app (func, Expr.paren (Expr.tuple args)) + static member match'(expr, clauses) = SynExpr.CreateMatch(expr, clauses) /// value diff --git a/src/Pulumi.FSharp.Myriad/Builder.fs b/src/Pulumi.FSharp.Myriad/Builder.fs index 2125fff..89df0bd 100644 --- a/src/Pulumi.FSharp.Myriad/Builder.fs +++ b/src/Pulumi.FSharp.Myriad/Builder.fs @@ -1,5 +1,6 @@ module AstBuilder +open Myriad.Core.AstExtensions open AstOperations open AstInstance open AstHelpers @@ -202,17 +203,140 @@ let createBuilderClass isType isComponent name pTypes = if not isType then croOperation "DependsOn" + ResourceOptions "Ensure this resource gets created after its dependency" "dependency" (inputListOfInput "dependency") + false true - if not isType then croOperation "DependsOn" + ResourceOptions "Ensure this resource gets created after its dependency" "dependency" (inputListOfResources "dependency") + true + false + + croOperation + "Id" + ResourceOptions + "An optional existing ID to load, rather than create." + "resourceId" + (Expr.ident "resourceId") + false + true + + croOperation + "IgnoreChanges" + ResourceOptions + "If set to True, the providers Delete method will not be called for this resource." + "paths" + (Expr.ident "paths") + true + true + + croOperation + "ReplaceOnChanges" + ResourceOptions + """Changes to any of these property paths will force a replacement. If this list includes `"*"`, changes to any properties will force a replacement. Initialization errors from previous deployments will require replacement instead of update only if `"*"` is passed.""" + "paths" + (Expr.ident "paths") + true + true + + croOperation + "ResourceTransformations" + ResourceOptions + "Optional list of transformations to apply to this resource during construction.The transformations are applied in order, and are applied prior to transformation applied to parents walking from the resource up to the stack." + "transformations" + (Expr.ident "transformations") + true + true + + croOperation + "RetainOnDelete" + ResourceOptions + "If set to True, the providers Delete method will not be called for this resource." + "retain" + (Expr.ident "retain") + false + true + + croOperation + "Urn" + ResourceOptions + "The URN of a previously-registered resource of this type to read from the engine." + "urn" + (Expr.ident "urn") + false + true + + croOperation + "Protect" + ResourceOptions + "When set to true, protect ensures this resource cannot be deleted." + "isProtected" + (Expr.ident "isProtected") false + true + + croOperation + "Parent" + ResourceOptions + "An optional parent resource to which this resource belongs." + "parent" + (Expr.ident "parent") + false + true + + // CustomResourceOptions-specific types + if not isComponent then + croOperation + "AdditionalSecretOutputs" + CustomResourceOptions + "The names of outputs for this resource that should be treated as secrets. This augments the list that the resource provider and pulumi engine already determine based on inputs to your resource. It can be used to mark certain outputs as a secrets on a per resource basis." + "outputs" + (Expr.ident "outputs") + true + true + + croOperation + "DeleteBeforeReplace" + CustomResourceOptions + "When set to `true`, indicates that this resource should be deleted before its replacement is created when replacement is necessary." + "deletedBeforeReplace" + (Expr.ident "deletedBeforeReplace") + false + true + + croOperation + "ImportId" + CustomResourceOptions + "When provided with a resource ID, import indicates that this resource's provider should import its state from the cloud resource with the given ID. The inputs to the resource's constructor must align with the resource's current state. Once a resource has been imported, the import property must be removed from the resource's options." + "resourceId" + (Expr.ident "resourceId") + false + true + + croOperation + "Provider" + ResourceOptions + "An optional provider to use for this resource's CRUD operations. If no provider is supplied, the default provider for the resource's package will be used. The default provider is pulled from the parent's provider bag (see also ComponentResourceOptions.providers)." + "resourceProvider" + (Expr.ident "resourceProvider") + false + true + + else + croOperation + "Providers" + ComponentResourceOptions + "An optional set of providers to use for child resources." + "resourceProviders" + (Expr.ident "resourceProviders") + true + true ] ) diff --git a/src/Pulumi.FSharp.Myriad/CHANGELOG.md b/src/Pulumi.FSharp.Myriad/CHANGELOG.md index 63ac2f0..3ec8ac2 100644 --- a/src/Pulumi.FSharp.Myriad/CHANGELOG.md +++ b/src/Pulumi.FSharp.Myriad/CHANGELOG.md @@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.2.0] - 2024-10-01 + +Support for `ResourceOptions`-derived types has been improved, allowing more flexible customization + +### Added +- Various custom operations that represent `ResourceOptions` in the Pulumi .NET SDK. + +### Fixed +- Fixed an issue where specific resource types could not be used as inputs to other Pulumi resources (such as in the AWS providers >6.49) +- Some providers such as AWS and Docker, which use inconsistent casing for resource names, now handle names case-insensitivitely. + ## [3.1.7] - 2024-06-24 Pulumi providers that use `ComponentResource` as a base class are now interpreted correctly by the Myriad compiler extension. diff --git a/src/Pulumi.FSharp.Myriad/Modules.fs b/src/Pulumi.FSharp.Myriad/Modules.fs index 552b9dc..d18b48e 100644 --- a/src/Pulumi.FSharp.Myriad/Modules.fs +++ b/src/Pulumi.FSharp.Myriad/Modules.fs @@ -11,6 +11,10 @@ open AstBuilder open Debug open Core +let inline equalsCI (str1) (str2) = String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase) + +let (=!) = equalsCI + let rec createModule name openNamespace types = match name |> Option.map (String.split '.') with | None -> Module.module'(openNamespace, [ @@ -102,8 +106,7 @@ let private (|PTUnionMany|_|) = let private (|PTRef|_|) = function - | Property("type") (JsonValue.String("string")) & - Property("$ref") (JsonValue.String(StartsWith("#/types/") typeQualified)) + | Property("type") (JsonValue.String("string")) & Property("$ref") (JsonValue.String(StartsWith("#/types/") typeQualified)) | Property("$ref") (JsonValue.String(StartsWith("#/types/") typeQualified)) -> Some typeQualified | _ -> None @@ -244,6 +247,10 @@ let private missingStatusTypes = |] |> Set.ofArray let createTypes (schema : JsonValue) = + + let pulumiProviderName = + schema["name"].AsString() + let typesJson = match schema.TryGetProperty("types") with | Some types -> types.Properties() @@ -254,7 +261,16 @@ let createTypes (schema : JsonValue) = let allAvailableTypes = typesJson |> Array.map fst - + + let resourcesJson = + schema["resources"].Properties() |> + // Faking Provider to be in the root namespace + Array.append [| $"{pulumiProviderName}:index:Provider", schema["provider"] |] + + let resourceTypes = Map.ofArray resourcesJson + let allResources = + resourcesJson |> Array.map fst + let getPropertiesValues = function | JsonValue.Record(Property("inputProperties") (JsonValue.Record(jv))) @@ -272,43 +288,36 @@ let createTypes (schema : JsonValue) = let rec getRefType = function - | PTRef t when Map.containsKey t allTypes -> Some [t] - + | PTRef t when Array.exists ((=!) t) allAvailableTypes -> Some [t] + | PTRef t when Array.exists ((=!) t) allResources -> Some [t] | PTMap t - | PTArray t -> getRefType t - | PTUnion (a, b) (*PTUnion typeTuple*) -> //typeTuple |> tupleMap getRefType |> optionApply (@) - //typeTuple |> tupleMap getRefType |> lift2 (@) - //typeTuple |> - //tupleMap getRefType ||> - //(fun x y -> List.append x <*> y) - List.append (getRefType a) <*> (getRefType b) - - | PTMap t -> getRefType t - + | PTArray t -> getRefType t + | PTUnion (a, b) -> + List.append (getRefType a) <*> (getRefType b) + | PTMap t -> getRefType t | PTUnionMany _ | PTBase _ - | PTJson -> None + | PTJson -> None | x -> failwith $"Pattern not matched {x}" let rec getAllNestedTypes refTypes resourceOrType = + + let (|ExistsInCI|_|) collection input = + if Seq.exists ((=!) input) collection then Some () else None + getPropertiesValues resourceOrType |> Array.choose getRefType |> - List.concat |> - (function - | [] -> refTypes - | a -> a |> List.collect (fun refType -> match List.exists ((=)refType) refTypes with - | true -> refTypes - | false -> allTypes[refType] |> - getAllNestedTypes (refType :: refTypes))) - - let pulumiProviderName = - schema["name"].AsString() - - let resourcesJson = - schema["resources"].Properties() |> - // Faking Provider to be in the root namespace - Array.append [| $"{pulumiProviderName}:index:Provider", schema["provider"] |] - + List.concat + |> (function + | [] -> refTypes + | a -> a |> List.collect (fun refType -> + match refType with + | ExistsInCI allAvailableTypes + | ExistsInCI allResources -> refTypes + | _ -> + allTypes[refType] + |> getAllNestedTypes (refType :: refTypes))) + let allNestedTypes = resourcesJson |> Array.map (snd >> getAllNestedTypes []) |> @@ -350,14 +359,14 @@ let createTypes (schema : JsonValue) = // Docker schema has inconsistency of case in resource type and name for some resources let resourceTypeAndNameComparison = match pulumiProviderName with - | "docker" -> StringComparison.OrdinalIgnoreCase + | "docker" | "aws" -> StringComparison.OrdinalIgnoreCase | _ -> StringComparison.Ordinal - subNamespaceOrName |> - Option.bind (function - | name when name.Equals(t.ResourceType.Value, resourceTypeAndNameComparison) -> None - | _ -> namespace' + "/" + t.SubNamespace.Value |> Some) |> - Option.defaultValue namespace' + subNamespaceOrName + |> Option.bind (function + | name when name.Equals(t.ResourceType.Value, resourceTypeAndNameComparison) -> None + | _ -> namespace' + "/" + t.SubNamespace.Value |> Some) + |> Option.defaultValue namespace' let namespacesJson = match schema["language"].["csharp"].TryGetProperty("namespaces") with @@ -454,6 +463,14 @@ let createTypes (schema : JsonValue) = | Type t -> not (t.ResourceType.Value = "ApplicationCondition" && t.ResourceProviderNamespace.Value = "security") | _ -> true) + let filterAwsProblematicTypes types = + types |> + Array.filter (fun (bt, _) -> + match bt with + // this seems to be a nodejs-only mixin? CallbackFunctionArgs does not exist in the pulumi .net sdk + | Resource r -> not (r.ResourceType.Value = "CallbackFunction" && r.ResourceProviderNamespace.Value = "lambda") + | _ -> false) + let createBuildersParallelFiltered allTypes typesOrResources = Array.groupBy (fst >> getProvider) typesOrResources |> filters |> @@ -463,6 +480,7 @@ let createTypes (schema : JsonValue) = debugFilterTypes |> filterKubernetesProblematicTypes |> filterAzureNativeProblematicTypes |> + filterAwsProblematicTypes |> Array.Parallel.collect (createBuilders allTypes)) let typeBuilders = @@ -486,7 +504,7 @@ let createTypes (schema : JsonValue) = String.split '/' resourceProvider |> Array.toList | _ -> [resourceProvider] - + let resourceProviderNamespace = namespaces[ns] let openNamespace = diff --git a/src/Pulumi.FSharp.Myriad/Operations.fs b/src/Pulumi.FSharp.Myriad/Operations.fs index e1fcb96..b19a393 100644 --- a/src/Pulumi.FSharp.Myriad/Operations.fs +++ b/src/Pulumi.FSharp.Myriad/Operations.fs @@ -368,12 +368,18 @@ let createOperationsFor' argsType pType = e ) +type internal ResourceOptionsKind = + | ResourceOptions + | CustomResourceOptions + | ComponentResourceOptions -let croOperation +let internal croOperation operationName + resourceOptionsKind description argumentName (setAssignmentExpression: SynExpr) + isListAdd withAttribute = let attributes = [ @@ -400,13 +406,27 @@ let croOperation let lambdaExpression = Expr.sequential ( [ - Expr.set ($"cros.{operationName}", setAssignmentExpression) + if not isListAdd then + Expr.set ($"cros.{operationName}", setAssignmentExpression) + else + Expr.appTuple ( + $"cros.{operationName}.AddRange", + [ setAssignmentExpression ] + ) Expr.ident ("cros") ] ) let listConsLambdaFirstExpression = - Expr.lambda ([ SimplePat.hashTyped ("cros", "ResourceOptions") ], lambdaExpression) + Expr.lambda ( + match resourceOptionsKind with + | ResourceOptions -> [ SimplePat.hashTyped ("cros", "ResourceOptions") ] + | CustomResourceOptions -> [ SimplePat.typed ("cros", "CustomResourceOptions") ] + | ComponentResourceOptions -> [ + SimplePat.typed ("cros", "ComponentResourceOptions") + ] + , lambdaExpression + ) let listConsExpressions = Expr.paren ( From 79b5f2a01d4a4430968070df3f3ddabc618453e3 Mon Sep 17 00:00:00 2001 From: Cadence Date: Tue, 1 Oct 2024 21:53:15 -0300 Subject: [PATCH 064/113] format config.fs (#78) --- src/Pulumi.FSharp.Core/Config.fs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Pulumi.FSharp.Core/Config.fs b/src/Pulumi.FSharp.Core/Config.fs index 25d94e9..4f803ac 100644 --- a/src/Pulumi.FSharp.Core/Config.fs +++ b/src/Pulumi.FSharp.Core/Config.fs @@ -8,10 +8,10 @@ type Config() = member _.Item with get (name) = pulumiConfig.Value.Require(name) - member _.get<'T> (key: string) = + member _.get<'T>(key: string) = pulumiConfig.Value.RequireObject<'T>(key) - member _.tryGet<'T when 'T: null> (key: string) = + member _.tryGet<'T when 'T: null>(key: string) = pulumiConfig.Value.GetObject<'T>(key) |> Option.ofObj @@ -19,10 +19,10 @@ type SecretConfig() = member _.Item with get (name) = pulumiConfig.Value.RequireSecret(name) - member _.get<'T> (key: string) = + member _.get<'T>(key: string) = pulumiConfig.Value.RequireSecretObject<'T>(key) - member _.tryGet<'T> (key: string) = + member _.tryGet<'T>(key: string) = pulumiConfig.Value.GetSecretObject<'T>(key) |> Option.ofObj From 67ff8ed0dfc00d546f4c9f92f66feceae124a0ac Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 22:10:00 -0300 Subject: [PATCH 065/113] Paket Update for 10/02/2024 00:58:49 (#79) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 84 +++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/paket.lock b/paket.lock index b78f263..20439d9 100644 --- a/paket.lock +++ b/paket.lock @@ -939,24 +939,24 @@ NUGET remote: https://api.nuget.org/v3/index.json Ben.Demystifier (0.4.1) System.Reflection.Metadata (>= 5.0) - FSharp.Core (8.0.301) + FSharp.Core (8.0.400) Glob (1.1.9) - Google.Protobuf (3.27.3) - Grpc.AspNetCore.Server (2.65) - Grpc.Net.Common (>= 2.65) - Grpc.AspNetCore.Server.Reflection (2.65) + Google.Protobuf (3.28.2) + Grpc.AspNetCore.Server (2.66) + Grpc.Net.Common (>= 2.66) + Grpc.AspNetCore.Server.Reflection (2.66) Google.Protobuf (>= 3.27) - Grpc.AspNetCore.Server (>= 2.65) - Grpc.Reflection (>= 2.65) - Grpc.Core.Api (2.65) - Grpc.Net.Client (2.65) - Grpc.Net.Common (>= 2.65) + Grpc.AspNetCore.Server (>= 2.66) + Grpc.Reflection (>= 2.66) + Grpc.Core.Api (2.66) + Grpc.Net.Client (2.66) + Grpc.Net.Common (>= 2.66) Microsoft.Extensions.Logging.Abstractions (>= 6.0) - Grpc.Net.Common (2.65) - Grpc.Core.Api (>= 2.65) - Grpc.Reflection (2.65) + Grpc.Net.Common (2.66) + Grpc.Core.Api (>= 2.66) + Grpc.Reflection (2.66) Google.Protobuf (>= 3.27) - Grpc.Core.Api (>= 2.65) + Grpc.Core.Api (>= 2.66) Microsoft.Extensions.DependencyInjection (8.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) @@ -971,52 +971,52 @@ NUGET Microsoft.Extensions.Primitives (>= 8.0) Microsoft.Extensions.Primitives (8.0) OneOf (3.0.271) - Pulumi (3.66.1) + Pulumi (3.67.1) Ben.Demystifier (>= 0.4.1) Grpc.AspNetCore.Server (>= 2.63) Grpc.AspNetCore.Server.Reflection (>= 2.63) Grpc.Net.Client (>= 2.63) Microsoft.Extensions.Logging.Abstractions (>= 6.0) OneOf (>= 3.0.216) - Pulumi.Protobuf (>= 3.20.1) + Pulumi.Protobuf (>= 3.27.3) Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.5) - Pulumi (>= 3.65) - Pulumi.Aws (6.49) - Pulumi (>= 3.66.1) - Pulumi.Azure (5.87) - Pulumi (>= 3.66.1) - Pulumi.AzureAD (5.53.3) - Pulumi (>= 3.65) - Pulumi.AzureNative (2.55) - Pulumi (>= 3.65) + Pulumi.Auth0 (3.7.1) + Pulumi (>= 3.67) + Pulumi.Aws (6.54.1) + Pulumi (>= 3.66.1 < 4.0) + Pulumi.Azure (6.3.1) + Pulumi (>= 3.67.1) + Pulumi.AzureAD (5.53.5) + Pulumi (>= 3.67.1) + Pulumi.AzureNative (2.64.2) + Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.31) - Pulumi (>= 3.65) - Pulumi.Docker (4.5.5) - Pulumi (>= 3.65) - Pulumi.FSharp (3.66.1) + Pulumi.DigitalOcean (4.33) + Pulumi (>= 3.67.1) + Pulumi.Docker (4.5.6) + Pulumi (>= 3.67.1) + Pulumi.FSharp (3.67.1) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.66.1) + Pulumi (>= 3.67.1) Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (7.35) - Pulumi (>= 3.65) - Pulumi.Kubernetes (4.16) + Pulumi.Gcp (8.4.1) + Pulumi (>= 3.67.1) + Pulumi.Kubernetes (4.18.1) Glob (>= 1.1.5) - Pulumi (>= 3.65) - Pulumi.Protobuf (3.20.1) - Pulumi.Random (4.16.3) - Pulumi (>= 3.64) - Pulumi.Tls (5.0.4) - Pulumi (>= 3.64) + Pulumi (>= 3.67.1) + Pulumi.Protobuf (3.27.3) + Pulumi.Random (4.16.6) + Pulumi (>= 3.67.1) + Pulumi.Tls (5.0.7) + Pulumi (>= 3.67.1) Semver (2.3) - Serilog (4.0.1) + Serilog (4.0.2) Serilog.Extensions.Logging (8.0) Microsoft.Extensions.Logging (>= 8.0) Serilog (>= 3.1.1) From eb3e2d97573b13560ad0a5d4ca8128721789e643 Mon Sep 17 00:00:00 2001 From: Cadence Date: Wed, 2 Oct 2024 19:35:04 -0300 Subject: [PATCH 066/113] Fix submodule generation; filter problematic aws resource (#81) --- src/Pulumi.FSharp.Core/CHANGELOG.md | 4 ++++ src/Pulumi.FSharp.Myriad/Modules.fs | 30 ++++++++++++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/Pulumi.FSharp.Core/CHANGELOG.md b/src/Pulumi.FSharp.Core/CHANGELOG.md index 8353869..34d6e63 100644 --- a/src/Pulumi.FSharp.Core/CHANGELOG.md +++ b/src/Pulumi.FSharp.Core/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.1.7] - 2024-06-02 + + + ## [3.1.6] - 2024-05-31 Providers now use a dedicated FAKE dependency group to enable detection of updated providers via GitOps diff --git a/src/Pulumi.FSharp.Myriad/Modules.fs b/src/Pulumi.FSharp.Myriad/Modules.fs index d18b48e..e8670fe 100644 --- a/src/Pulumi.FSharp.Myriad/Modules.fs +++ b/src/Pulumi.FSharp.Myriad/Modules.fs @@ -13,8 +13,6 @@ open Core let inline equalsCI (str1) (str2) = String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase) -let (=!) = equalsCI - let rec createModule name openNamespace types = match name |> Option.map (String.split '.') with | None -> Module.module'(openNamespace, [ @@ -288,8 +286,8 @@ let createTypes (schema : JsonValue) = let rec getRefType = function - | PTRef t when Array.exists ((=!) t) allAvailableTypes -> Some [t] - | PTRef t when Array.exists ((=!) t) allResources -> Some [t] + | PTRef t when Array.exists (equalsCI t) allAvailableTypes -> Some [t] + | PTRef t when Array.exists (equalsCI t) allResources -> Some [t] | PTMap t | PTArray t -> getRefType t | PTUnion (a, b) -> @@ -302,8 +300,11 @@ let createTypes (schema : JsonValue) = let rec getAllNestedTypes refTypes resourceOrType = - let (|ExistsInCI|_|) collection input = - if Seq.exists ((=!) input) collection then Some () else None + let (|ExistsInCI|_|) collection input = + if Seq.exists (equalsCI input) collection then Some () else None + + let (|GetCI|_|) (map: Map<_, JsonValue>) (key: string) = + Map.tryPick (fun k v -> if equalsCI k key then Some v else None) map getPropertiesValues resourceOrType |> Array.choose getRefType |> @@ -312,11 +313,12 @@ let createTypes (schema : JsonValue) = | [] -> refTypes | a -> a |> List.collect (fun refType -> match refType with - | ExistsInCI allAvailableTypes - | ExistsInCI allResources -> refTypes - | _ -> - allTypes[refType] - |> getAllNestedTypes (refType :: refTypes))) + | ExistsInCI refTypes -> refTypes + | GetCI allTypes typeJson + | GetCI resourceTypes typeJson -> typeJson |> getAllNestedTypes (refType :: refTypes) + | _ -> failwith "Referenced type does not exist in the Pulumi schema resources or types" + ) + ) let allNestedTypes = resourcesJson |> @@ -468,8 +470,10 @@ let createTypes (schema : JsonValue) = Array.filter (fun (bt, _) -> match bt with // this seems to be a nodejs-only mixin? CallbackFunctionArgs does not exist in the pulumi .net sdk - | Resource r -> not (r.ResourceType.Value = "CallbackFunction" && r.ResourceProviderNamespace.Value = "lambda") - | _ -> false) + | Resource r -> + not (r.ResourceType.Value = "CallbackFunction" && r.ResourceProviderNamespace.Value = "lambda") + | Type t -> + not (t.ResourceType.Value = "CodePathOptions" && t.ResourceProviderNamespace.Value = "lambda")) let createBuildersParallelFiltered allTypes typesOrResources = Array.groupBy (fst >> getProvider) typesOrResources |> From 4a6a0ef3f480f9c7e3470f5ef49eccf5249bdd4f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Oct 2024 22:02:19 -0300 Subject: [PATCH 067/113] Paket Update for 10/06/2024 21:16:02 (#83) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paket.lock b/paket.lock index 20439d9..e6592dd 100644 --- a/paket.lock +++ b/paket.lock @@ -984,13 +984,13 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.7.1) Pulumi (>= 3.67) - Pulumi.Aws (6.54.1) - Pulumi (>= 3.66.1 < 4.0) + Pulumi.Aws (6.54.2) + Pulumi (>= 3.67.1) Pulumi.Azure (6.3.1) Pulumi (>= 3.67.1) Pulumi.AzureAD (5.53.5) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.64.2) + Pulumi.AzureNative (2.64.3) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From 96fa23709eb6af7eccd332a746478b6da6286eb6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 13:53:38 -0300 Subject: [PATCH 068/113] Paket Update for 10/08/2024 19:34:46 (#85) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/paket.lock b/paket.lock index e6592dd..bd2de52 100644 --- a/paket.lock +++ b/paket.lock @@ -939,7 +939,7 @@ NUGET remote: https://api.nuget.org/v3/index.json Ben.Demystifier (0.4.1) System.Reflection.Metadata (>= 5.0) - FSharp.Core (8.0.400) + FSharp.Core (8.0.401) Glob (1.1.9) Google.Protobuf (3.28.2) Grpc.AspNetCore.Server (2.66) @@ -957,15 +957,15 @@ NUGET Grpc.Reflection (2.66) Google.Protobuf (>= 3.27) Grpc.Core.Api (>= 2.66) - Microsoft.Extensions.DependencyInjection (8.0) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) - Microsoft.Extensions.DependencyInjection.Abstractions (8.0.1) - Microsoft.Extensions.Logging (8.0) - Microsoft.Extensions.DependencyInjection (>= 8.0) - Microsoft.Extensions.Logging.Abstractions (>= 8.0) - Microsoft.Extensions.Options (>= 8.0) - Microsoft.Extensions.Logging.Abstractions (8.0.1) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1) + Microsoft.Extensions.DependencyInjection (8.0.1) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2) + Microsoft.Extensions.DependencyInjection.Abstractions (8.0.2) + Microsoft.Extensions.Logging (8.0.1) + Microsoft.Extensions.DependencyInjection (>= 8.0.1) + Microsoft.Extensions.Logging.Abstractions (>= 8.0.2) + Microsoft.Extensions.Options (>= 8.0.2) + Microsoft.Extensions.Logging.Abstractions (8.0.2) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2) Microsoft.Extensions.Options (8.0.2) Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) Microsoft.Extensions.Primitives (>= 8.0) @@ -984,13 +984,13 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.7.1) Pulumi (>= 3.67) - Pulumi.Aws (6.54.2) + Pulumi.Aws (6.55) Pulumi (>= 3.67.1) - Pulumi.Azure (6.3.1) + Pulumi.Azure (6.4) Pulumi (>= 3.67.1) Pulumi.AzureAD (5.53.5) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.64.3) + Pulumi.AzureNative (2.65.1) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) @@ -1005,7 +1005,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.4.1) + Pulumi.Gcp (8.5) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.1) Glob (>= 1.1.5) @@ -1023,5 +1023,4 @@ NUGET Serilog.Sinks.Console (6.0) Serilog (>= 4.0) System.Collections.Immutable (8.0) - System.Reflection.Metadata (8.0) - System.Collections.Immutable (>= 8.0) + System.Reflection.Metadata (8.0.1) From 6f809c510328844b595e4a48d948d0c7e5aa6a5e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:14:24 +0000 Subject: [PATCH 069/113] Paket Update for 10/09/2024 20:14:20 (#86) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index bd2de52..6762f25 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.AzureAD (5.53.5) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.65.1) + Pulumi.AzureNative (2.66) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From da31bde24b034774b29d14650a9b4c92f99fddc8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 20:14:41 +0000 Subject: [PATCH 070/113] Paket Update for 10/10/2024 20:14:38 (#87) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 6762f25..270475e 100644 --- a/paket.lock +++ b/paket.lock @@ -1013,7 +1013,7 @@ NUGET Pulumi.Protobuf (3.27.3) Pulumi.Random (4.16.6) Pulumi (>= 3.67.1) - Pulumi.Tls (5.0.7) + Pulumi.Tls (5.0.8) Pulumi (>= 3.67.1) Semver (2.3) Serilog (4.0.2) From 15aed2eeeadc22ef0bb58d4b537bfc361cf48cf5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 12:23:29 +0000 Subject: [PATCH 071/113] Paket Update for 10/11/2024 12:23:26 (#88) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 270475e..8e1b94a 100644 --- a/paket.lock +++ b/paket.lock @@ -982,8 +982,8 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.7.1) - Pulumi (>= 3.67) + Pulumi.Auth0 (3.8) + Pulumi (>= 3.67.1) Pulumi.Aws (6.55) Pulumi (>= 3.67.1) Pulumi.Azure (6.4) From 35100319122c5491858b883db8f7a0fc879a491c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 16:15:20 +0000 Subject: [PATCH 072/113] Paket Update for 10/11/2024 16:15:16 (#89) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 8e1b94a..4939c34 100644 --- a/paket.lock +++ b/paket.lock @@ -988,7 +988,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Azure (6.4) Pulumi (>= 3.67.1) - Pulumi.AzureAD (5.53.5) + Pulumi.AzureAD (6.0) Pulumi (>= 3.67.1) Pulumi.AzureNative (2.66) Pulumi (>= 3.67.1) From 003397e0c88d428af287722b46b66df3f5c064ad Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 12:25:06 +0000 Subject: [PATCH 073/113] Paket Update for 10/14/2024 12:25:03 (#90) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 4939c34..8b181c7 100644 --- a/paket.lock +++ b/paket.lock @@ -986,9 +986,9 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Aws (6.55) Pulumi (>= 3.67.1) - Pulumi.Azure (6.4) + Pulumi.Azure (6.5) Pulumi (>= 3.67.1) - Pulumi.AzureAD (6.0) + Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) Pulumi.AzureNative (2.66) Pulumi (>= 3.67.1) From 8022af7f85fb3e6bd447e5a4aa3b08b4b180069c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 19 Oct 2024 18:32:58 -0300 Subject: [PATCH 074/113] Paket Update for 10/15/2024 20:13:55 (#91) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 8b181c7..6f1063d 100644 --- a/paket.lock +++ b/paket.lock @@ -982,7 +982,7 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.8) + Pulumi.Auth0 (3.8.1) Pulumi (>= 3.67.1) Pulumi.Aws (6.55) Pulumi (>= 3.67.1) From f83f1618d599575aada583c08ecb0ff7129946fd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 01:04:10 +0000 Subject: [PATCH 075/113] Paket Update for 10/20/2024 01:04:08 (#92) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/paket.lock b/paket.lock index 6f1063d..0676c13 100644 --- a/paket.lock +++ b/paket.lock @@ -984,20 +984,20 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.1) Pulumi (>= 3.67.1) - Pulumi.Aws (6.55) + Pulumi.Aws (6.56.1) Pulumi (>= 3.67.1) Pulumi.Azure (6.5) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.66) + Pulumi.AzureNative (2.67) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.33) + Pulumi.DigitalOcean (4.33.1) Pulumi (>= 3.67.1) - Pulumi.Docker (4.5.6) + Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) Pulumi.FSharp (3.67.1) FSharp.Core (>= 4.7.2) @@ -1005,15 +1005,15 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.5) + Pulumi.Gcp (8.6) Pulumi (>= 3.67.1) - Pulumi.Kubernetes (4.18.1) + Pulumi.Kubernetes (4.18.2) Glob (>= 1.1.5) Pulumi (>= 3.67.1) Pulumi.Protobuf (3.27.3) - Pulumi.Random (4.16.6) + Pulumi.Random (4.16.7) Pulumi (>= 3.67.1) - Pulumi.Tls (5.0.8) + Pulumi.Tls (5.0.9) Pulumi (>= 3.67.1) Semver (2.3) Serilog (4.0.2) From 407dac25f27f72dbbba578415b62c837656d5870 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 17:14:48 -0300 Subject: [PATCH 076/113] Paket Update for 10/21/2024 16:19:42 (#93) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 0676c13..790f0a3 100644 --- a/paket.lock +++ b/paket.lock @@ -995,7 +995,7 @@ NUGET System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.33.1) + Pulumi.DigitalOcean (4.34) Pulumi (>= 3.67.1) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) From 77d8a62d8f070a71b912f584205de1fe81db4ce6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 00:59:16 +0000 Subject: [PATCH 077/113] Paket Update for 10/25/2024 00:59:14 (#94) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/paket.lock b/paket.lock index 790f0a3..910b5c2 100644 --- a/paket.lock +++ b/paket.lock @@ -941,7 +941,7 @@ NUGET System.Reflection.Metadata (>= 5.0) FSharp.Core (8.0.401) Glob (1.1.9) - Google.Protobuf (3.28.2) + Google.Protobuf (3.28.3) Grpc.AspNetCore.Server (2.66) Grpc.Net.Common (>= 2.66) Grpc.AspNetCore.Server.Reflection (2.66) @@ -986,11 +986,11 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Aws (6.56.1) Pulumi (>= 3.67.1) - Pulumi.Azure (6.5) + Pulumi.Azure (6.6) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.67) + Pulumi.AzureNative (2.68) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) @@ -1015,8 +1015,9 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Tls (5.0.9) Pulumi (>= 3.67.1) - Semver (2.3) - Serilog (4.0.2) + Semver (3.0) + Microsoft.Extensions.Primitives (>= 5.0.1) + Serilog (4.1) Serilog.Extensions.Logging (8.0) Microsoft.Extensions.Logging (>= 8.0) Serilog (>= 3.1.1) From 4059397b2cddb0f74cc77d8556e3d2c29f7f57d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 01:00:36 +0000 Subject: [PATCH 078/113] Paket Update for 10/29/2024 01:00:33 (#95) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 910b5c2..559a1b0 100644 --- a/paket.lock +++ b/paket.lock @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.68) + Pulumi.AzureNative (2.69) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From 5c97c749078d311da7360cc6eac34b958b34c72d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 04:16:14 +0000 Subject: [PATCH 079/113] Paket Update for 10/30/2024 04:16:10 (#96) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 559a1b0..9a52e7e 100644 --- a/paket.lock +++ b/paket.lock @@ -984,7 +984,7 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.1) Pulumi (>= 3.67.1) - Pulumi.Aws (6.56.1) + Pulumi.Aws (6.57) Pulumi (>= 3.67.1) Pulumi.Azure (6.6) Pulumi (>= 3.67.1) From 8298435e2ba11575995d6ffcdca39b18506a0f93 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 20:14:37 +0000 Subject: [PATCH 080/113] Paket Update for 10/30/2024 20:14:33 (#97) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 9a52e7e..269da13 100644 --- a/paket.lock +++ b/paket.lock @@ -986,7 +986,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Aws (6.57) Pulumi (>= 3.67.1) - Pulumi.Azure (6.6) + Pulumi.Azure (6.7) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) From 7d0cf4fd0bab3bffb07b5b58ebb5ebb339077156 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:47:53 -0300 Subject: [PATCH 081/113] Paket Update for 10/31/2024 16:16:13 (#98) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 269da13..6e1bfb2 100644 --- a/paket.lock +++ b/paket.lock @@ -1005,7 +1005,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.6) + Pulumi.Gcp (8.7) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.2) Glob (>= 1.1.5) From 05b327785bba2e05043e2cd527180557f1ddd6ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 20:14:18 +0000 Subject: [PATCH 082/113] Paket Update for 11/01/2024 20:14:16 (#99) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 6e1bfb2..7867745 100644 --- a/paket.lock +++ b/paket.lock @@ -982,7 +982,7 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.8.1) + Pulumi.Auth0 (3.8.2) Pulumi (>= 3.67.1) Pulumi.Aws (6.57) Pulumi (>= 3.67.1) @@ -1007,7 +1007,7 @@ NUGET Pulumi.FSharp (>= 3.43.1) Pulumi.Gcp (8.7) Pulumi (>= 3.67.1) - Pulumi.Kubernetes (4.18.2) + Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) Pulumi (>= 3.67.1) Pulumi.Protobuf (3.27.3) From 82bc130280ab728902147e5e613cc5ecd5085c49 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 16:16:08 +0000 Subject: [PATCH 083/113] Paket Update for 11/04/2024 16:16:05 (#100) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 7867745..c9afb80 100644 --- a/paket.lock +++ b/paket.lock @@ -986,7 +986,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Aws (6.57) Pulumi (>= 3.67.1) - Pulumi.Azure (6.7) + Pulumi.Azure (6.8) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) From bce9d3dcc3e01a01c423f56bae82b02f297f47a1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:47:49 -0400 Subject: [PATCH 084/113] Paket Update for 11/07/2024 16:15:45 (#101) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index c9afb80..854c36e 100644 --- a/paket.lock +++ b/paket.lock @@ -984,13 +984,13 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.2) Pulumi (>= 3.67.1) - Pulumi.Aws (6.57) + Pulumi.Aws (6.58) Pulumi (>= 3.67.1) Pulumi.Azure (6.8) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.69) + Pulumi.AzureNative (2.70) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From 7ce4054f7b6a65417cd55c60029eada0544dd38a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 9 Nov 2024 08:15:54 +0000 Subject: [PATCH 085/113] Paket Update for 11/09/2024 08:15:51 (#102) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paket.lock b/paket.lock index 854c36e..91695c1 100644 --- a/paket.lock +++ b/paket.lock @@ -982,7 +982,7 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.8.2) + Pulumi.Auth0 (3.8.3) Pulumi (>= 3.67.1) Pulumi.Aws (6.58) Pulumi (>= 3.67.1) @@ -990,7 +990,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.70) + Pulumi.AzureNative (2.71) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) @@ -1005,7 +1005,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.7) + Pulumi.Gcp (8.8) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) From 85eabc76ca387786c646b6e9d5f9aff263e345d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 10:42:54 -0400 Subject: [PATCH 086/113] Paket Update for 11/11/2024 12:24:10 (#103) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 91695c1..e6c8531 100644 --- a/paket.lock +++ b/paket.lock @@ -1005,7 +1005,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.8) + Pulumi.Gcp (8.8.1) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) From 8cdb3b39e9ba0dd812a3762568fc1c26d078c31c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 16:16:08 +0000 Subject: [PATCH 087/113] Paket Update for 11/13/2024 16:16:05 (#104) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/paket.lock b/paket.lock index e6c8531..ea07e3e 100644 --- a/paket.lock +++ b/paket.lock @@ -939,7 +939,7 @@ NUGET remote: https://api.nuget.org/v3/index.json Ben.Demystifier (0.4.1) System.Reflection.Metadata (>= 5.0) - FSharp.Core (8.0.401) + FSharp.Core (9.0.100) Glob (1.1.9) Google.Protobuf (3.28.3) Grpc.AspNetCore.Server (2.66) @@ -957,19 +957,20 @@ NUGET Grpc.Reflection (2.66) Google.Protobuf (>= 3.27) Grpc.Core.Api (>= 2.66) - Microsoft.Extensions.DependencyInjection (8.0.1) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2) - Microsoft.Extensions.DependencyInjection.Abstractions (8.0.2) - Microsoft.Extensions.Logging (8.0.1) - Microsoft.Extensions.DependencyInjection (>= 8.0.1) - Microsoft.Extensions.Logging.Abstractions (>= 8.0.2) - Microsoft.Extensions.Options (>= 8.0.2) - Microsoft.Extensions.Logging.Abstractions (8.0.2) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2) - Microsoft.Extensions.Options (8.0.2) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) - Microsoft.Extensions.Primitives (>= 8.0) - Microsoft.Extensions.Primitives (8.0) + Microsoft.Extensions.DependencyInjection (9.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0) + Microsoft.Extensions.DependencyInjection.Abstractions (9.0) + Microsoft.Extensions.Logging (9.0) + Microsoft.Extensions.DependencyInjection (>= 9.0) + Microsoft.Extensions.Logging.Abstractions (>= 9.0) + Microsoft.Extensions.Options (>= 9.0) + Microsoft.Extensions.Logging.Abstractions (9.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0) + System.Diagnostics.DiagnosticSource (>= 9.0) + Microsoft.Extensions.Options (9.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0) + Microsoft.Extensions.Primitives (>= 9.0) + Microsoft.Extensions.Primitives (9.0) OneOf (3.0.271) Pulumi (3.67.1) Ben.Demystifier (>= 0.4.1) @@ -984,18 +985,18 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.3) Pulumi (>= 3.67.1) - Pulumi.Aws (6.58) + Pulumi.Aws (6.59.1) Pulumi (>= 3.67.1) Pulumi.Azure (6.8) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.71) + Pulumi.AzureNative (2.72) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.34) + Pulumi.DigitalOcean (4.34.1) Pulumi (>= 3.67.1) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) @@ -1023,5 +1024,7 @@ NUGET Serilog (>= 3.1.1) Serilog.Sinks.Console (6.0) Serilog (>= 4.0) - System.Collections.Immutable (8.0) - System.Reflection.Metadata (8.0.1) + System.Collections.Immutable (9.0) + System.Diagnostics.DiagnosticSource (9.0) + System.Reflection.Metadata (9.0) + System.Collections.Immutable (>= 9.0) From 488f5d3910fd2b5457dbc855ecfbf5ab0f3aea8f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 20:14:12 +0000 Subject: [PATCH 088/113] Paket Update for 11/13/2024 20:14:08 (#105) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index ea07e3e..976963e 100644 --- a/paket.lock +++ b/paket.lock @@ -1006,7 +1006,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.8.1) + Pulumi.Gcp (8.9.1) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) From 6275f33deae07ddcf734cd5d67430781572fb743 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:35:00 -0400 Subject: [PATCH 089/113] Paket Update for 11/14/2024 20:14:27 (#106) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 976963e..9ef52a2 100644 --- a/paket.lock +++ b/paket.lock @@ -987,7 +987,7 @@ NUGET Pulumi (>= 3.67.1) Pulumi.Aws (6.59.1) Pulumi (>= 3.67.1) - Pulumi.Azure (6.8) + Pulumi.Azure (6.9) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) From 20680c06f187a97ad3e32ef39ca830d6706e6638 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 01:00:58 +0000 Subject: [PATCH 090/113] Paket Update for 11/16/2024 01:00:54 (#107) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 9ef52a2..e167c25 100644 --- a/paket.lock +++ b/paket.lock @@ -1006,7 +1006,7 @@ NUGET Pulumi.FSharp.Core (3.1.4) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.9.1) + Pulumi.Gcp (8.9.2) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) From bc90f2100af116dba8175e4357560d5a12527584 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 12:22:18 +0000 Subject: [PATCH 091/113] Paket Update for 11/17/2024 12:22:14 (#108) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index e167c25..5963e55 100644 --- a/paket.lock +++ b/paket.lock @@ -1003,7 +1003,7 @@ NUGET Pulumi.FSharp (3.67.1) FSharp.Core (>= 4.7.2) Pulumi (>= 3.67.1) - Pulumi.FSharp.Core (3.1.4) + Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) Pulumi.Gcp (8.9.2) From a8fece59f7ae70c66d8dfd3c7e12eb60607164fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 13:17:00 -0400 Subject: [PATCH 092/113] Paket Update for 11/18/2024 16:16:54 (#109) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 5963e55..1711d57 100644 --- a/paket.lock +++ b/paket.lock @@ -1006,7 +1006,7 @@ NUGET Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.9.2) + Pulumi.Gcp (8.9.3) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) From 7aaf878877324ce989c9be27bf01419048645b23 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 20:14:39 +0000 Subject: [PATCH 093/113] Paket Update for 11/22/2024 20:14:36 (#110) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/paket.lock b/paket.lock index 1711d57..02b2d72 100644 --- a/paket.lock +++ b/paket.lock @@ -942,21 +942,21 @@ NUGET FSharp.Core (9.0.100) Glob (1.1.9) Google.Protobuf (3.28.3) - Grpc.AspNetCore.Server (2.66) - Grpc.Net.Common (>= 2.66) - Grpc.AspNetCore.Server.Reflection (2.66) + Grpc.AspNetCore.Server (2.67) + Grpc.Net.Common (>= 2.67) + Grpc.AspNetCore.Server.Reflection (2.67) Google.Protobuf (>= 3.27) - Grpc.AspNetCore.Server (>= 2.66) - Grpc.Reflection (>= 2.66) - Grpc.Core.Api (2.66) - Grpc.Net.Client (2.66) - Grpc.Net.Common (>= 2.66) + Grpc.AspNetCore.Server (>= 2.67) + Grpc.Reflection (>= 2.67) + Grpc.Core.Api (2.67) + Grpc.Net.Client (2.67) + Grpc.Net.Common (>= 2.67) Microsoft.Extensions.Logging.Abstractions (>= 6.0) - Grpc.Net.Common (2.66) - Grpc.Core.Api (>= 2.66) - Grpc.Reflection (2.66) + Grpc.Net.Common (2.67) + Grpc.Core.Api (>= 2.67) + Grpc.Reflection (2.67) Google.Protobuf (>= 3.27) - Grpc.Core.Api (>= 2.66) + Grpc.Core.Api (>= 2.67) Microsoft.Extensions.DependencyInjection (9.0) Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0) Microsoft.Extensions.DependencyInjection.Abstractions (9.0) @@ -972,7 +972,7 @@ NUGET Microsoft.Extensions.Primitives (>= 9.0) Microsoft.Extensions.Primitives (9.0) OneOf (3.0.271) - Pulumi (3.67.1) + Pulumi (3.69) Ben.Demystifier (>= 0.4.1) Grpc.AspNetCore.Server (>= 2.63) Grpc.AspNetCore.Server.Reflection (>= 2.63) @@ -985,28 +985,28 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.3) Pulumi (>= 3.67.1) - Pulumi.Aws (6.59.1) + Pulumi.Aws (6.60) Pulumi (>= 3.67.1) - Pulumi.Azure (6.9) + Pulumi.Azure (6.10) Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.72) + Pulumi.AzureNative (2.73.1) Pulumi (>= 3.67.1) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.34.1) + Pulumi.DigitalOcean (4.35) Pulumi (>= 3.67.1) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) - Pulumi.FSharp (3.67.1) + Pulumi.FSharp (3.69) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.67.1) + Pulumi (>= 3.69) Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.9.3) + Pulumi.Gcp (8.10) Pulumi (>= 3.67.1) Pulumi.Kubernetes (4.18.3) Glob (>= 1.1.5) From e99605aaf4a7ee3526936a7a6ec632e65bc266d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 00:19:00 -0400 Subject: [PATCH 094/113] Paket Update for 11/25/2024 16:16:45 (#111) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 02b2d72..71ca486 100644 --- a/paket.lock +++ b/paket.lock @@ -991,8 +991,8 @@ NUGET Pulumi (>= 3.67.1) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.73.1) - Pulumi (>= 3.67.1) + Pulumi.AzureNative (2.74) + Pulumi (>= 3.69) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) From 9fd5f417769bae84a82acb612bf7bcf4b53b52d6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:18:39 +0000 Subject: [PATCH 095/113] Paket Update for 11/26/2024 08:18:37 (#112) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/paket.lock b/paket.lock index 71ca486..4a05932 100644 --- a/paket.lock +++ b/paket.lock @@ -985,10 +985,10 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.3) Pulumi (>= 3.67.1) - Pulumi.Aws (6.60) - Pulumi (>= 3.67.1) - Pulumi.Azure (6.10) - Pulumi (>= 3.67.1) + Pulumi.Aws (6.61) + Pulumi (>= 3.69) + Pulumi.Azure (6.11) + Pulumi (>= 3.69) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) Pulumi.AzureNative (2.74) @@ -996,8 +996,8 @@ NUGET System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.35) - Pulumi (>= 3.67.1) + Pulumi.DigitalOcean (4.35.1) + Pulumi (>= 3.69) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) Pulumi.FSharp (3.69) From e2fd224df51b74db5f5772abee2658ec373b214b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 17:02:10 -0400 Subject: [PATCH 096/113] Paket Update for 11/27/2024 20:15:02 (#113) --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 4a05932..8c9798a 100644 --- a/paket.lock +++ b/paket.lock @@ -941,7 +941,7 @@ NUGET System.Reflection.Metadata (>= 5.0) FSharp.Core (9.0.100) Glob (1.1.9) - Google.Protobuf (3.28.3) + Google.Protobuf (3.29) Grpc.AspNetCore.Server (2.67) Grpc.Net.Common (>= 2.67) Grpc.AspNetCore.Server.Reflection (2.67) From 30b78f7c1b1271b744586ac6b611d28c80f3a063 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:28:43 -0400 Subject: [PATCH 097/113] Paket Update for 12/03/2024 16:22:26 (#115) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/paket.lock b/paket.lock index 8c9798a..f981109 100644 --- a/paket.lock +++ b/paket.lock @@ -972,7 +972,7 @@ NUGET Microsoft.Extensions.Primitives (>= 9.0) Microsoft.Extensions.Primitives (9.0) OneOf (3.0.271) - Pulumi (3.69) + Pulumi (3.70) Ben.Demystifier (>= 0.4.1) Grpc.AspNetCore.Server (>= 2.63) Grpc.AspNetCore.Server.Reflection (>= 2.63) @@ -985,14 +985,14 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.8.3) Pulumi (>= 3.67.1) - Pulumi.Aws (6.61) - Pulumi (>= 3.69) - Pulumi.Azure (6.11) - Pulumi (>= 3.69) + Pulumi.Aws (6.62.2) + Pulumi (>= 3.70) + Pulumi.Azure (6.12) + Pulumi (>= 3.70) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.74) - Pulumi (>= 3.69) + Pulumi.AzureNative (2.75) + Pulumi (>= 3.70) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) @@ -1000,9 +1000,9 @@ NUGET Pulumi (>= 3.69) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) - Pulumi.FSharp (3.69) + Pulumi.FSharp (3.70) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.69) + Pulumi (>= 3.70) Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) From 4ece72d048822fe1543a229f74a5fdca2c84708c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:17:46 +0000 Subject: [PATCH 098/113] Paket Update for 12/04/2024 16:17:43 (#116) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/paket.lock b/paket.lock index f981109..c70f59d 100644 --- a/paket.lock +++ b/paket.lock @@ -983,9 +983,9 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.8.3) - Pulumi (>= 3.67.1) - Pulumi.Aws (6.62.2) + Pulumi.Auth0 (3.9) + Pulumi (>= 3.70) + Pulumi.Aws (6.63) Pulumi (>= 3.70) Pulumi.Azure (6.12) Pulumi (>= 3.70) @@ -996,8 +996,8 @@ NUGET System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.35.1) - Pulumi (>= 3.69) + Pulumi.DigitalOcean (4.36) + Pulumi (>= 3.70) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) Pulumi.FSharp (3.70) From ca185c9c992e4cad835a8d99446874e4a041996f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 15:54:48 -0400 Subject: [PATCH 099/113] Paket Update for 12/04/2024 20:15:13 (#117) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index c70f59d..963779c 100644 --- a/paket.lock +++ b/paket.lock @@ -941,7 +941,7 @@ NUGET System.Reflection.Metadata (>= 5.0) FSharp.Core (9.0.100) Glob (1.1.9) - Google.Protobuf (3.29) + Google.Protobuf (3.29.1) Grpc.AspNetCore.Server (2.67) Grpc.Net.Common (>= 2.67) Grpc.AspNetCore.Server.Reflection (2.67) From 0c5828f177d23fc8d08400f59f0765e1c171bf56 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:17:03 -0400 Subject: [PATCH 100/113] Paket Update for 12/05/2024 20:15:47 (#118) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paket.lock b/paket.lock index 963779c..eb701c0 100644 --- a/paket.lock +++ b/paket.lock @@ -972,7 +972,7 @@ NUGET Microsoft.Extensions.Primitives (>= 9.0) Microsoft.Extensions.Primitives (9.0) OneOf (3.0.271) - Pulumi (3.70) + Pulumi (3.71) Ben.Demystifier (>= 0.4.1) Grpc.AspNetCore.Server (>= 2.63) Grpc.AspNetCore.Server.Reflection (>= 2.63) @@ -1000,9 +1000,9 @@ NUGET Pulumi (>= 3.70) Pulumi.Docker (4.5.7) Pulumi (>= 3.67.1) - Pulumi.FSharp (3.70) + Pulumi.FSharp (3.71) FSharp.Core (>= 4.7.2) - Pulumi (>= 3.70) + Pulumi (>= 3.71) Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) From d36d7933b08ca086a11b67acd50ac93ee26ad50e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 20:04:47 -0400 Subject: [PATCH 101/113] Paket Update for 12/06/2024 20:18:24 (#119) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/paket.lock b/paket.lock index eb701c0..421a9ef 100644 --- a/paket.lock +++ b/paket.lock @@ -985,14 +985,14 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.9) Pulumi (>= 3.70) - Pulumi.Aws (6.63) - Pulumi (>= 3.70) + Pulumi.Aws (6.64) + Pulumi (>= 3.71) Pulumi.Azure (6.12) Pulumi (>= 3.70) Pulumi.AzureAD (6.0.1) Pulumi (>= 3.67.1) - Pulumi.AzureNative (2.75) - Pulumi (>= 3.70) + Pulumi.AzureNative (2.76) + Pulumi (>= 3.71) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) @@ -1008,9 +1008,9 @@ NUGET Pulumi.FSharp (>= 3.43.1) Pulumi.Gcp (8.10) Pulumi (>= 3.67.1) - Pulumi.Kubernetes (4.18.3) + Pulumi.Kubernetes (4.18.4) Glob (>= 1.1.5) - Pulumi (>= 3.67.1) + Pulumi (>= 3.71) Pulumi.Protobuf (3.27.3) Pulumi.Random (4.16.7) Pulumi (>= 3.67.1) @@ -1018,7 +1018,7 @@ NUGET Pulumi (>= 3.67.1) Semver (3.0) Microsoft.Extensions.Primitives (>= 5.0.1) - Serilog (4.1) + Serilog (4.2) Serilog.Extensions.Logging (8.0) Microsoft.Extensions.Logging (>= 8.0) Serilog (>= 3.1.1) From 8650baf0bfd5827958743cd0442c9c0d46547adc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 21:25:33 -0400 Subject: [PATCH 102/113] Paket Update for 12/09/2024 01:06:12 (#120) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paket.lock b/paket.lock index 421a9ef..1f062ec 100644 --- a/paket.lock +++ b/paket.lock @@ -1019,9 +1019,9 @@ NUGET Semver (3.0) Microsoft.Extensions.Primitives (>= 5.0.1) Serilog (4.2) - Serilog.Extensions.Logging (8.0) - Microsoft.Extensions.Logging (>= 8.0) - Serilog (>= 3.1.1) + Serilog.Extensions.Logging (9.0) + Microsoft.Extensions.Logging (>= 9.0) + Serilog (>= 4.2) Serilog.Sinks.Console (6.0) Serilog (>= 4.0) System.Collections.Immutable (9.0) From 693ccfbdc6221d2e98553ba4fe23d6da4cb52d6c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 01:58:20 -0400 Subject: [PATCH 103/113] Paket Update for 12/11/2024 04:17:05 (#121) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/paket.lock b/paket.lock index 1f062ec..24b73e7 100644 --- a/paket.lock +++ b/paket.lock @@ -983,14 +983,14 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.9) - Pulumi (>= 3.70) + Pulumi.Auth0 (3.10) + Pulumi (>= 3.71) Pulumi.Aws (6.64) Pulumi (>= 3.71) - Pulumi.Azure (6.12) - Pulumi (>= 3.70) - Pulumi.AzureAD (6.0.1) - Pulumi (>= 3.67.1) + Pulumi.Azure (6.13) + Pulumi (>= 3.71) + Pulumi.AzureAD (6.0.2) + Pulumi (>= 3.71) Pulumi.AzureNative (2.76) Pulumi (>= 3.71) System.Collections.Immutable (>= 5.0) @@ -1006,8 +1006,8 @@ NUGET Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.10) - Pulumi (>= 3.67.1) + Pulumi.Gcp (8.10.2) + Pulumi (>= 3.71) Pulumi.Kubernetes (4.18.4) Glob (>= 1.1.5) Pulumi (>= 3.71) From a310bf9b0ed3702372374390a7217e055e5c6270 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 04:16:53 +0000 Subject: [PATCH 104/113] Paket Update for 12/12/2024 04:16:49 (#122) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 24b73e7..8eaa887 100644 --- a/paket.lock +++ b/paket.lock @@ -1008,7 +1008,7 @@ NUGET Pulumi.FSharp (>= 3.43.1) Pulumi.Gcp (8.10.2) Pulumi (>= 3.71) - Pulumi.Kubernetes (4.18.4) + Pulumi.Kubernetes (4.19) Glob (>= 1.1.5) Pulumi (>= 3.71) Pulumi.Protobuf (3.27.3) From d531b21ccea6317c18e214e00ab7f006897be53e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:00:38 -0400 Subject: [PATCH 105/113] Paket Update for 12/12/2024 12:26:56 (#123) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 8eaa887..210f962 100644 --- a/paket.lock +++ b/paket.lock @@ -991,7 +991,7 @@ NUGET Pulumi (>= 3.71) Pulumi.AzureAD (6.0.2) Pulumi (>= 3.71) - Pulumi.AzureNative (2.76) + Pulumi.AzureNative (2.77) Pulumi (>= 3.71) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From afc7e459ed105b967fa343c0eaf887148d9dd772 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 15 Dec 2024 16:15:15 -0400 Subject: [PATCH 106/113] Paket Update for 12/13/2024 12:26:07 (#124) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 210f962..3104d2d 100644 --- a/paket.lock +++ b/paket.lock @@ -983,7 +983,7 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.10) + Pulumi.Auth0 (3.10.1) Pulumi (>= 3.71) Pulumi.Aws (6.64) Pulumi (>= 3.71) From 48a14f565f73cff00063b2f48c3764474a80939b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 02:19:46 -0400 Subject: [PATCH 107/113] Paket Update for 12/16/2024 01:06:43 (#125) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/paket.lock b/paket.lock index 3104d2d..ffe204b 100644 --- a/paket.lock +++ b/paket.lock @@ -985,7 +985,7 @@ NUGET Serilog.Sinks.Console (>= 4.0.1) Pulumi.Auth0 (3.10.1) Pulumi (>= 3.71) - Pulumi.Aws (6.64) + Pulumi.Aws (6.65) Pulumi (>= 3.71) Pulumi.Azure (6.13) Pulumi (>= 3.71) @@ -996,10 +996,10 @@ NUGET System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.36) - Pulumi (>= 3.70) - Pulumi.Docker (4.5.7) - Pulumi (>= 3.67.1) + Pulumi.DigitalOcean (4.37) + Pulumi (>= 3.71) + Pulumi.Docker (4.5.8) + Pulumi (>= 3.71) Pulumi.FSharp (3.71) FSharp.Core (>= 4.7.2) Pulumi (>= 3.71) @@ -1012,10 +1012,10 @@ NUGET Glob (>= 1.1.5) Pulumi (>= 3.71) Pulumi.Protobuf (3.27.3) - Pulumi.Random (4.16.7) - Pulumi (>= 3.67.1) - Pulumi.Tls (5.0.9) - Pulumi (>= 3.67.1) + Pulumi.Random (4.16.8) + Pulumi (>= 3.71) + Pulumi.Tls (5.0.10) + Pulumi (>= 3.71) Semver (3.0) Microsoft.Extensions.Primitives (>= 5.0.1) Serilog (4.2) From 7b9e0d2babc09fbe754748e12d8bdbc5a21ca230 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 16:16:03 -0400 Subject: [PATCH 108/113] Paket Update for 12/16/2024 20:15:13 (#126) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index ffe204b..276e3c4 100644 --- a/paket.lock +++ b/paket.lock @@ -987,7 +987,7 @@ NUGET Pulumi (>= 3.71) Pulumi.Aws (6.65) Pulumi (>= 3.71) - Pulumi.Azure (6.13) + Pulumi.Azure (6.14) Pulumi (>= 3.71) Pulumi.AzureAD (6.0.2) Pulumi (>= 3.71) From a40c4a823e349b128ac95c1da790a1387c6f2e12 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 00:00:29 -0400 Subject: [PATCH 109/113] Paket Update for 12/17/2024 01:04:41 (#127) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 276e3c4..8d239fd 100644 --- a/paket.lock +++ b/paket.lock @@ -1006,7 +1006,7 @@ NUGET Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.10.2) + Pulumi.Gcp (8.11) Pulumi (>= 3.71) Pulumi.Kubernetes (4.19) Glob (>= 1.1.5) From 166f33d263281ba3fd486cce9379ab1ba8f6fee3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 12:27:14 +0000 Subject: [PATCH 110/113] Paket Update for 12/17/2024 12:27:05 (#128) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 8d239fd..ad63094 100644 --- a/paket.lock +++ b/paket.lock @@ -991,7 +991,7 @@ NUGET Pulumi (>= 3.71) Pulumi.AzureAD (6.0.2) Pulumi (>= 3.71) - Pulumi.AzureNative (2.77) + Pulumi.AzureNative (2.78) Pulumi (>= 3.71) System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) From 5caa6f4498f5421273236cde0d31243db3cc2af3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:26:10 -0400 Subject: [PATCH 111/113] Paket Update for 12/18/2024 04:16:28 (#129) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index ad63094..614992e 100644 --- a/paket.lock +++ b/paket.lock @@ -1006,7 +1006,7 @@ NUGET Pulumi.FSharp.Core (3.1.5) FSharp.Core (>= 6.0.6) Pulumi.FSharp (>= 3.43.1) - Pulumi.Gcp (8.11) + Pulumi.Gcp (8.12) Pulumi (>= 3.71) Pulumi.Kubernetes (4.19) Glob (>= 1.1.5) From 5785ea6d8fb4ca9767443a103cdcd1f322afc169 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 02:16:41 -0400 Subject: [PATCH 112/113] Paket Update for 12/19/2024 01:02:36 (#130) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paket.lock b/paket.lock index 614992e..3744b36 100644 --- a/paket.lock +++ b/paket.lock @@ -941,7 +941,7 @@ NUGET System.Reflection.Metadata (>= 5.0) FSharp.Core (9.0.100) Glob (1.1.9) - Google.Protobuf (3.29.1) + Google.Protobuf (3.29.2) Grpc.AspNetCore.Server (2.67) Grpc.Net.Common (>= 2.67) Grpc.AspNetCore.Server.Reflection (2.67) From 96342a12451862a606caee436fe6a9ad5bc35e6d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 20:14:21 +0000 Subject: [PATCH 113/113] Paket Update for 12/19/2024 20:14:17 (#131) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- paket.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paket.lock b/paket.lock index 3744b36..c8312bc 100644 --- a/paket.lock +++ b/paket.lock @@ -983,7 +983,7 @@ NUGET Semver (>= 2.1) Serilog.Extensions.Logging (>= 3.0.1) Serilog.Sinks.Console (>= 4.0.1) - Pulumi.Auth0 (3.10.1) + Pulumi.Auth0 (3.10.2) Pulumi (>= 3.71) Pulumi.Aws (6.65) Pulumi (>= 3.71) @@ -996,7 +996,7 @@ NUGET System.Collections.Immutable (>= 5.0) Pulumi.Command (1.0.1) Pulumi (>= 3.65) - Pulumi.DigitalOcean (4.37) + Pulumi.DigitalOcean (4.37.1) Pulumi (>= 3.71) Pulumi.Docker (4.5.8) Pulumi (>= 3.71)