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:
- initiate usability research;
- initiate preliminary discussion with key organizations;
- transform the feature into a high-quality reusable product adapted for GCWeb;
- regroup and ease central coordination for new innovations.
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.
-
2025-12-mille-iles
-
gc-thématique
View frozen and deprecated méli-mélo compilations.
Experimental feature checklist
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.
- 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.
- Create a new feature folder inside the
/méli-mélo
GCWeb root folder. - 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". - 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.
- Designate a sponsor for the feature.
- Build and publish an implementation plan.
- Ensure all minimum requirements listed above are met.
- Test your code, optionally by following the instructions on developing for GCWeb or via your GitHub pages by leveraging GCWeb Jekyll theme.
- Submit your new feature through a GitHub Pull request (PR) in the GCWeb repository; please consult the contribution guidelines.
- 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.
- 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).
- 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.
- 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.
- Ensure a project sponsor with a valid point of contact is clearly identified;
- The experimental feature's folder name follows the proper naming convention:
YYYY-MM-[FeatureName]
; - Ensure each JavaScript feature and each CSS style comes with a demo/working example;
- Perform a code review to ensure there are no override nor conflict with GCWeb and/or WET-BOEW;
- Perform a quick check for any major or obvious web accessibility and security issues;
- Ensure the feature doesn't impact any content by default on page load unless the feature is explicitly activated through the HTML, either through the use of a CSS class or data attribute;
- Review the implementation plan to ensure it contains reasonable due dates and deliverables toward the feature stabilization.
- Ensure the project sponsor does report on the progress of the implementation plan.
- Ensure the change or the initial commit is described as required.
- Ensure the experimental feature, change, and initial commit have been fully tested by a project sponsor representative verifiable via an explicit comment in the GitHub pull request.
- Applicable during an update: review if the experimental feature is worth being included in additional active méli-mélo compilations based on expected progress toward feature stabilization, progress in fixing issues/TODO's, and formal feedback received or ongoing discussions.
Sponsor
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:
- Engagement with the Digital Transformation Office (DTO) at the Canadian Digital Services (CDS), ESDC;
- Review and perform the identification of the feature transformation requirements to be able to complete the integration progress into GCWeb;
- Produce accessibility conformance report and attach usability report (if any);
- Transform the experimental feature into a GCWeb provisional feature when a broader user acceptance testing is required;
- Complete feature stabilisation task, including, amongst other things, working example translation, writing guidance, publishing ACRs, feature API documentation, etc.
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.
- @sample
- 2024-10-datatable-utilities
- 2024-04-stepsquiz
- 2024-02-charts
- 2023-10-clipboard
- 2023-09-menu
- 2023-09-distance-calculator
- 2023-09-collection-sort
- 2022-09-svgimagemap
- 2021-05-steps
- 2021-05-conjunction
- 2021-04-gcaem
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: