Skip to content

idseefeld/opinionated-package-starter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An Opinionated Umbraco Package Starter Template

NuGet GitHub license

Note

The current version of this template is for creating packages in Umbraco 16. If you want to create a package for an earlier version of Umbraco, install the earlier version of the template. Instructions for version 13 are in the v13/dev branch.

Use this dotnet new template to get a head start on creating, releasing and maintaining packages for Umbraco 16.

I've called it an 'opinionated' package starter template because lots of decisions have been made for you. This means that all you really have to worry about is adding your package code. A lot of the other stuff involved in developing, releasing and maintaining an open source Umbraco package has been done already.

Of course none of these decisions are irreversible. Once you've used the template you can change whatever you need to. Please make sure you read this readme so you understand what choices you are starting with so that you can change them where necessary before you push to GitHub, and definitely before you publish to nuget!

Template details

What's wrong with the core Umbraco Extension template?

Nothing! You can learn more about it from this section of the Umbraco 15 unboxing video

It's just that all it gives you is the actual package project. You'll need to set up a test site, work out how to configure it for nuget, how you're going to release to nuget, add certain files for a well maintained repo ...

Whereas this template will create a folder with:

  • A new solution (.sln)
  • A package project created using the core umbraco-extension template
  • A test site referencing the package project
  • A GitHub action for publishing to nuget when a tag is pushed
  • A good start on:
    • The readme for your GitHub repository
    • The readme for your nuget package
    • The umbraco-marketplace.json file which improves how your package appears on the Umbraco Marketplace
  • GitHub templates to help people create good issues and feature requests
  • And more!

What key decisions have been made?

  • License: MIT
  • Umbraco version: v16.0.0 (the current major at the time of release)
  • nuget package Id: Umbraco.Community.YourPackageName

Why MIT license?

Because Umbraco CMS is released with an MIT license, and I've assumed you're releasing this as an open source package too.

Why are you targeting the latest version of Umbraco 16?

If sites are on a Standard Term Support (STS) version of Umbraco, i.e. version 14+, then I believe they should be kept up to date with the latest STS version, so your package doesn't need to support earlier versions. When Umbraco 17 is released (scheduled for November 2025), this template will be updated to use that Long Term Support release. Refer to issue 10 for discussions about what versions to support.

Why a 'Umbraco.Community.* nuget package id?

If you don't have a company or personal brand to use as a prefix, then this is a well used convention for Umbraco community projects.

Using the template

Please read the instructions for how to install and use the template, and how to publish to nuget when you're ready.

Contributing

Yes feedback, thoughts, issues, pull requests... are of course most welcome!

Please read the Contributing Guidelines.

Acknowledgements

A lot of the decisions were made whilst collaborating with Lee Kelleher (the creator of Contentment and many other Umbraco packages) whilst developing my Admin Only Property package. So big #H5YR for all your help Lee 🙏!

Template icon

"out of the box" by Yoyon Pujiyono from Noun Project

About

Get a head start when creating Umbraco Packages

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 70.6%
  • Batchfile 19.6%
  • C# 9.8%