Design decision 10 - Provisional features
Summary
- Expert: @duboisp
- Status: Approved and published
- Last updated: 2020-01-23
- History:
- (2020-01-23) Published
- (2020-01-15) Approved at the WET roadmap meeting
- (2019-12-18) Presented at the roadmap meeting
- (2019-12-18) Initial draft based on Design Decision 7
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:
- Coming up with more relevant features to add to the toolkit.
- Increasing the amount of contributions from the WET community and expanding it.
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.
- The availability of each feature is going to be discussed and re-evaluated during the roadmap meeting before a minor or major release of GCWeb (patches are excluded). The withdrawal of an provisional feature will be notified one release in advance. This statement means that the publisher of a page containing provisional features has to check out for new releases in order to make sure that the provisional feature(s) being used is/are still going to be available upon next release.
- Documentation and/or working example(s) for those features can be incomplete or unavailable.
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.