Skip to content

Commit e22e623

Browse files
committed
Work on removing dependency on FSharp.Compiler.Tools
1 parent 93cdc87 commit e22e623

9 files changed

Lines changed: 150 additions & 29 deletions

File tree

.paket/Paket.Restore.targets

Lines changed: 99 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,43 @@
1717
<PaketExeImage Condition=" '$(PaketBootstrapperStyle)' == 'proj' ">native</PaketExeImage>
1818
<MonoPath Condition="'$(MonoPath)' == '' And Exists('/Library/Frameworks/Mono.framework/Commands/mono')">/Library/Frameworks/Mono.framework/Commands/mono</MonoPath>
1919
<MonoPath Condition="'$(MonoPath)' == ''">mono</MonoPath>
20-
<!-- Paket command -->
21-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketToolsPath)paket')">$(PaketToolsPath)paket</PaketExePath>
22-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketRootPath)paket.exe')">$(PaketRootPath)paket.exe</PaketExePath>
2320

24-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' ">$(PaketToolsPath)paket.exe</PaketExePath>
25-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND '$(PaketExeImage)' == 'assembly' ">$(PaketToolsPath)paket.exe</PaketExePath>
26-
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND '$(PaketExeImage)' == 'native' ">$(PaketToolsPath)paket</PaketExePath>
21+
<!-- PaketBootStrapper -->
22+
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' AND Exists('$(PaketRootPath)paket.bootstrapper.exe')">$(PaketRootPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
23+
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' ">$(PaketToolsPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
24+
<PaketBootStrapperExeDir Condition=" Exists('$(PaketBootStrapperExePath)') " >$([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\</PaketBootStrapperExeDir>
25+
26+
<!-- Paket -->
27+
28+
<!-- windows, root => tool => proj style => bootstrapper => global -->
29+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
30+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
31+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket.exe</PaketExePath>
32+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' AND Exists('$(PaketBootStrapperExeDir)') ">$(_PaketBootStrapperExeDir)paket.exe</PaketExePath>
33+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' == 'Windows_NT' ">paket.exe</PaketExePath>
34+
35+
<!-- no windows, try native paket as default, root => tool => proj style => mono paket => bootstrpper => global -->
36+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketRootPath)paket') ">$(PaketRootPath)paket</PaketExePath>
37+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketToolsPath)paket') ">$(PaketToolsPath)paket</PaketExePath>
38+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket</PaketExePath>
39+
40+
<!-- no windows, try mono paket -->
41+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
42+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
43+
44+
<!-- no windows, try bootstrapper -->
45+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' AND Exists('$(PaketBootStrapperExeDir)') ">$(PaketBootStrapperExeDir)paket.exe</PaketExePath>
46+
47+
<!-- no windows, try global native paket -->
48+
<PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(OS)' != 'Windows_NT' ">paket</PaketExePath>
2749

2850
<!-- Paket command -->
2951
<_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))</_PaketExeExtension>
3052
<PaketCommand Condition=" '$(PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"</PaketCommand>
31-
<PaketCommand Condition=" '$(PaketCommand)' == '' AND '$(OS)' == 'Windows_NT'">"$(PaketExePath)"</PaketCommand>
3253
<PaketCommand Condition=" '$(PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</PaketCommand>
33-
<PaketCommand Condition=" '$(PaketCommand)' == '' AND '$(OS)' != 'Windows_NT'">"$(PaketExePath)"</PaketCommand>
54+
<PaketCommand Condition=" '$(PaketCommand)' == '' ">"$(PaketExePath)"</PaketCommand>
55+
3456

35-
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' AND Exists('$(PaketRootPath)paket.bootstrapper.exe')">$(PaketRootPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
36-
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' ">$(PaketToolsPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
3757
<PaketBootStrapperCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
3858
<PaketBootStrapperCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
3959

@@ -42,6 +62,9 @@
4262
<!-- see https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1032-fsharp-in-dotnet-sdk.md -->
4363
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
4464
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
65+
66+
<!-- Disable Paket restore under NCrunch build -->
67+
<PaketRestoreDisabled Condition="'$(NCrunch)' == '1'">True</PaketRestoreDisabled>
4568
</PropertyGroup>
4669

4770
<Target Name="PaketBootstrapping" Condition="Exists('$(PaketToolsPath)paket.bootstrapper.proj')">
@@ -82,7 +105,11 @@
82105
<PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '' ">true</PaketRestoreRequired>
83106
</PropertyGroup>
84107

