Design decision 10 - Provisional features

Summary

Issue

There has never been any easy way to test out experimental/provisional features on WET. If anyone was to create a new CSS class or JavaScript plugin on WET, they would have to test it on their local machine, constraining its exposure amongst other things.

There are also numerous of other reasons to come up with this approach, such as:

To circumvent that, the WET community came up with a solution.

Proposed solution

Every new GCWeb release now contains a set of provisional features. In order to use any of the features, whether it is a CSS class or a Javascript plugin, one can simply wrap such feature around an element containing the “.provisional” class or the data attribute “data-wb-provisional” for javascript plugin.

With that solution, a contributor can easily add new features to GCWeb to try them out and a publisher/developer can easily implement them on any page.

Change from Design Decision 7

The CSS class “.provisional” will replace CSS class “.experimental” introduced by Design Decision 7. For the transition, the “.experimental” CSS will be an alias for at least three (3) release that are not short-term release starting when this design decision.

Provisional feature that require javascript will be used in combinaison with the “data-wb-provisional” attribute.

Approach

The provisional features approach is designed to try new things that could eventually make it to the standard/stable version of GCWeb or WET, not to brake their progress or to diverge without any supervision. In that sense, if proper documentation for a plugin or a style doesn’t come sometimes after its release as an provisional feature, it will eventually be dropped instead of making it to the standards.

Important notices

Experimental features are unstable and are to be used at your own risk.

An overall documentation page on provisional features and their current statuses is also available.

Temporary features

This solution works great with temporary features that would be needed only for a certain period of time and that should not be used afterwards.