V14: umbraco-package.json schema (#14319)

* copy umbraco-package-schema.json over from the New.Client build

* when a project referencing Cms.Targets is  building, we want to copy out the umbraco-package-schema.json file to the project directory if it does not exist

* ignore built output files

* fix typo

* add PackageReference to Umbraco.Cms.Targets to ensure dependent json schema files are copied over

* add to gitignore

* add target to remove the _UmbracoCmsPackageSchemaReference on clean

* Revert "add PackageReference to Umbraco.Cms.Targets to ensure dependent json schema files are copied over"

This reverts commit 339043a36fd0074624c3060ff0113283a9eb6376.

* generate umbraco-package-schema.json on demand in Cms.Targets

* add generated file to .gitignore
This commit is contained in:
Jacob Overgaard
2023-05-31 19:12:00 +02:00
committed by GitHub
parent cdd3adfd3c
commit 33cb74dff1
6 changed files with 25 additions and 2 deletions

3
.gitignore vendored
View File

@@ -107,10 +107,13 @@ preserve.belle
# Ignore auto-generated schema
/src/Umbraco.Cms.Targets/tasks/
/src/Umbraco.Cms.Targets/appsettings-schema.*.json
/src/Umbraco.Cms.Targets/umbraco-package-schema.json
/src/Umbraco.Web.UI/appsettings-schema.json
/src/Umbraco.Web.UI/appsettings-schema.*.json
/src/Umbraco.Web.UI/umbraco-package-schema.json
/tests/Umbraco.Tests.Integration/appsettings-schema.json
/tests/Umbraco.Tests.Integration/appsettings-schema.*.json
/tests/Umbraco.Tests.Integration/umbraco-package-schema.json
/src/Umbraco.Cms/appsettings-schema.json
playwright-report
trace.zip

View File

@@ -21,12 +21,14 @@
<!-- Add JSON schema references (and include MSBuild task) -->
<PropertyGroup>
<_UmbracoCmsJsonSchemaReference>appsettings-schema.Umbraco.Cms.json</_UmbracoCmsJsonSchemaReference>
<_UmbracoCmsPackageSchemaReference>umbraco-package-schema.json</_UmbracoCmsPackageSchemaReference>
<NoWarn>NU5100;NU5128</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Umbraco.JsonSchema.Extensions" Version="0.3.0" PrivateAssets="all" GeneratePathProperty="true" />
<None Include="$(PkgUmbraco_JsonSchema_Extensions)\tasks\netstandard2.0\**" Pack="true" PackagePath="tasks\netstandard2.0" Visible="false" />
<Content Include="$(_UmbracoCmsJsonSchemaReference)" PackagePath="" Visible="false" />
<Content Include="$(_UmbracoCmsPackageSchemaReference)" PackagePath="" Visible="false" />
</ItemGroup>
<!-- We also need physical copies in the right location relative to the Umbraco.Cms.Targets.targets file, as that's directly referenced in projects -->
@@ -58,4 +60,15 @@
<_PackageFiles Include="$(IntermediateOutputPath)_._" PackagePath="lib\$(TargetFramework)" />
</ItemGroup>
</Target>
<!-- Generate JSON package schema on build (and before copying to project) -->
<Target Name="GenerateUmbracoPackageSchema" BeforeTargets="Build;CopyUmbracoJsonSchemaFiles" Condition="!Exists('$(_UmbracoCmsPackageSchemaReference)')">
<Message Text="Generating $(_UmbracoCmsPackageSchemaReference) because it doesn't exist" Importance="high" />
<Exec WorkingDirectory="$(MsBuildThisFileDirectory)..\Umbraco.Web.UI.New.Client" Command="npm run generate:jsonschema -- --out &quot;$(MSBuildThisFileDirectory)$(_UmbracoCmsPackageSchemaReference)&quot; tsconfig.json UmbracoPackage" />
</Target>
<!-- Remove generated JSON package schema on clean -->
<Target Name="RemovePackageSchema" AfterTargets="Clean" Condition="Exists('$(_UmbracoCmsPackageSchemaReference)')">
<Delete Files="$(_UmbracoCmsPackageSchemaReference)" />
</Target>
</Project>

View File

@@ -12,5 +12,6 @@
<ItemGroup>
<UmbracoJsonSchemaReferences Include="https://json.schemastore.org/appsettings.json" Weight="-100" />
<UmbracoJsonSchemaFiles Include="$(MSBuildThisFileDirectory)..\appsettings-schema.Umbraco.Cms.json" Weight="-90" />
<UmbracoPackageSchemaFiles Include="$(MSBuildThisFileDirectory)..\umbraco-package-schema.json" Weight="-90" />
</ItemGroup>
</Project>

View File

@@ -8,11 +8,14 @@
<DependentUpon>appsettings-schema.json</DependentUpon>
</Content>
</ItemGroup>
<!-- Copy JSON schema files into the project directory -->
<Target Name="CopyUmbracoJsonSchemaFiles" BeforeTargets="Build">
<Message Text="Copying JSON schema files into project directory: @(UmbracoJsonSchemaFiles->'%(Filename)%(Extension)')" Importance="high" />
<Copy SourceFiles="@(UmbracoJsonSchemaFiles)" DestinationFolder="$(MSBuildProjectDirectory)" SkipUnchangedFiles="true" />
<Message Text="Copying JSON schema files into project directory: @(UmbracoPackageSchemaFiles->'%(Filename)%(Extension)')" Importance="high" />
<Copy SourceFiles="@(UmbracoPackageSchemaFiles)" DestinationFolder="$(MSBuildProjectDirectory)" SkipUnchangedFiles="true" />
</Target>
<!-- Add references to the JSON schema in the project directory -->

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Title>Umbraco CMS - Templates</Title>
<Description>Coontains templates for Umbraco CMS.</Description>
<Description>Contains templates for Umbraco CMS.</Description>
<PackageType>Template</PackageType>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>

View File

@@ -463,6 +463,9 @@ $RECYCLE.BIN/
appsettings-schema.json
appsettings-schema.*.json
# JSON schema file for umbraco-package.json
umbraco-package-schema.json
# Packages created from the backoffice (package.xml/package.zip)
/umbraco/Data/CreatedPackages/