85-
<PropertyGroup Condition="'$(PaketPropsVersion)' != '5.174.2' ">
108+
<!--
109+
This value should match the version in the props generated by paket
110+
If they differ, this means we need to do a restore in order to ensure correct dependencies
111+
-->
112+
<PropertyGroup Condition="'$(PaketPropsVersion)' != '5.185.3' ">
86113
<PaketRestoreRequired>true</PaketRestoreRequired>
87114
</PropertyGroup>
88115

@@ -151,16 +178,19 @@
151178

152179
<ItemGroup Condition="($(DesignTimeBuild) != true OR '$(PaketPropsLoaded)' != 'true') AND '@(PaketReferencesFileLines)' != '' " >
153180
<PaketReferencesFileLinesInfo Include="@(PaketReferencesFileLines)" >
181+
<Splits>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length)</Splits>
154182
<PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
155183
<PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
156184
<AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
157-
<CopyLocal>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])</CopyLocal>
185+
<CopyLocal Condition="'$(Splits)' == '6'">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])</CopyLocal>
158186
</PaketReferencesFileLinesInfo>
159187
<PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
160188
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
161189
<PrivateAssets Condition=" ('%(PaketReferencesFileLinesInfo.AllPrivateAssets)' == 'true') Or ('$(PackAsTool)' == 'true') ">All</PrivateAssets>
162-
<ExcludeAssets Condition="%(PaketReferencesFileLinesInfo.CopyLocal) == 'false'">runtime</ExcludeAssets>
190+
<ExcludeAssets Condition=" '%(PaketReferencesFileLinesInfo.Splits)' == '6' And %(PaketReferencesFileLinesInfo.CopyLocal) == 'false'">runtime</ExcludeAssets>
191+
<ExcludeAssets Condition=" '%(PaketReferencesFileLinesInfo.Splits)' != '6' And %(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'exclude'">runtime</ExcludeAssets>
163192
<Publish Condition=" '$(PackAsTool)' == 'true' ">true</Publish>
193+
<AllowExplicitVersion>true</AllowExplicitVersion>
164194
</PackageReference>
165195
</ItemGroup>
166196

@@ -192,19 +222,27 @@
192222
<Target Name="PaketDisableDirectPack" AfterTargets="_IntermediatePack" BeforeTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references')" >
193223
<PropertyGroup>
194224
<ContinuePackingAfterGeneratingNuspec>false</ContinuePackingAfterGeneratingNuspec>
225+
<DetectedMSBuildVersion>$(MSBuildVersion)</DetectedMSBuildVersion>
226+
<DetectedMSBuildVersion Condition="$(MSBuildVersion) == ''">15.8.0</DetectedMSBuildVersion>
195227
</PropertyGroup>
196228
</Target>
197229

198230
<Target Name="PaketOverrideNuspec" AfterTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references')" >
199231
<ItemGroup>
200232
<_NuspecFilesNewLocation Include="$(BaseIntermediateOutputPath)$(Configuration)\*.nuspec"/>
233+
<MSBuildMajorVersion Include="$(DetectedMSBuildVersion.Replace(`-`, `.`).Split(`.`)[0])" />
234+
<MSBuildMinorVersion Include="$(DetectedMSBuildVersion.Replace(`-`, `.`).Split(`.`)[1])" />
201235
</ItemGroup>
202236

203237
<PropertyGroup>
204238
<PaketProjectFile>$(MSBuildProjectDirectory)/$(MSBuildProjectFile)</PaketProjectFile>
205239
<ContinuePackingAfterGeneratingNuspec>true</ContinuePackingAfterGeneratingNuspec>
206-
<UseNewPack>false</UseNewPack>
207-
<UseNewPack Condition=" '$(NuGetToolVersion)' != '4.0.0' ">true</UseNewPack>
240+
<UseMSBuild15_9_Pack>false</UseMSBuild15_9_Pack>
241+
<UseMSBuild15_9_Pack Condition=" '@(MSBuildMajorVersion)' > '15' OR ('@(MSBuildMajorVersion)' == '15' AND '@(MSBuildMinorVersion)' > '8') ">true</UseMSBuild15_9_Pack>
242+
<UseMSBuild15_8_Pack>false</UseMSBuild15_8_Pack>
243+
<UseMSBuild15_8_Pack Condition=" '$(NuGetToolVersion)' != '4.0.0' AND (! $(UseMSBuild15_9_Pack)) ">true</UseMSBuild15_8_Pack>
244+
<UseNuGet4_Pack>false</UseNuGet4_Pack>
245+
<UseNuGet4_Pack Condition=" (! $(UseMSBuild15_8_Pack)) AND (! $(UseMSBuild15_9_Pack)) ">true</UseNuGet4_Pack>
208246
<AdjustedNuspecOutputPath>$(BaseIntermediateOutputPath)$(Configuration)</AdjustedNuspecOutputPath>
209247
<AdjustedNuspecOutputPath Condition="@(_NuspecFilesNewLocation) == ''">$(BaseIntermediateOutputPath)</AdjustedNuspecOutputPath>
210248
</PropertyGroup>
@@ -219,9 +257,52 @@
219257
<Output TaskParameter="AbsolutePaths" PropertyName="NuspecFileAbsolutePath" />
220258
</ConvertToAbsolutePath>
221259

