Closed LottePitcher closed 9 months ago
Hey @LottePitcher 👋
First impression - I don't hate it, and tend to agree that a template makes more sense than a package as a starter kit is the baseline for a new project, not something added to supplement/extend an existing project.
There would obvs be some changes required to make it work, but ultimately we're still talking about nuget packages, just a different flavour. Ideally I think we'd be considering template-type packages and treating these as we do 'normal' packages, so that we can display both types in the existing categories (we'd likely then have packages, integrations and templates)
Andy is off this week, but we'll discuss when he's back and will update here.
Hi Lotte, We have seen "untraditional" packages before and managed to present/fit them into the Umbraco Marketplace setup, e.g. Cookiebot, so I hope we can do something similar here :)
Thank you @nathanwoulfe and @BoletteKern for your thoughts. I'll be sure to post a link here to any starter kit(s) released as templates so there are real examples to consider. :-)
Everyone that created a local Umbraco project will have used the Umbraco.Templates
package, so we can already list that (as HQ 'package').
We could also list .NET tools, which are also distributed as NuGet packages and already have some examples:
Thanks all... so for now, just listing here the things we'd need to think about:
Hey all, with the help of @LottePitcher I now have UmBootstrap as a dotnet project template listed on nuget: Umbraco.Community.Templates.UmBootstrap
It does, as @AndyButland mentioned, have Umbraco as a dependency and is both a template, starter kit and component library.
Please let me know if there are any steps I can take to help make this the first dotnet project template on Umbraco Marketplace.
It is does @AndyButland mentioned, have Umbraco as a dependency and is both a template, starter kit and component library.
Did you mean "doesn't have" here @deanleigh? If you did mean "does", can you elaborate please, as clicking the link to NuGet I don't see anything that would indicate this dependency. If we can find some alternate means of validating that a package does have an Umbraco dependency, we could look to use that. Otherwise as I noted above, perhaps we have to remove or relax this check when importing packages in order to support including templates.
It does, as @AndyButland mentioned, have Umbraco as a dependency and is both a template, starter kit and component library.
Did you mean "doesn't have" here @deanleigh? If you did mean "does", can you elaborate please, as clicking the link to NuGet I don't see anything that would indicate this dependency.
The template is essentially an Umbraco site with content and doctypes added by Usync on first build. Does that count as having Umbraco as a dependency?
If we can find some alternate means of validating that a package does have an Umbraco dependency, we could look to use that. Otherwise as I noted above, perhaps we have to remove or relax this check when importing packages in order to support including templates.
Happy to add additional tags but not sure if that is a good long term policy. Please let me know of any way to validate it as I would love to get it in Marketplace a.s.a.p.
The template is essentially an Umbraco site with content and doctypes added by Usync on first build. Does that count as having Umbraco as a dependency?
Not in the sense that we consider it for importing packages at the moment. If you click here you can see there are no dependencies listed. For a typical Umbraco package, e.g. here, you will see at least one (or if not, a dependency on something else that depends on Umbraco).
So that's the part we have to consider/modify it allow import of templates or tools.
This seems odd as without Umbraco there is no template. I wonder if that is something we can add when pushing to nuget.org? e.g in template-pack.csproj add:
<PackageReference Include="Umbraco" Version="10.6.1" />
to
<ItemGroup>
<Content Include="Umbootstrap.Web\**\*" Exclude="Umbootstrap.Web\**\bin\**;Umbootstrap.Web\**\obj\**" />
<Compile Remove="**\*" />
<None Include="assets\README_nuget.md" Pack="true" PackagePath="\"/>
<None Include="assets\icon_nuget_umbootstrap.png" Pack="true" PackagePath="\"/>
</ItemGroup>
Perhaps one for @LottePitcher ?
Is there anything I can do to make this happen? I am getting great feedback from people using UmBootstrap as a starter kit and for rapid app dev but I can't let people know about it on Marketplace?
Did you try your suggestion in the comment above? I believe if you do that - i.e. add a dependency to Umbraco CMS, and also add the usual umbraco-marketplace
tag, that should should list the template on the Marketplace.
If that works that'll at least get you the listing up.
I'd still like to do a bit more to display templates and tools differently from normal packages - not least so we can display correct install instructions. But that will need work on our side - which we are talking about, but haven't yet planned in.
Hi Andy, yes I took a look at Umbraco.Forms as suggested and whilst it has depenencies listed as follows: Umbraco.Forms.Core.Providers (>= 12.1.1) Umbraco.Forms.Examine (>= 12.1.1) Umbraco.Forms.StaticAssets (>= 12.1.1) It does not specifically have Umbraco listed as a dependency.
UmBootstrap is quite literally an Umbraco site i.e. without Umbraco it couldn't exist, so are there any instructions as to how I would go about adding Umbraco as a dependency in a way that Marketplace will recognise?
I've made a PR to your repo to show you the idea.
The important thing is that currently Umbraco CMS or Commerce must be in the dependency chain of the package, so although Umbraco.Forms
doesn't depend on Umbraco.Cms.*
, if you follow the dependency chain you'll see that it does (Umbraco.Forms --> Umbraco.Forms.Core.Providers -->Umbraco.Forms.Core --> Umbraco.Cms.Web.BackOffice
).
For background. the general instructions for listing packages are here.
Thanks @AndyButland funnily enough I followed this article: https://learn.microsoft.com/en-us/dotnet/core/tools/dependencies#add-a-dependency-by-editing-the-project-file and went to add the code to csproj and found this was already in the project csproj:
<ItemGroup>
<PackageReference Include="Our.Umbraco.UmbNav.Web" Version="2.0.8" />
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
<PackageReference Include="Umbraco.Cms" Version="10.6.1" />
</ItemGroup>
I think I know how to do this manually now but I'll check your PR first
Updated template-pack.csproj and all seems right in nuget.org. Are you able to test in Marketplace please?
@deanleigh We have tools for you! 🙌 https://marketplace.umbraco.com/validate and if it passes, you can request a sync too.
I can confirm my starterkit is now visible on the marketplace by adding the umbraco-marketplace tag and umbraco cms dependency
So it is confirmed that a dotnet template starterkit can be seen in the marketplace
https://marketplace.umbraco.com/package/umbcheckout.starterkit.stripe
I have released another version, this time with umbraco-marketplace.json completed @nul800sebastiaan
Thank you so much @AndyButland and @nul800sebastiaan for making this live. I have a question related to the installation buttons, they seem to be pre-configured for nuget packages therefore will not work. So instead of: dotnet new umbootstrap They are: dotnet add package Umbraco.Community.Templates.UmBootstrap and: Install-Package Umbraco.Community.Templates.UmBootstrap
Yes, that's noted...
I'd still like to do a bit more to display templates and tools differently from normal packages - not least so we can display correct install instructions. But that will need work on our side - which we are talking about, but haven't yet planned in.
... we'll hopefully get chance to have a look at this in the upcoming weeks.
One for Umbraco Hacktoberfest 2023?
Also my category is not appearing, do I need to encode the ampersand?
"Category": "Themes & Starter Kits",
We've released an update today that now displays the appropriate install instructions depending on the type of package.
We decided to combine what we previously had as "package type" (i.e. "Package" or "Integration") with the new detail which is the "NuGet package type" (i.e. "Package", "Tool" or "Template"). Which gives us 4 options we display on the front-end.
umbraco-marketplace.json
file as an "Integration" we use that.There's a template example here, but more will update as the synchronisation runs.
Amazing @AndyButland thank you so much. I feel more confident promoting it in Marketplace now.
@AndyButland It looks like the validator needs updating
"PackageType": "Template",
I think it's actually OK, though perhaps getting a bit confusing given we have these two definitions of "package type" now that we are combining into one in the UI.
But for the package owner data provided in umbraco-marketplace.json
, this can remain as either "Package" or "Integration". We use the NuGet package type in preference, so if this is set to "Tool" or "Template" we'll use that irrespective of what's in the umbraco-marketplace.json
file.
There has been some discussion on Discord - https://discord.com/channels/869656431308189746/1113091087939158160 - that starter kits make more sense to be released as dotnet new templates, not umbraco packages.
What do we think about the marketplace featuring templates as well as umbraco packages? Otherwise the obvious downside to this approach is they won't be discoverable on the marketplace
This item has been added to our backlog AB#33076