Umbraco 8.18 LTS Release
Overview:
- What does LTS mean?
- What’s new in Umbraco 8.18 LTS
- History Cleanup
- Examine Dashboard improvements
- Updated Log Viewer
- Package Telemetry
- New health check for Fixed Application Url
- Member properties moved to Content App
- Updated dependencies
- Breaking Changes
- Community Contributions
- How to get your hands on Umbraco 8.18 LTS
What does long-term support (LTS) mean?
Before we dive into the features and improvements in Umbraco 8.18, let’s take a look at why this is an LTS version and what that means.
With the release of Umbraco 9 last year, we’ve naturally shifted our development focus to the new version. More and more, if not most, new projects and contributions are started on Umbraco 9 and the release schedule will reflect this going forward.
This means that all new feature development for Umbraco will be targeting Umbraco 9+, this goes for contributions as well. We do want to ensure that the many Umbraco 8 installations out there can continue to provide stability, compatibility, and security for the users - that’s where long-term support comes in.
Support phase
Umbraco 8.18 will continue to receive patches for regression issues, compatibility (such as browser and framework changes), and, of course, providing security patches should they be needed. This is called the support phase and lasts for the next 2 years.
Security phase
After 2 years, Umbraco 8 will enter the security phase, and patches will exclusively be to provide security fixes. The security phase will last for a full year after which Umbraco 8 will be considered EOL (end-of-life) in February 2025.
Umbraco 8 projects on Umbraco Cloud will continue to be automatically patched throughout the Support and Security phase,
You can read more about the policies for LTS and EOL in the Product Knowledge Center.
History Cleanup
Every time a content item is published in Umbraco a new version (or revision) is stored in the database. This allows you to roll back to previous versions and provides a history of changes. It also means that a content item that has been worked on a lot can potentially consist of many database entries of which only one is in use (the published version) and just a few others might be relevant such as unpublished work.
This new feature provides some much-requested functionality to your Umbraco installations, previously only available through the unVersion package, that helps keep the database footprint of Umbraco at a more reasonable level and some more efficient querying of the database.
History Cleanup does exactly what the name suggests. It cleans the history for content items ensuring there is less excess data.
Scheduled cleanup
The cleanup is scheduled to run hourly (changed from daily in the release candidate) and will go through content items and clean up any unnecessary versions based on the cleanup policy.
Cleanup policy
You can of course configure the cleanup policy to your liking and either add new defaults for all Document Types, add granular policies on a per Document Type level, or disable the cleanup entirely.
The default cleanup policy is to remove all versions that are more than 7 days old except for the latest version which will be kept for 90 days.
If you are upgrading an existing installation to 8.18, the History Cleanup will be disabled by default and you’ll need to enable it in order to benefit from scheduled cleanups. This is all configured in umbracoSettings..config:
Granular Cleanup Policies
It is also possible to override or disable the cleanup policies for a specific Document Type. This is done in the backoffice on the Permissions tab for each Document Type. Here you can prevent cleanup for content based on the Document Type entirely, or overwrite the global configuration.
Pinned versions
Aside from the cleanup policies, you can also pin specific versions to ensure they are not removed during cleanup. This is done in the backoffice Rollback dialog which means it can be done by content editors as well.
Adding this functionality allowed us to improve the UX on the Rollback dialog. The dialog is now much bigger, allowing for a better overview of version content. The version dropdown has been replaced with a beautiful listview including the ability to pin specific versions and even includes pagination, so you can now see all the previous versions (the dropdown had a limit on the amount it would show).
Examine Dashboard improvements
The Examine Dashboard has been improved with some changes to styling (the row width is now enforced) and the ability to toggle which fields are shown on the dashboard. It makes it easier to inspect and debug your examine indexes.
As you can see in the video above it is a breeze to inspect different fields now and even useful for comparing data between documents.
Updated Log Viewer
Every now and then we need to dig into the logs to identify an issue or just check that things are working as expected. The UI has been tightened up in the Backoffice log viewer to make it friendlier and easier to work with.
You can find before and after screenshots on the issue. This, as well as the Examine Dashboard improvements, are contributions by Søren Kottal for Umbraco 9, and it’s great to see them included in Umbraco 8 as well. Thanks again Søren 🙌
Package Telemetry
This is a new feature adding the functionality to send anonymized, analytical data on package usage in Umbraco. Having solid data on package usage is important for both package developers and the Umbraco ecosystem. This new feature will send analytical data for packages and provide more reliable numbers for package authors than what we get from NuGet today - all out-of-the-box.
In order to do so, two new properties have been added to package manifests.
“allowPackageTelemetry” is enabled by default, also when not present in the manifest. Adding this property and setting it to false allows you to turn off telemetry for the package.
“Version” to indicate the version number of the package. This needs to be in place for version-specific telemetry to work. If not set, the data will still be recorded and the version number will be set as not specified.
The “name” property will be used to map telemetry to a package, if the name property is not set, the folder name will be used to map the data.
We’re not collecting any data yet but will start to do so in the near future and will of course give you updates on the progress in Product Updates and relevant release blog posts. The plan is to make the data available for the package owners so they have a better number than NuGet installs. They will be used on Our for the package section and will support the work on the upcoming Umbraco Marketplace.
New health check for Fixed Application Url
A new security health check has been added in the settings of Umbraco 8.18. You will now see a warning if the UmbracoApplicationUrl has not been set.
We highly recommend setting the UmbracoApplicationUrl to the desired default hostname as Umbraco will otherwise use the most recently used hostname to request the application.
The UmbracoApplicationUrl is set in umbracoSettings.config and you can read more about it in the documentation. Once the application URL is set, you’ll get I nice checkmark to verify the health check has passed.
Member properties moved to Content App
The default Member properties are now added to a Member Content App as opposed to a Group or Tab. This has been done to address some issues with the required Member properties when creating new Member types and/or working with tabs on your Member types.
As a nice benefit, this gives a clearer indication that these are indeed required properties and now, working with tabs and groups for custom properties works as expected.
Previously the login, email, password, and member groups fields were shown in a fixed "Properties" group that was added below all existing groups. If you started using tabs, this group would be displayed in a Generic tab (and couldn't be moved elsewhere). By moving these fields to their own Member Content App, you'll get a much better experience when using tabs!
Members also require some additional properties (comments, failed password attempts, is approved, is locked out, last lockout date, last login date, last password change date), which are added to the "Membership" group by default after the first save. You can now move these properties to other groups and even tabs. Because these properties are required for members to work correctly, they will show up as 'Locked' and can't be removed: this is now also enforced when using tabs. So if you don't see the delete icon on tabs/groups anymore, make sure to move any of these properties to another tab/group first.
You can find more information and examples on the PR: https://github.com/umbraco/Umbraco-CMS/pull/11587
Updated Dependencies
There are a couple of dependency updates you might want to be aware of when upgrading to Umbraco 8.18:
- Examine 1.2.0 -> 1.2.1
- ClientDependency 1.9.9 -> 1.9.10
- noUiSlider 15.4 -> 15.5
Breaking Changes
There is a breaking change to be aware of in this release. If you extend or manually instantiate the usersController or AuthenticationController please note that you will have to update your call to the constructor.
https://github.com/umbraco/Umbraco-CMS/pull/11775
Community Contributions
Of the 120 bug fixes and feature additions in 8.18.0, a total of 92 of them have been contributed by the community, by 33 unique contributors and 53 of these contributions came in during Hacktoberfest.
We’re welcoming 5 brand new contributors who have made their first pull request for Umbraco CMS; they’re marked with a star below. Welcome to the contributor club Jesper, Rasmus, Jamie, Martino and Tyler! 🏆
Total PRs: 92
Hacktoberfest PRs: 53
Total contributors: 33
⭐ = First pull request to any Umbraco repository
And of course, as a thank you, we’ve just added another bunch of trees to our growing plot for today’s 8.18.0 release to celebrate your contributions! 🌳🌲🌴
How to get your hands Umbraco 8.18 LTS
As always, from today, all new v8 Umbraco Cloud projects will be running 8.18. For all our Umbraco Cloud customers with existing projects, this upgrade is only 2 minutes away:
We’ve wrapped it all up for you, so all you have to do now is follow these steps:
- Add a Development Environment to your project, if you do not already have one (Add a Development environment by clicking “Manage Environments” in the project view)
- Make sure you also restore the content to the Development Environment from your Live.
- When the Development Environment is all set up and you’ve made sure you don’t have any pending changes on the Development Environment - you are all ready to upgrade to Umbraco 8.x!
- It's as easy as clicking a button - like, literally clicking the "Upgrade Available" button on the Development Environment. The auto-upgrader will take care of everything from here! 🚀
- Once it's done, check the Development Environment to make sure everything is looking right.
- When that's confirmed, you are ready to deploy the upgrade to the next environment - Live or Staging, and start taking full advantage of all the new features.
Non-Cloud and release notes:
As always, installation and release notes can be found on Our: https://our.umbraco.com/contribute/releases/8180
This release is also available from Nuget: https://www.nuget.org/packages/UmbracoCms/8.18.0