Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OWD project: Grouping web platform features (with W3C WebDX CG) #169

Closed
4 of 7 tasks
Elchi3 opened this issue Jun 27, 2023 · 3 comments
Closed
4 of 7 tasks

OWD project: Grouping web platform features (with W3C WebDX CG) #169

Elchi3 opened this issue Jun 27, 2023 · 3 comments
Labels
H1 2024 Projects for the first half of 2024 H2 2023 Projects for July-December 2023

Comments

@Elchi3
Copy link
Member

Elchi3 commented Jun 27, 2023

Problem statement

There is currently no consistent way to talk about web platform features as groups of features making it impossible to name a combination of features as a web platform capability.

BCD records compatibility at quite a granular level. It provides data for each individual API, CSS property or HTTP header etc. and often also contains sub features describing more detailed facets of a feature. However, BCD has no concept of groups of features; they stand on their own.

MDN does some grouping but it does so incoherently. One mechanism is https://github.com/mdn/content/blob/main/files/jsondata/GroupData.json which is used by sidebars. It is largely based on how specifications group web platform features.

caniuse.com allows varying granularity. You can record compatibility about a specific feature ("WebP image format"), or an about a group of features ("CSS Grid"). chromestatus.com is similar; its granularity varies a lot, too.

As web developer, depending on where you look for compatibility information, this can lead to confusion. Chromestatus, caniuse and MDN might be talking about the same things, but aren't really. What's included in a group? And what is the support thereof? You might get different answers depending on where you look and this can prevent you from making a decision whether or not to use a web platform capability.

Proposed solutions

The W3C WebDX Community Group has started to define feature-sets, see https://github.com/web-platform-dx/web-features

By creating a common nomenclature for web platform features, feature-set intends to support communication between web developers, browser vendors, standardization bodies, and other ecosystem participants. From Array to Cascade Layers to Offscreen Canvas, feature-set identifies, defines, and categorizes capabilities of the web platform that web developers care about.

We should work with the WebDX group to define feature-sets. Right now, a few group definition have been created on the repo, see e.g. https://github.com/web-platform-dx/feature-features/blob/main/feature-group-definitions/grid.yml for css-grid.

Instead of maintaining lists of features in the web-platform-dx/feature-set repo separately, we could add to the BCD json schema and "tag" features belonging to a group(s). That way, the BCD community can help efficiently to map web platform features at large scale.

Task list

  • Establish regular meetings with the WebDX group to define grouping of web platform features
  • Design an update to BCD's JSON data schema to add the ability to group features (or to "tag" them).
  • Catalog a large percentage of BCD's data into groups
  • Define how new groups can be added and who monitors them for accuracy and relevance (avoid 1000s of groups like we had with uncontrolled tagging in the MDN wiki era).
  • Define different kind of groups and their lifecycle. (an "ES6" group is probably dated by now)
  • Figure out how WebDX/BCD groups can replace MDN's group data and how sidebars and MDN overview pages could benefit from the notion of groups.
  • (...more tasks will be identified after kickoff with WebDX group)

Priority assessment

  • Effort: Large. Lots of coordination and design work needed. Then cataloguing of 10k BCD entries. Guestimating 4-6 months.
  • Dependencies: Design work with WebDX group.
  • Community enablement: Once the data design is ready, we can crowd-source the cataloging work.
  • Momentum: WebDX group needs this for "Baseline" and more. There is a lot momentum on better communication of web platform compatibility. This project is likely foundational work and the group data will be very useful for follow-up projects in 2024.
  • Enabling learners: Easier to understand and more consistent communication about browser compatibility of web capabilities.
  • Enabling professionals: same as for learners.
  • Underrepresented topics / Ethical web: n/a
  • Operational necessities: Required for more compat projects that build upon grouping.
  • Addressing needs of the web industry: Pretty much. The WebDX group is formed to address these needs and we should help with our expertise around BCD and MDN as much as we can.

More information

Open Web Docs (OWD) is a non-profit collective funded by corporate and individual donations.

In order for this project to happen, please consider donating to OWD on https://opencollective.com/open-web-docs.
For more information on sponsorship and membership tiers, see https://openwebdocs.org/membership/

More information is available at https://openwebdocs.org/.
For questions, please reach out to florian@openwebdocs.org.

@Elchi3 Elchi3 added not ready H2 2023 Projects for July-December 2023 and removed not ready labels Jun 27, 2023
@Elchi3 Elchi3 mentioned this issue Jul 3, 2023
6 tasks
@Elchi3 Elchi3 changed the title OWD project: Grouping of web platform features ("feature-set") w/ WebDX CG OWD project: Grouping of web platform features with W3C WebDX CG Sep 6, 2023
@Elchi3
Copy link
Member Author

Elchi3 commented Sep 6, 2023

Please find this video by Daniel Beck about web-features! ❤️
https://www.w3.org/2023/09/TPAC/demos/web-features.html

@Elchi3 Elchi3 changed the title OWD project: Grouping of web platform features with W3C WebDX CG OWD project: Grouping web platform features (with W3C WebDX CG) Oct 10, 2023
@Elchi3
Copy link
Member Author

Elchi3 commented Nov 27, 2023

The ability to tag features with groups has been added to BCD! mdn/browser-compat-data#21188
Docs: https://github.com/mdn/browser-compat-data/blob/main/docs/data-guidelines/tags.md

@Elchi3
Copy link
Member Author

Elchi3 commented May 30, 2024

I'm closing this initial project. There is more work to be done, but over the last year we made significant contributions to feature sets and groups within the WebDX community. I will file follow-up projects (in particular about the sub goal of grouping ECMAScript features which I've started and want to finish still).

Thanks again to funding from the Sovereign Tech Fund that made this work possible.

From our final report:

Deliverable 4: Build a catalog of web platform features and provide a CLI tool to bulk update data points

In round 2 of the challenge, we continued our collaborative work with the W3C WebDX Community Group. As there are about 15,000 features to catalog in browser-compat-data, for a focused contribution to the overall goal, we reduced the task to cataloging 1000 features. We chose to concentrate on ECMAScript. While doing so, we proposed the concept of feature bundles, groups, and snapshots for data cataloging, which we adapted into the web-platform-dx/web-features project.

We developed a command-line tool that lets us bulk update BCD’s JSON files to assign tags to many BCD features and to update compatibility data more efficiently. See mdn/browser-compat-data#22515.

@Elchi3 Elchi3 closed this as completed May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
H1 2024 Projects for the first half of 2024 H2 2023 Projects for July-December 2023
Projects
None yet
Development

No branches or pull requests

1 participant