|Number of votes:||13|
Episerver CMS Labs are CMS add-ons that solve a big problem in a small way, where the "happy paths" of a user flow are tested and fixed, while other paths and scenarios are left aside. The Labs are open sourced on Episerver's GitHub account so that you can contribute fixes to the scenarios that block your use cases. The main purpose of Labs is to validate potential features before implementing them fully and supporting all of Episerver CMS' complex features.
Episerver CMS is a complex application. Any feature added needs to work together with all existing features. This creates a lot of moving parts that must be taken into consideration when designing a new feature; it has to work from a user experience point of view as well as a technical architecture one. Supporting language management, content approvals, and projects, are the three most time-consuming aspects of CMS to support in any new feature.
The release method, by publishing a NuGet package that needs to be installed, means that clients tend to be some minor version away from the latest. This means some feedback on anything new can be very quick from our engaged community, especially EMVPs, which is great, but the main work in form of bugs and support cases, which might show us how a feature should have been arrive very late - often when we've moved on to another feature. This also means that we need to release without any known bugs, as users will have to live with them until their installation is upgraded.
Those two aspects mean that when we need to tackle a very big problem, it is hard for us to validate our ideas "in the wild" without doing a fully fleshed-out and working solution. To counter this, the Episerver CMS UI team is experimenting with "Labs" add-ons. These are open sourced add-ons released on the Episerver NuGet feed, and the main user paths are verified with QA, but leaving out most complex scenarios and edge cases. They will focus on a complex usage area each, and can include one or more proposed solutions. We encourage the use of these add-ons, and appreciate feedback. Ultimately, we will gather usage data from them to properly validate which solution will make it into the main CMS UI product, or released as a fully-supported CMS add-on.
Our first Labs is Block Enhancements (NuGet, blog post on v0.1.0) and has been well received, from what we currently can gather. The download numbers are respectable for such a new package. :) Each release has been well met in the comments section (blog posts on v0.2.0, v0.3.0, v0.4.0, and v.0.5.0). It focuses on simplifying block publishing, and shows seven (!) ways to tackle that complex usage. Without supporting Content Approval sequences and Projects... Now we're reaching a point where we need to understand which of these seven ways should be supported fully, as supporting all of them would take a very long time and potentially bloat the user experience, as we do not know how they overlap or replace each other in a user's regular work day. We are still considering the different ways we can get this understanding. Either way, it's an exciting time!
There are a few things you should expect from each release:
There are some packages that have been previously released with the Labs monicker, such as "EPiServer.Labs.LanguageManager" and they will still be around. The CMS UI team will make it clearer by prefixing future packages with "EPiServer.CMS.Labs", and consider republishing "EPiServer.Labs.BlockEnhancements" as "EPiServer.CMS.Labs.BlockEnhancements".