Add new 'Umbraco Package RCL' project template (#13776)

* Add new 'Umbraco Package RCL' project template

* Add --no-restore, hide --framework and remove conflicting -v parameter in Umbraco Package project template

* Hide --framework and --PackageTestSiteName, remove conflicting -v parameter in Umbraco project template and persist selected parameters

* Revert changes to Framework and UmbracoVersion parameter names
This commit is contained in:
Ronald Barendse
2023-04-05 09:32:48 +02:00
committed by GitHub
parent c662f5a36e
commit 92d92feb15
11 changed files with 203 additions and 22 deletions

View File

@@ -12,6 +12,7 @@
<ItemGroup> <ItemGroup>
<Content Include="UmbracoPackage\**" Exclude="bin;obj" /> <Content Include="UmbracoPackage\**" Exclude="bin;obj" />
<Content Include="UmbracoPackageRcl\**" Exclude="bin;obj" />
<Content Include="UmbracoProject\**" Exclude="bin;obj" /> <Content Include="UmbracoProject\**" Exclude="bin;obj" />
<Content Include="..\src\Umbraco.Web.UI\Program.cs"> <Content Include="..\src\Umbraco.Web.UI\Program.cs">
<Link>UmbracoProject\Program.cs</Link> <Link>UmbracoProject\Program.cs</Link>

View File

@@ -3,11 +3,16 @@
"symbolInfo": { "symbolInfo": {
"Framework": { "Framework": {
"longName": "Framework", "longName": "Framework",
"shortName": "F" "shortName": "F",
"isHidden": true
}, },
"UmbracoVersion": { "UmbracoVersion": {
"longName": "version", "longName": "version",
"shortName": "v" "shortName": "v"
},
"SkipRestore": {
"longName": "no-restore",
"shortName": ""
} }
} }
} }

View File

@@ -41,9 +41,16 @@
"description": "The version of Umbraco.Cms to add as PackageReference.", "description": "The version of Umbraco.Cms to add as PackageReference.",
"type": "parameter", "type": "parameter",
"datatype": "string", "datatype": "string",
"defaultValue": "10.0.0-rc1", "defaultValue": "11.0.0",
"replaces": "UMBRACO_VERSION_FROM_TEMPLATE" "replaces": "UMBRACO_VERSION_FROM_TEMPLATE"
}, },
"SkipRestore": {
"displayName": "Skip restore",
"description": "If specified, skips the automatic restore of the project on create.",
"type": "parameter",
"datatype": "bool",
"defaultValue": "false"
},
"Namespace": { "Namespace": {
"type": "derived", "type": "derived",
"valueSource": "name", "valueSource": "name",
@@ -83,5 +90,19 @@
{ {
"path": "UmbracoPackage.csproj" "path": "UmbracoPackage.csproj"
} }
],
"postActions": [
{
"id": "restore",
"condition": "(!SkipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
{
"text": "Run 'dotnet restore'"
}
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
}
] ]
} }

View File

@@ -0,0 +1,22 @@
{
"$schema": "https://json.schemastore.org/dotnetcli.host.json",
"symbolInfo": {
"Framework": {
"longName": "Framework",
"shortName": "F",
"isHidden": true
},
"UmbracoVersion": {
"longName": "version",
"shortName": ""
},
"SkipRestore": {
"longName": "no-restore",
"shortName": ""
},
"SupportPagesAndViews": {
"longName": "support-pages-and-views",
"shortName": "s"
}
}
}

View File

@@ -0,0 +1,20 @@
{
"$schema": "https://json.schemastore.org/ide.host.json",
"order": 0,
"icon": "../../icon.png",
"description": {
"id": "UmbracoPackageRcl",
"text": "Umbraco Package RCL - An empty Umbraco package/plugin (Razor Class Library)."
},
"symbolInfo": [
{
"id": "UmbracoVersion",
"isVisible": true
},
{
"id": "SupportPagesAndViews",
"isVisible": true,
"persistenceScope": "templateGroup"
}
]
}

View File

