Tuesday, July 9, 2019

Umbraco 8.1 Release

Ok, we’ve warned you. This will be a long - but good - read! We also know that there might be some aspects of this release that might spike your interest more than others, so let’s start with a “table of contents” so you know what we’ll cover and in what order (feel free to jump around ;)) :

 

  1. What’s new in Umbraco 8.1.0? (The new features and bug fixes)

  2. Community contributions in Umbraco 8

  3. Security fix (fixed in the 8.1. release + how to fix it in older versions of Umbraco)

  4. Content Migration from Umbraco 7 to Umbraco 8

  5. Breaking Changes in Umbraco 8.1.0

  6. How to get your hands on Umbraco 8.1.0!

 

So what’s new in 8.1.0?

We’ll highlight some of the new features and notable bug fixes next. The list of closed issues is over 280(!) items long though, so we can’t cover everything in this blog post 😅 Luxury “problems”! So we have picked out some of the key new features and fixes - things that’ll make it more smooth and simpler for you and your editors to work in Umbraco:  

Improved editor and backoffice experience

One of the highlights here is that over half (!) of those items are directly related to improving the editor experience. 

Meanwhile, many more fixed items also provide usability improvements and bug fixes for the rest of the backoffice. 

Copy & paste in Nested Content 

Yes, you read that correctly! When you’re adding a lot of content work might get a bit repetitive. Often you only have to tweak the numbers or the text a little.

As of now, you can copy Nested Content items and paste them.

This doesn’t just work on the same page, you can navigate to another node and paste the item there if it has a compatible configuration.

And the cherry on top? We have built this so it will work with other property editors as well. Nested Content is only just the start. Excited? We sure are! 

Easier access to Mini Profiler

Ever used the Mini Profiler to debug the speed of your page loads? Ever got annoyed that you had to remember how to get the profiler to show up? 

From now on you can go to the Setting section of Umbraco and enable it while you’re debugging your site. This will make sure that you (and only you) see the profiler for all pages you load and that helps you get those performance issues under control. Easy!

umbraco-miniprofiler

Thanks to Kenn Jacobsen, for implementing this useful new feature!

Ignore user start nodes

This is an exciting new feature that has been a long time in the making. One of our wonderful community members, Dan White managed to hang in there for a long time with us (thank you so much Dan! 🙏🙏🙏) while we reviewed his pull request

So what is it?

When you have editors in Umbraco who can, for example, only edit the blog section of the site, they have one little problem when trying to link to other pages in the site: they’re not allowed to see any of the nodes outside of the blog section in any pickers.

 

Here you see they can only link to other blog posts, but not to that super important landing page for the new campaign that’s starting on Monday 😟.

In order to fix that, you can now allow your picker datatypes to see the other nodes in the tree so that they can be picked! 🎉

Accessibility improvements

A wonderful group of people from the Umbraco community have been helping us to greatly improve the accessibility of the backoffice. They aim to take away barriers to using the Umbraco backoffice for people with disabilities.

In the short time that this group has existed, they’ve already helped us knock off a dozen issues of their list of identified problems. The most exciting fixes have been around making it easier to use the Umbraco backoffice with a keyboard and making it easier for screen readers to present the available options.

Seeing a group of people come together spontaneously around this specific subject has been a real joy and we’re doing everything we can at Umbraco HQ to make sure that their fixes get merged as quick as possible. 

There’s still a long list of identified issues and it could be a great way for you to start contributing to Umbraco, have a look and see if you think you can help.

Here at HQ, we’re really appreciating the help that Danny Lancaster, Mike Masey, Rachel Breeze, Tiffany Prosser, Florian Beijers and others have provided so far. That’s the community spirit!

Consistency and better feedback

We’ve worked on consistency a lot in this release too. Common elements like a picker and buttons should look and behave the same everywhere. While we still have more work to do, we hope you’ll notice a lot more consistency in the way elements are presented and behave in the backoffice.

Additionally, there are multiple areas where the feedback to the user has improved. Instead of saying “you can’t do this”, or giving a blank list of options, we try to be a bit more informative in explaining why you can’t do something and giving a little bit of info as to why there’s nothing to choose. 

Modelsbuilder updates

In the past, Modelsbuilder has been developed and maintained as a community package outside of Umbraco HQ. There will still be a community driven version of Modelsbuilder with an extended feature set, but in the next few months we’ll adopt the core features of Modelsbuilder into Umbraco itself.

Work on internalizing all of the features we want is still in progress for the next few versions but we’re happy that Modelsbuilder will be native feature of Umbraco from now on!

