Language selection

Search


Experimental features

Experimental features are reusable features that are in a preliminary state of experimentation packaged in time-limited méli-mélo compilation package. Those features are built from custom CSS and/or JavaScript code. Once a feature is developed and minimum requirements are met, it is packaged in a méli-mélo compilation which can be deployed and ready for use within one to two weeks on Canada.ca. Check out existing experimental features that are currently packaged in active méli-mélo compilations.

Did you know? Support for experimental features is provided during weekly WET Office hours held remotely every Tuesday afternoon.

Compilations

Every compilation's life expectancy is estimated to be approximately one (1) year, after which point it becomes "frozen" (deprecated). This should provide a feature's sponsor enough time to find resources to make their feature progress toward an official GCWeb feature. Using a frozen méli-mélo compilation on any web page is strongly discouraged. It must be replaced by the corresponding GCWeb feature or another méli-mélo compilation, or simply removed.

Features are grouped into compilations in order to quickly:

Active méli-mélo compilations and their features

Users of experimental features must ensure they are able to promptly apply any code adjustment of the pages leveraging a méli-mélo compilation. Users must expect and anticipate the risk of having a breaking change on their pages using experimental features. That risk can be mitigated by engaging with the experimental sponsor and by working with them to progress the feature toward its stabilization.

View frozen and deprecated méli-mélo compilations.

Experimental feature checklist

Minimum requirements for introducing a new feature are:
Minimum requirements for updating a feature are:

Creating a new experimental feature

Have a feature ready to be submitted and be packaged in one of our méli-mélo compilations? Check out our requirements checklist.

Get started

Below are instructions on how to create a new experimental feature in GCWeb.

Tip to quickly get started!

Start by coding and/or exposing your feature and its demo(s) by leveraging the GCWeb Jekyll theme before your contribution to GCWeb.

  1. Consider that your feature's code is going to be all included in one (1) JavaScript file and/or one (1) CSS file. That merge is done alphabetically based on the location and the file name.
  2. Create a new feature folder inside the /méli-mélo GCWeb root folder.
  3. Name your feature and its folder using the following notation: YYYY-MM-[FeatureName]. The year and month must correspond to the feature's initial publication date. For example, "2021-05-steps".
  4. Create and publish your demo/working example for each individual sub-feature and style, meaning each JS configuration and CSS class respectively, either by using the GCWeb Jekyll theme or GCWeb itself.
  5. Designate a sponsor for the feature.
  6. Build and publish an implementation plan.
  7. Ensure all minimum requirements listed above are met.
  8. Test your code, optionally by following the instructions on developing for GCWeb or via your GitHub pages by leveraging GCWeb Jekyll theme.
  9. Submit your new feature through a GitHub Pull request (PR) in the GCWeb repository; please consult the contribution guidelines.
  10. If changes are requested on your PR after the technical review (as per checklist below), collaborate with the WET-BOEW team to address every concern until it gets approved. Concerns that are explicitly identified as optional or recommended can optionally be addressed later during a subsequent contribution. For reference, first-time contributions usually require 3+ rounds of back-and-forth code review taking a week each time.
  11. Once your PR is approved, your feature will be assigned to a méli-mélo compilation and deployed on Canada.ca at the next release window (approximately one (~1) week after code is merged).
  12. Strongly recommended: after release, update the experimental feature code by executing the implementation plan and addressing all TODO's and concerns identified by the WET-BOEW team.
  13. Recommended: whenever possible, participate at the weekly WET Office hours on Tuesday afternoon. The WET-BOEW team will be able to help you progress in your contribution and execute your implementation plan by finding ways to remove any technical or procedural barriers you may encounter.

See 2021-05-steps and its folder on GitHub as a complete example of an experimental feature containing all the required information.

Technical review checklist

This list contains the technical steps that the WET-BOEW team uses to approve new experimental features.

A sponsor is an entity responsible for ensuring an experimental feature progresses toward a stable & widely reusable feature as per the implementation plan. The sponsor will most likely be the author of a feature, representing their department.

Implementation plan

The implementation plan, also known as a planning horizon, is meant to set milestones in order to get an experimental feature stabilized into the WET-BOEW / GCWeb code base. It must contain the following milestones:

Each item of the plan must have an estimated due date as an indicator to measure integration progress into GCWeb. The expectation is to get the experimental feature fully integrated into GCWeb within its lifespan of approximately one (1) year. See an example of an implementation plan.

To maintain your experimental feature active within subsequent méli-mélo compilations or to extend the (1) year experimental feature lifespan, you must clearly show progress to the WET-BOEW team that: (1) there is clear evidence that work is underway to advance the experimental feature toward stabilization; and (2) there are no significant ongoing concerns regarding the experimental feature. It may be possible that a revised implementation plan is requested along with the completion of some commitments prior to packaging the experimental feature into a new active méli-mélo compilation.

Versioning

This framework for méli-mélo compilations and experimental features is excluded from the GCWeb public versioning API. Any change or removal would only trigger a patch release of GCWeb. This means developers of experimental features are fully responsible to document any subsequent change they make to their experimental feature and optionally to provide migration mechanisms when applicable.

List of all experimental features

Check out existing experimental features that are currently packaged in active méli-mélo compilations.

See also:

GC promotional thematics for progressive enhancement custom code designed to support promotions with a fixed end date that affects a set of pages.

Page details

Date modified: