Skip to content

Commit

Permalink
Develop (#31)
Browse files Browse the repository at this point in the history
* Remove dependency on RuleMessageId (shortly to be deprecated) (#24)

* Release 0.57.0

* Todotnet package (#30)

* Add utilities to validation and todotnet packages

* Update nuget.exe. Add success message for nuspec-driven package creation.

* Update signing scripts

* Release 0.58.0 (#32)
  • Loading branch information
michaelcfanning authored Aug 29, 2018
1 parent b5dedd5 commit e91516b
Show file tree
Hide file tree
Showing 21 changed files with 159 additions and 48 deletions.
Binary file modified .nuget/NuGet.exe
Binary file not shown.
10 changes: 6 additions & 4 deletions BuildAndTest.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ function New-NuGetPackageFromNuspecFile($project, $version, $suffix = "") {
$arguments=
"pack", $nuspecFile,
"-Symbols",
"-Properties", "configuration=$Configuration;version=$version",
"-Properties", "platform=$Platform;configuration=$Configuration;version=$version",
"-Verbosity", "Quiet",
"-BasePath", ".\",
"-OutputDirectory", $PackageOutputDirectory
Expand All @@ -109,6 +109,8 @@ function New-NuGetPackageFromNuspecFile($project, $version, $suffix = "") {
&$nuGetExePath $arguments
if ($LASTEXITCODE -ne 0) {
Exit-WithFailureMessage "$project NuGet package creation failed."
} else {
Write-Information "Successfully created package from $nuspecFile"
}
}

Expand Down Expand Up @@ -138,13 +140,13 @@ if (-not $NoPackage) {
$versionPrefix, $versionSuffix = .\src\build\Get-VersionConstants.ps1
$version = "$versionPrefix$versionSuffix"

$packagingProjects = "Json.Pointer", "Json.Schema", "Json.Schema.ToDotNet", "Json.Schema.Validation"
$packagingProjects = "Json.Pointer", "Json.Schema"
foreach ($project in $packagingProjects) {
New-NuGetPackageFromProjectFile $project $version
}

$nuspecProjects = @()
$nuspecProjects = "Json.Schema.ToDotNet.Cli", "Json.Schema.Validation.Cli"
foreach ($project in $nuspecProjects) {
New-NuGetPackageFromNuSpecFile $project $version
}
}
}
23 changes: 17 additions & 6 deletions CreateSigningDirectory.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,32 @@ call :CreateDirIfNotExist %SigningDirectory%
call :CreateDirIfNotExist %SigningDirectory%\net461\
call :CreateDirIfNotExist %SigningDirectory%\netcoreapp2.0

call :CopyFilesForMultitargeting Json.Schema.dll || goto :ExitFailed
call :CopyFilesForMultitargeting Json.Pointer.dll || goto :ExitFailed
call :CopyFilesForMultitargeting Json.Schema.ToDotNet.dll || goto :ExitFailed
call :CopyFilesForMultitargeting Json.Schema.Validation.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Schema.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Pointer.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Schema.ToDotNet.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Schema.Validation.dll || goto :ExitFailed

call :CopyExeForMultitargeting Json.Schema.ToDotNet.Cli || goto :ExitFailed
call :CopyExeForMultitargeting Json.Schema.Validation.Cli || goto :ExitFailed

goto :Exit

:CopyFilesForMultitargeting
:CopyDllForMultitargeting
xcopy /Y %BinaryOutputDirectory%\%~n1\netstandard2.0\Microsoft.%1 %SigningDirectory%\netcoreapp2.0\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

xcopy /Y %BinaryOutputDirectory%\%~n1\net461\Microsoft.%1 %SigningDirectory%\net461\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

:CopyFilesExit
Exit /B %ERRORLEVEL%

:CopyExeForMultitargeting
xcopy /Y %BinaryOutputDirectory%\%1\netcoreapp2.0\Microsoft.%1.dll %SigningDirectory%\netcoreapp2.0\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

xcopy /Y %BinaryOutputDirectory%\%1\net461\Microsoft.%1.exe %SigningDirectory%\net461\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

Exit /B %ERRORLEVEL%

:CreateDirIfNotExist
Expand Down
24 changes: 17 additions & 7 deletions PushSignedBinariesIntoBuild.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,34 @@ set BinaryOutputDirectory=%BinaryOutputDirectory%\%Platform%_%Configuration%\
set SigningDirectory=%BinaryOutputDirectory%\..\Signing

:: Copy all multitargeted assemblies to their locations
call :CopyFilesForMultitargeting Json.Schema.dll || goto :ExitFailed
call :CopyFilesForMultitargeting Json.Pointer.dll || goto :ExitFailed
call :CopyFilesForMultitargeting Json.Schema.ToDotNet.dll || goto :ExitFailed
call :CopyFilesForMultitargeting Json.Schema.Validation.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Schema.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Pointer.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Schema.ToDotNet.dll || goto :ExitFailed
call :CopyDllForMultitargeting Json.Schema.Validation.dll || goto :ExitFailed

call :CopyExeForMultitargeting Json.Schema.ToDotNet.Cli || goto :ExitFailed
call :CopyExeForMultitargeting Json.Schema.Validation.Cli || goto :ExitFailed

goto :Exit

:CopyFilesForMultitargeting
:CopyDllForMultitargeting

xcopy /Y %SigningDirectory%\netcoreapp2.0\Microsoft.%1 %BinaryOutputDirectory%\%~n1\netstandard2.0\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

echo xcopy /Y %SigningDirectory%\net461\Microsoft.%1 %BinaryOutputDirectory%\%~n1\net461\
xcopy /Y %SigningDirectory%\net461\Microsoft.%1 %BinaryOutputDirectory%\%~n1\net461\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

Exit /B %ERRORLEVEL%

:CopyExeForMultitargeting

xcopy /Y %SigningDirectory%\netcoreapp2.0\Microsoft.%1.dll %BinaryOutputDirectory%\%1\netstandard2.0\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

xcopy /Y %SigningDirectory%\net461\Microsoft.%1.exe %BinaryOutputDirectory%\%1\net461\
if "%ERRORLEVEL%" NEQ "0" (echo %1 assembly copy failed. && goto :CopyFilesExit)

:CopyFilesExit
Exit /B %ERRORLEVEL%

:ExitFailed
Expand Down
56 changes: 28 additions & 28 deletions src/Everything.sln
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Json.Schema.Validation", "J
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Json.Schema.Validation.UnitTests", "Json.Schema.Validation.UnitTests\Json.Schema.Validation.UnitTests.csproj", "{873E9120-AC3D-470A-9C44-54553FF6D7FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonSchemaToDotNet", "JsonSchemaToDotNet\JsonSchemaToDotNet.csproj", "{40F48D6B-E93E-49E0-8728-5570C900D52F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonSchemaValidator", "JsonSchemaValidator\JsonSchemaValidator.csproj", "{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{61B301BF-A902-4050-9B52-91AF97CC6B89}"
ProjectSection(SolutionItems) = preProject
build\CommonAssemblyInfo.cs = build\CommonAssemblyInfo.cs
Expand All @@ -45,6 +41,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{14BA185B-9
..\README.md = ..\README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Json.Schema.ToDotNet.Cli", "Json.Schema.ToDotNet.Cli\Json.Schema.ToDotNet.Cli.csproj", "{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Json.Schema.Validation.Cli", "Json.Schema.Validation.Cli\Json.Schema.Validation.Cli.csproj", "{66137683-87F3-4FBC-82DC-194C956FFE44}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -175,30 +175,30 @@ Global
{873E9120-AC3D-470A-9C44-54553FF6D7FB}.Release|x64.Build.0 = Release|Any CPU
{873E9120-AC3D-470A-9C44-54553FF6D7FB}.Release|x86.ActiveCfg = Release|Any CPU
{873E9120-AC3D-470A-9C44-54553FF6D7FB}.Release|x86.Build.0 = Release|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Debug|x64.ActiveCfg = Debug|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Debug|x64.Build.0 = Debug|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Debug|x86.ActiveCfg = Debug|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Debug|x86.Build.0 = Debug|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Release|Any CPU.Build.0 = Release|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Release|x64.ActiveCfg = Release|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Release|x64.Build.0 = Release|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Release|x86.ActiveCfg = Release|Any CPU
{40F48D6B-E93E-49E0-8728-5570C900D52F}.Release|x86.Build.0 = Release|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Debug|x64.ActiveCfg = Debug|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Debug|x64.Build.0 = Debug|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Debug|x86.ActiveCfg = Debug|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Debug|x86.Build.0 = Debug|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Release|Any CPU.Build.0 = Release|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Release|x64.ActiveCfg = Release|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Release|x64.Build.0 = Release|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Release|x86.ActiveCfg = Release|Any CPU
{4656B05E-DE62-4EA4-ADDE-9D81FD2C3337}.Release|x86.Build.0 = Release|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Debug|x64.ActiveCfg = Debug|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Debug|x64.Build.0 = Debug|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Debug|x86.ActiveCfg = Debug|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Debug|x86.Build.0 = Debug|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Release|Any CPU.Build.0 = Release|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Release|x64.ActiveCfg = Release|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Release|x64.Build.0 = Release|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Release|x86.ActiveCfg = Release|Any CPU
{2F62D002-63BE-4C5A-B91E-AD75D6055FFE}.Release|x86.Build.0 = Release|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Debug|x64.ActiveCfg = Debug|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Debug|x64.Build.0 = Debug|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Debug|x86.ActiveCfg = Debug|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Debug|x86.Build.0 = Debug|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Release|Any CPU.Build.0 = Release|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Release|x64.ActiveCfg = Release|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Release|x64.Build.0 = Release|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Release|x86.ActiveCfg = Release|Any CPU
{66137683-87F3-4FBC-82DC-194C956FFE44}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0</TargetFrameworks>
<AssemblyNameOverride>JsonSchemaToDotNet</AssemblyNameOverride>
<AssemblyNameOverride>Microsoft.Json.Schema.ToDotNet.Cli</AssemblyNameOverride>
<RootNamespaceOverride>Microsoft.Json.Schema.ToDotNet.CommandLine</RootNamespaceOverride>
<AssemblyName>Microsoft.Json.Schema.ToDotNet.Cli</AssemblyName>
</PropertyGroup>

<PropertyGroup Label="AssemblyAttributes">
Expand Down
39 changes: 39 additions & 0 deletions src/Json.Schema.ToDotNet.Cli/Json.Schema.ToDotNet.Cli.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0"?>
<package>
<metadata>
<id>Microsoft.Json.Schema.ToDotNet</id>
<version>$version$</version>
<title>Microsoft Json Schema to .NET Object Model Generator</title>
<authors>microsoft</authors>
<owners>microsoft,tse-securitytools</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A utility that generates a .NET object model from a JSON schema.</description>
<releaseNotes>Version $version$ of the JSON .NET object model generator (for SARIF v2.0.0)</releaseNotes>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<licenseUrl>https://github.com/Microsoft/jschema/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/microsoft/jschema</projectUrl>
<iconUrl>https://go.microsoft.com/fwlink/?linkid=2009431</iconUrl>
<tags>Microsoft Json Schema .NET ToDotNet Object Model Generator Jschema</tags>
</metadata>
<files>
<file src="bld\bin\$platform$_$configuration$\Json.Schema.ToDotNet\net461\Microsoft.Json.Schema.ToDotNet.dll"
target="lib\net461\Microsoft.Json.Schema.ToDotNet.dll"
/>

<file src="bld\bin\$platform$_$configuration$\Json.Schema.ToDotNet\netstandard2.0\Microsoft.Json.Schema.ToDotNet.dll"
target="lib\netstandard2.0\Microsoft.Json.Schema.ToDotNet.dll"
/>

<file src="bld\bin\$platform$_$configuration$\Json.Schema.ToDotNet.Cli\net461\**"
target="tools\net461"
/>

<file src="bld\bin\$platform$_$configuration$\Json.Schema.ToDotNet.Cli\netcoreapp2.0\**"
target="tools\netcoreapp2.0"
/>

<file src="src\ReleaseHistory.md" />
<file src="src\Json.Schema.ToDotNet\**\*.cs" target="src\Json.Schema.ToDotNet" />
<file src="src\Json.Schema.ToDotNet.Cli\**\*.cs" target="src\Json.Schema.ToDotNet.Cli" />
</files>
</package>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0</TargetFrameworks>
<AssemblyNameOverride>JsonSchemaValidator</AssemblyNameOverride>
<AssemblyNameOverride>Microsoft.Json.Schema.Validation.Cli</AssemblyNameOverride>
<RootNamespaceOverride>Microsoft.Json.Schema.Validation.CommandLine</RootNamespaceOverride>
<AssemblyName>Microsoft.Json.Schema.Validator.Cli</AssemblyName>
</PropertyGroup>

<PropertyGroup Label="AssemblyAttributes">
Expand Down
39 changes: 39 additions & 0 deletions src/Json.Schema.Validation.Cli/Json.Schema.Validation.Cli.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0"?>
<package>
<metadata>
<id>Microsoft.Json.Schema.Validation</id>
<version>$version$</version>
<title>Microsoft Json Schema Validation</title>
<authors>microsoft</authors>
<owners>microsoft,tse-securitytools</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A utility that validates files according to a JSON schema.</description>
<releaseNotes>Version $version$ of the JSON validation utility (for SARIF v2.0.0)</releaseNotes>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<licenseUrl>https://github.com/Microsoft/jschema/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/microsoft/jschema</projectUrl>
<iconUrl>https://go.microsoft.com/fwlink/?linkid=2009431</iconUrl>
<tags>Microsoft Json Schema .NET Validation Validator JSchema</tags>
</metadata>
<files>
<file src="bld\bin\$platform$_$configuration$\Json.Schema.Validation\net461\Microsoft.Json.Schema.Validation.dll"
target="lib\net461\Microsoft.Json.Schema.Validation.dll"
/>

<file src="bld\bin\$platform$_$configuration$\Json.Schema.Validation\netstandard2.0\Microsoft.Json.Schema.Validation.dll"
target="lib\netstandard2.0\Microsoft.Json.Schema.Validation.dll"
/>

<file src="bld\bin\$platform$_$configuration$\Json.Schema.Validation.Cli\net461\**"
target="tools\net461"
/>

<file src="bld\bin\$platform$_$configuration$\Json.Schema.Validation.Cli\netcoreapp2.0\**"
target="tools\netcoreapp2.0"
/>

<file src="src\ReleaseHistory.md" />
<file src="src\Json.Schema.Validation\**\*.cs" target="src\Json.Schema.Validation" />
<file src="src\Json.Schema.Validation.Cli\**\*.cs" target="src\Json.Schema.Validation.Cli" />
</files>
</package>
File renamed without changes.
File renamed without changes.
8 changes: 8 additions & 0 deletions src/ReleaseHistory.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Microsoft Json Schema Packages

## **0.57.0** [Pointer](https://www.nuget.org/packages/Microsoft.Json.Pointer/0.57.0) | [Schema](https://www.nuget.org/packages/Microsoft.Json.Schema/0.57.0)| [Schema.ToDotNet](https://www.nuget.org/packages/Microsoft.Json.Schema.ToDotNet/0.57.0)| [Schema.Validation](https://www.nuget.org/packages/Microsoft.Json.Schema.Validation/0.57.0)
* Remove dependency on result.ruleMessageId

## **0.58.0** [Pointer](https://www.nuget.org/packages/Microsoft.Json.Pointer/0.58.0) | [Schema](https://www.nuget.org/packages/Microsoft.Json.Schema/0.58.0)| [Schema.ToDotNet](https://www.nuget.org/packages/Microsoft.Json.Schema.ToDotNet/0.58.0)| [Schema.Validation](https://www.nuget.org/packages/Microsoft.Json.Schema.Validation/0.58.0)
* Package validation and .NET object model generation utilities in Validation and ToDotNet packages.

2 changes: 1 addition & 1 deletion src/build.props
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<Company Condition=" '$(Company)' == '' ">Microsoft</Company>
<Product Condition=" '$(Product)' == '' ">JSON Schema</Product>
<Copyright Condition=" '$(Copyright)' == '' ">© Microsoft Corporation. All rights reserved.</Copyright>
<VersionPrefix>0.57.0</VersionPrefix>
<VersionPrefix>0.58.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
</PropertyGroup>

Expand Down

0 comments on commit e91516b

Please sign in to comment.