Notable bug fixes

There’s so many bug fixes in this release that it’s impossible to cover all of them in this post. A few notable ones are:

  • ModelsBuilder will be more stable now after updating document types
  • You won’t blank out the content of the rich text editor when you drag it around across the grid
  • Adding custom 2-factor authorization providers is now possible again, the login screen has been fixed to support this again
  • The strange flickering / double reloading of tree items has been fixed
  • Macros no longer render automatically in the rich text editor unless you asked them to do so

Community contributions

Let us also give a big round of applause to all the community members who have been using version 8 and giving us some great feedback. 👏👏

As mentioned earlier there’s 280+ fixed issues and feature requests implemented. Over 200 of those have been created by people using Umbraco version 8.0 and sending us their feedback, we’re grateful for all the feedback and the ability to solve real-life problems.

We’ve worked closely with 30+ individual contributors to get their fixes into this release and we’re delighted to have over a 100 community pull requests included in Umbraco 8.1.0. 😍

Security fixes

While building this version, we became aware of a security vulnerability in Umbraco. This has been fixed in Umbraco 8.1.0 (and in Umbraco 7.15.0), thus, if you choose to upgrade, you don’t have to worry about this.

If you’re not upgrading just yet, depending on how your set-up is, this security issue might affect your project. The short version is that Umbraco websites since version 6.2.0 contain a vulnerability that allows an attacker to create members using a POST request to a public URL. 

Therefore, if you have sites running Umbraco version 6.2.0+, we urge you to read the full blog post about this vulnerability and check if you need to take action on sites running older versions of Umbraco.

Content migration from Umbraco version 7 to version 8

As promised, Umbraco 8.1 contains migrations necessary to get your Umbraco 7 content converted to Umbraco 8 format. 

In short, this works by installing a clean 8.1 site and pointing it to your 7.14 or 7.15 database. The migrations are done in the upgrade installer that you’re used to seeing when upgrading an Umbraco site. 

When the migration is done, you will end up with an Umbraco 8.1.0 website containing the data migrated from your v7 site. At this point you can start porting over your custom code, templates, etc from your Umbraco 7 site. 

The whole process of content migration is described in the documentation on Our Umbraco for both Umbraco Cloud and stand-alone Umbraco.

Breaking changes

While we normally only want to make breaking changes in major releases of Umbraco, the feedback on Umbraco 8.0.x versions pointed out deficiencies in the APIs provided. This required some corrections on our part. We don’t intend to make breaking changes in minor releases but in this case, they were necessary in order to build a better and stronger Umbraco 8 going onwards.

We have limited the changes to the absolute minimum to make the upgrade as easy as possible. We expect that future minors of 8 should not need additional breaking changes.

You can read our guidelines for what we consider breaking changes on Our Umbraco: https://our.umbraco.com/documentation/development-guidelines/breaking-changes

What are the breaking changes in Umbraco 8.1.0?

Our version-specific upgrade documentation lists the breaking changes and how to update your site to work again. In short, we expect the following breaking changes to affect some people’s existing Umbraco 8 projects:

  • The IPublishedContent interface has had an overhaul to better deal with multilingual features
  • AutoMapper has been removed to improve startup times and reduce external dependencies. This in itself will not break anything on your site, but if you have used AutoMapper in your own code you will have to either include the package yourself or switch your implementation to use UmbracoMapper.
  • EntityService has been updated to greatly improve performance for loading media items
    • The optional bool parameter in most EntityService and RelationService called `full` has been removed

There are some other small changes that we’ve marked as “breaking” out of caution, but we don’t expect many people (if any) to run into them. For reference, they are listed on GitHub.

How to get your hands on Umbraco 8.1.0 

As always, from today, all new v8 Umbraco Cloud projects will be running 8.1.0. 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.1.0!

  • 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/810

This release is also available from Nuget: https://www.nuget.org/packages/UmbracoCms/8.1.0

Related Story

Security Advisory July 9th 2019

Umbraco websites since version 6.2.0 contains a vulnerability that allows an attacker to create member using a POST request to a public URL. Due to the nature of this vulnerability, it will only affect certain Umbraco projects. We have a fix ready for you to implement on your site. Here you can read which type of projects might be affected and how to fix it. For Cloud, simply upgrade your project, or follow the workaround described in this post.

Want to be updated on everything Umbraco?

Sign up for the Umbraco newsletter and get the latest news and special offers send directly to your inbox

Are you sure, that's your real e-mail?