222-
223260
<!-- Call Pack -->
224-
<PackTask Condition="$(UseNewPack)"
261+
<PackTask Condition="$(UseMSBuild15_9_Pack)"
262+
PackItem="$(PackProjectInputFile)"
263+
PackageFiles="@(_PackageFiles)"
264+
PackageFilesToExclude="@(_PackageFilesToExclude)"
265+
PackageVersion="$(PackageVersion)"
266+
PackageId="$(PackageId)"
267+
Title="$(Title)"
268+
Authors="$(Authors)"
269+
Description="$(Description)"
270+
Copyright="$(Copyright)"
271+
RequireLicenseAcceptance="$(PackageRequireLicenseAcceptance)"
272+
LicenseUrl="$(PackageLicenseUrl)"
273+
ProjectUrl="$(PackageProjectUrl)"
274+
IconUrl="$(PackageIconUrl)"
275+
ReleaseNotes="$(PackageReleaseNotes)"
276+
Tags="$(PackageTags)"
277+
DevelopmentDependency="$(DevelopmentDependency)"
278+
BuildOutputInPackage="@(_BuildOutputInPackage)"
279+
TargetPathsToSymbols="@(_TargetPathsToSymbols)"
280+
SymbolPackageFormat="symbols.nupkg"
281+
TargetFrameworks="@(_TargetFrameworks)"
282+
AssemblyName="$(AssemblyName)"
283+
PackageOutputPath="$(PackageOutputAbsolutePath)"
284+
IncludeSymbols="$(IncludeSymbols)"
285+
IncludeSource="$(IncludeSource)"
286+
PackageTypes="$(PackageType)"
287+
IsTool="$(IsTool)"
288+
RepositoryUrl="$(RepositoryUrl)"
289+
RepositoryType="$(RepositoryType)"
290+
SourceFiles="@(_SourceFiles->Distinct())"
291+
NoPackageAnalysis="$(NoPackageAnalysis)"
292+
MinClientVersion="$(MinClientVersion)"
293+
Serviceable="$(Serviceable)"
294+
FrameworkAssemblyReferences="@(_FrameworkAssemblyReferences)"
295+
ContinuePackingAfterGeneratingNuspec="$(ContinuePackingAfterGeneratingNuspec)"
296+
NuspecOutputPath="$(AdjustedNuspecOutputPath)"
297+
IncludeBuildOutput="$(IncludeBuildOutput)"
298+
BuildOutputFolder="$(BuildOutputTargetFolder)"
299+
ContentTargetFolders="$(ContentTargetFolders)"
300+
RestoreOutputPath="$(RestoreOutputAbsolutePath)"
301+
NuspecFile="$(NuspecFileAbsolutePath)"
302+
NuspecBasePath="$(NuspecBasePath)"
303+
NuspecProperties="$(NuspecProperties)"/>
304+
305+
<PackTask Condition="$(UseMSBuild15_8_Pack)"
225306
PackItem="$(PackProjectInputFile)"
226307
PackageFiles="@(_PackageFiles)"
227308
PackageFilesToExclude="@(_PackageFilesToExclude)"
@@ -264,7 +345,7 @@
264345
NuspecBasePath="$(NuspecBasePath)"
265346
NuspecProperties="$(NuspecProperties)"/>
266347

267-
<PackTask Condition="! $(UseNewPack)"
348+
<PackTask Condition="$(UseNuGet4_Pack)"
268349
PackItem="$(PackProjectInputFile)"
269350
PackageFiles="@(_PackageFiles)"
270351
PackageFilesToExclude="@(_PackageFilesToExclude)"

FSharp.Azure.StorageTypeProvider.sln

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1414
docs\tools\generate.fsx = docs\tools\generate.fsx
1515
README.md = README.md
1616
RELEASE_NOTES.md = RELEASE_NOTES.md
17+
sample-blobs.json = sample-blobs.json
18+
sample-tables.json = sample-tables.json
1719
EndProjectSection
1820
EndProject
1921
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Azure.StorageTypeProvider", "src\FSharp.Azure.StorageTypeProvider\FSharp.Azure.StorageTypeProvider.fsproj", "{FB7CA8F3-C158-49E9-B816-501741E2921F}"

