Design decision 7 - Experimental features
Summary
- Expert: @duboisp, @GormFrank
- Status: Obselete
- Last updated: 2020-01-15
- History:
- (2020-01-15) Obsoleted by Design decision 10: Provisional feature
- (2019-10-23) Published
- (2019-10-23) Approved at the WET roadmap meeting
- (2019-09-20) Presented at the roadmap meeting
- (2019-08-21) Trivial editorial edits
- (2019-06-11) Details on the approach along with a formal example
- (2019-05-16) Presented at the roadmap meeting
- (2019-05-14) Initial draft and applied
Issue
There has never been any easy way to test out experimental 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 experimental 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 “.experimental” class.
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.
Approach
The experimental 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 experimental feature, it will eventually be dropped instead of making it to the standards.
For instance, if someone would add an experimental feature to turn the Canada.ca website red at version 5.2 and then wouldn't document it (functionnality, possibilities, examples, etc.) by version 5.3, the feature would get flagged for removal upon next minor or major version, which in this case would be 5.4 or 6.0 respectively.
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 last roadmap meeting before a minor or major release of GCWeb (patches are excluded). The withdrawal of an experimental feature will be notified one release in advance. This statement means that the publisher of a page containing experimental features has to check out for new releases in order to make sure that the experimental 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 experimental 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.