Implement `{% ImplementationStatus %}` shortcode to get rid of manual table maintenance
Throughout the site we use manually maintained tables to communicate the progress a feature has made so far. While the tables are currently labeled as "Current Status" it has been internally discussed that simply stating "Status" in this context makes it apparent to readers that it is current. The relabeling can be done when replacing the manually maintained tables with the new shortcode.
While the current implementations use a table to summarise the data described in more detail below, a visually more appealing solution is preferred, for example using some sort of a timeline.
Keeping those tables up-to-date manually is tedious, while the data could actually be pulled in automatically by querying the same data source chromestatus.com uses with GoogleChromeLabs/status-query (Node.js 18 required). For example consider the following command and response querying chromestatus.com for the Launch Handler API:
$ node main.js status 5722383233056768
================================================================================
Web app launch handler
================================================================================
If not launched:
----------------
The Web app launch handler is part of the capabilities project and is currently in development. This post will be updated as the implementation progresses.
Else:
----------------
The Web app launch handler was part of the capabilities project and has now been shipped.
Explainer: https://github.com/WICG/sw-launch/blob/main/launch_handler.md
Specification: Not started
Origin trial: Origin trial
Launch: Not started
This text is constructed from an even richer JSON (see status-query source for details) which holds all the data that we want to surface in the DCC status table rows for Create Explainer and Create initial draft of specification.
For the Gather feedback & iterate on design row: If Launch status is launched, "Complete", else "In progress" linking to the #feedback anchor on the bottom of the page. Chrome version number info with release dates is available via the Chrome version history API
Info for the Origin trial row is available via a the Chrome Origin Trial API.: If the origin trial is over, "Complete", else "Started" linking to https://developer.chrome.com/origintrials/#/view_trial/<TRIAL_ID>.
Launch: If launched, "Complete (Chromium <VERSION>)", else, "Not started". The (projected) launch version will also be available from the status-query result.
In the end the existing tables should be able to be replaced with {% ImplementationStatus '<FEATURE_ID>' %}.
Benefits of using Chrome Status data to DevRel:
- Faster updates of Status tables. DevRel members will be able to update status tables by editing the underlying status entry. Updates will appear in the next deployment of the site, which happens in a matter of hours. Currently opening a PR to update this data can take several days to a week.
- Improved accuracy of the Chrome Status data. The beta announcement is now generated by a script. Since there is no human reviewing the content, that material is only as good as the underlying Chrome Status data.
Given that this is such a simple project and and other factors, why would we not just do this ourselves instead of hiring someone. I'm willing to collaborate if anyone is interested in working on this. (Our existing macros were all done by DevRel members who just thought it needed to be done.)
Thanks for volunteering your time, Joe! I'm sure eng working on this would appreciate having a contact person to consult the design of the macro and to test the feature prior to the release. I'll keep you in the loop.
Please do.