paket.dependencies

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ nuget FSharp.Core
66
nuget WindowsAzure.Storage 9.3.2
77
nuget Newtonsoft.Json 10.0.2
88
nuget System.Net.Http
9-
nuget FSharp.Compiler.Tools
109

1110
nuget FAKE
1211
nuget Nuget.CommandLine
@@ -22,5 +21,4 @@ nuget Taskbuilder.fs
2221

2322
github fsprojects/FSharp.TypeProviders.SDK src/ProvidedTypes.fsi
2423
github fsprojects/FSharp.TypeProviders.SDK src/ProvidedTypes.fs
25-
nuget FSharp.Compiler.Tools
2624
nuget Microsoft.NETCore.Runtime.CoreCLR

paket.lock

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ NUGET
1414
FSharp.Charting (2.1)
1515
FSharp.Core (>= 4.0.0.1)
1616
FSharp.Compiler.Service (2.0.0.6)
17-
FSharp.Compiler.Tools (10.2.1)
1817
FSharp.Core (4.5.2)
1918
FSharp.Formatting (2.14.4)
2019
FSharp.Compiler.Service (2.0.0.6)
@@ -697,5 +696,5 @@ NUGET
697696
Newtonsoft.Json (>= 10.0.2)
698697
GITHUB
699698
remote: fsprojects/FSharp.TypeProviders.SDK
700-
src/ProvidedTypes.fs (28a24a69ada68ebd1ad25226634f4608e4875493)
701-
src/ProvidedTypes.fsi (28a24a69ada68ebd1ad25226634f4608e4875493)
699+
src/ProvidedTypes.fs (8cc9f9f8ca9b934e1f9d37743bc792dccc91675c)
700+
src/ProvidedTypes.fsi (8cc9f9f8ca9b934e1f9d37743bc792dccc91675c)

sample-blobs.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"samples": {
3+
"file1.txt": { "Type": "blockblob" },
4+
"file2.txt": null,
5+
"file3.txt": { "Type": "pageblob" },
6+
"folder/": {
7+
"childFile.txt": null
8+
},
9+
"folder2/": {
10+
"child/": {
11+
"descendant4.txt": null
12+
}
13+
}
14+
},
15+
"random": {
16+
"file.txt": null,
17+
"folder/": {
18+
"emptyFolder/": null
19+
}
20+
},
21+
"emptyContainer": { }
22+
}

sample-tables.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"Employee": {
3+
"Name": {
4+
"Type": "String"
5+
},
6+
"YearsWorking": {
7+
"Type": "int32"
8+
},
9+
"Dob": {
10+
"Type": "DateTime"
11+
},
12+
"Salary": {
13+
"Type": "double",
14+
"Optional": true
15+
},
16+
"IsManager": {
17+
"Type": "boolean",
18+
"Optional": true
19+
}
20+
}
21+
}

src/FSharp.Azure.StorageTypeProvider/AssemblyInfo.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Azure.StorageTypeProvider")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Azure.StorageTypeProvider")>]
77
[<assembly: AssemblyDescriptionAttribute("Allows easy access to Azure Storage assets through F# scripts.")>]
8-
[<assembly: AssemblyVersionAttribute("2.0.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("2.0.0")>]
8+
[<assembly: AssemblyVersionAttribute("2.0.1")>]
9+
[<assembly: AssemblyFileVersionAttribute("2.0.1")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Azure.StorageTypeProvider"
1414
let [<Literal>] AssemblyProduct = "FSharp.Azure.StorageTypeProvider"
1515
let [<Literal>] AssemblyDescription = "Allows easy access to Azure Storage assets through F# scripts."
16-
let [<Literal>] AssemblyVersion = "2.0.0"
17-
let [<Literal>] AssemblyFileVersion = "2.0.0"
16+
let [<Literal>] AssemblyVersion = "2.0.1"
17+
let [<Literal>] AssemblyFileVersion = "2.0.1"

src/FSharp.Azure.StorageTypeProvider/paket.references

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,4 @@ System.Configuration.ConfigurationManager
44
System.Net.Http
55
File:ProvidedTypes.fsi
66
File:ProvidedTypes.fs
7-
FSharp.Compiler.Tools
87
Taskbuilder.fs
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
Unquote
22
WindowsAzure.Storage
33
Expecto
4-
FSharp.Compiler.Tools
54
Newtonsoft.Json
65
Microsoft.NET.Test.Sdk
76
Taskbuilder.fs

0 commit comments

Comments
 (0)