@@ -0,0 +1,82 @@
{
"$schema": "https://json.schemastore.org/template.json",
"author": "Umbraco HQ",
"classifications": [
"Web",
"CMS",
"Umbraco",
"Package",
"Plugin",
"Razor Class Library"
],
"name": "Umbraco Package RCL",
"description": "An empty Umbraco package/plugin (Razor Class Library).",
"groupIdentity": "Umbraco.Templates.UmbracoPackageRcl",
"identity": "Umbraco.Templates.UmbracoPackageRcl.CSharp",
"shortName": "umbracopackage-rcl",
"tags": {
"language": "C#",
"type": "project"
},
"sourceName": "UmbracoPackage",
"defaultName": "UmbracoPackage1",
"preferNameDirectory": true,
"symbols": {
"Framework": {
"displayName": "Framework",
"description": "The target framework for the project.",
"type": "parameter",
"datatype": "choice",
"choices": [
{
"displayName": ".NET 7.0",
"description": "Target net7.0",
"choice": "net7.0"
}
],
"defaultValue": "net7.0",
"replaces": "net7.0"
},
"UmbracoVersion": {
"displayName": "Umbraco version",
"description": "The version of Umbraco.Cms to add as PackageReference.",
"type": "parameter",
"datatype": "string",
"defaultValue": "11.0.0",
"replaces": "UMBRACO_VERSION_FROM_TEMPLATE"
},
"SkipRestore": {
"displayName": "Skip restore",
"description": "If specified, skips the automatic restore of the project on create.",
"type": "parameter",
"datatype": "bool",
"defaultValue": "false"
},
"SupportPagesAndViews": {
"type": "parameter",
"datatype": "bool",
"defaultValue": "false",
"displayName": "Support pages and views",
"description": "Whether to support adding traditional Razor pages and Views to this library."
}
},
"primaryOutputs": [
{
"path": "UmbracoPackage.csproj"
}
],
"postActions": [
{
"id": "restore",
"condition": "(!SkipRestore)",
"description": "Restore NuGet packages required by this project.",
"manualInstructions": [
{
"text": "Run 'dotnet restore'"
}
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
}
]
}

View File

@@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<AddRazorSupportForMvc Condition="'$(SupportPagesAndViews)' == 'True'">true</AddRazorSupportForMvc>
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">UmbracoPackage</RootNamespace>
<StaticWebAssetBasePath>App_Plugins/UmbracoPackage</StaticWebAssetBasePath>
</PropertyGroup>
<PropertyGroup>
<PackageId>UmbracoPackage</PackageId>
<Product>UmbracoPackage</Product>
<Title>UmbracoPackage</Title>
<Description>...</Description>
<PackageTags>umbraco plugin package</PackageTags>
</PropertyGroup>
<ItemGroup Condition="'$(SupportPagesAndViews)' == 'True'">
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Umbraco.Cms.Web.Website" Version="UMBRACO_VERSION_FROM_TEMPLATE" />
<PackageReference Include="Umbraco.Cms.Web.BackOffice" Version="UMBRACO_VERSION_FROM_TEMPLATE" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,5 @@
{
"name": "UmbracoPackage",
"version": "",
"allowPackageTelemetry": true
}

View File

@@ -3,7 +3,8 @@
"symbolInfo": { "symbolInfo": {
"Framework": { "Framework": {
"longName": "Framework", "longName": "Framework",
"shortName": "F" "shortName": "F",
"isHidden": true
}, },
"UmbracoVersion": { "UmbracoVersion": {
"longName": "version", "longName": "version",
@@ -55,14 +56,15 @@
}, },
"PackageProjectName": { "PackageProjectName": {
"longName": "PackageTestSiteName", "longName": "PackageTestSiteName",
"shortName": "p" "shortName": "p",
"isHidden": true
} }
}, },
"usageExamples": [ "usageExamples": [
"dotnet new umbraco -n MyNewProject", "dotnet new umbraco --name MyNewProject",
"dotnet new umbraco -n MyNewProject --no-restore", "dotnet new umbraco --name MyNewProject --no-restore",
"dotnet new umbraco -n MyNewProject --development-database-type SQLite", "dotnet new umbraco --name MyNewProject --development-database-type SQLite",
"dotnet new umbraco -n MyNewProject --development-database-type LocalDB", "dotnet new umbraco --name MyNewProject --development-database-type LocalDB",
"dotnet new umbraco -n MyNewProject --friendly-name \"Friendly Admin User\" --email admin@example.com --password password1234 --connection-string \"Server=ConnectionStringHere\"" "dotnet new umbraco --name MyNewProject --friendly-name \"Administrator\" --email admin@example.com --password 1234567890 --connection-string \"Server=(local);Database=MyNewProject;Trusted_Connection=True;\""
] ]
} }

View File

@@ -13,19 +13,18 @@
}, },
{ {
"id": "UseHttpsRedirect", "id": "UseHttpsRedirect",
"isVisible": true "isVisible": true,
}, "persistenceScope": "templateGroup"
{
"id": "SkipRestore",
"isVisible": true
}, },
{ {
"id": "ExcludeGitignore", "id": "ExcludeGitignore",
"isVisible": true "isVisible": true,
"persistenceScope": "templateGroup"
}, },
{ {
"id": "MinimalGitignore", "id": "MinimalGitignore",
"isVisible": true "isVisible": true,
"persistenceScope": "templateGroup"
}, },
{ {
"id": "ConnectionString", "id": "ConnectionString",
@@ -37,7 +36,8 @@
}, },
{ {
"id": "DevelopmentDatabaseType", "id": "DevelopmentDatabaseType",
"isVisible": true "isVisible": true,
"persistenceScope": "templateGroup"
}, },
{ {
"id": "UnattendedUserName", "id": "UnattendedUserName",
@@ -54,10 +54,6 @@
{ {
"id": "NoNodesViewPath", "id": "NoNodesViewPath",
"isVisible": true "isVisible": true
},
{
"id": "PackageProjectName",
"isVisible": true
} }
] ]
} }

View File

@@ -51,7 +51,7 @@
"description": "The version of Umbraco.Cms to add as PackageReference.", "description": "The version of Umbraco.Cms to add as PackageReference.",
"type": "parameter", "type": "parameter",
"datatype": "string", "datatype": "string",
"defaultValue": "10.0.0-rc1", "defaultValue": "11.0.0",
"replaces": "UMBRACO_VERSION_FROM_TEMPLATE" "replaces": "UMBRACO_VERSION_FROM_TEMPLATE"
}, },
"UseHttpsRedirect": { "UseHttpsRedirect": {