-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Implicit default support values #25814
Comments
I'm 👎 toward any proposal that's going to make mirroring more opaque with new hidden behaviors. This might make PRs easier to review, but makes exploring the committed data worse. For instance, under this proposal, finding out when some data changed for Chrome for Android becomes more difficult through Git blame, with little advantage over the current format. Likewise, using tools like A more compelling alternative to this (at least to me) would be to make explicit what we're usually doing when we supply browser data. This isn't a full counterproposal (there are a bunch of details I have not confronted), but I'd much rather see
This could have the same effect as mirroring (that is, published data would continue to be per-browser), but with more transparency about the way we've collected the information. This would be in addition to, not a replacement for, explicit provenance notes. Lastly, on this point specifically:
This is a both a fault of mirroring and the current linter strategy. Right now, the linter enforces mirroring, clobbering data even if it has been verified. A |
Thanks for your input, Daniel. I’d like to clarify a few points.
I still believe this proposal enhances both authoring and reviewing without compromising transparency. Looking forward to your thoughts. PS: We could start with IE, making |
Florian and I chatted a bit about this at the BCD call yesterday. And I've had some time to think about this more. I'll respond to your specific points below, but a more fruitful route here might be to do something like this: File an issue describing the problem that's most troubling for which this issue is intended to fix. If the main problem is "missing unintended "false" values during review" (or whatever), then let's have a discussion about the frequency and impact of that problem and all the range of possible solutions. Mostly, I'm just not sure whether this is the most well-targeted solution to the problem, because I'm not that clear on what the problem is.
I don't think I made myself clear. This proposal makes it harder to find changes to the fact of mirroring itself, not the results of mirroring. For instance, if a Chrome for Android value changes from a specific version to mirror (e.g., Under this proposal, it would be harder to discover and follow that change because there would be no set of lines in the file that would necessarily relate to Chrome for Android. To find that change, I would have to first find the last time a
Maybe? I'd have to watch more carefully about how I'm using these things in practice. I think I often use
I can file an issue about it, but I haven't filed one. In BCD calls, I've twice brought up the possibility of a readily-available builds from CI. Both times, I got negative feedback on the idea. 🤷
Yeah, we could develop this idea more completely. I don't think it would be an "everything" solution—just a utility for the common case, where all
I don't think it's a separate discussion. You raised the issue that "we seem to be adding
There's been a long-deferred discussion item on the BCD meeting agenda notes about dropping IE. I think there are some very specific data quality issues for Edge that could be resolved that would open the door to dropping IE altogether. Before doing anything special for IE, I think we should have at least one IE-dropping discussion, to gauge whether doing anything for IE is worth anyone's time. |
To use this example from #25735: Here's how the JSON currently looks: {
"__compat": {
"description": "Cross-origin",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/renderTime#cross-origin_image_render_time",
"tags": [
"web-features:largest-contentful-paint"
],
"support": {
"chrome": {
"version_added": "133"
},
"chrome_android": "mirror",
"edge": "mirror",
"firefox": {
"version_added": false
},
"firefox_android": "mirror",
"ie": {
"version_added": false
},
"oculus": "mirror",
"opera": "mirror",
"opera_android": "mirror",
"safari": {
"version_added": false
},
"safari_ios": "mirror",
"samsunginternet_android": "mirror",
"webview_android": "mirror",
"webview_ios": "mirror"
},
"status": {
"experimental": false,
"standard_track": true,
"deprecated": false
}
} And here's how it would look (much cleaner) with implicit default support values: {
"__compat": {
"description": "Cross-origin",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/renderTime#cross-origin_image_render_time",
"tags": [
"web-features:largest-contentful-paint"
],
"support": {
"chrome": {
"version_added": "133"
},
"edge": "mirror",
"firefox": {
"version_added": false
},
"safari": {
"version_added": false
},
},
"status": {
"experimental": false,
"standard_track": true,
"deprecated": false
}
}
} |
What would you like to see added to BCD?
I'm proposing to introduce implicit default support values for certain browsers:
false
(no support) for IE"mirror"
(same as upstream) for the following browsers:Note
edge
, which has significantly more non-mirrored statements (see below).provenance:collector
tag.How impactful do you think this enhancement will be?
Overall, I believe that this change improves the authoring and reviewing experience.
As for IE, new web features are not supported for obvious reasons, so this entry just adds noise.
As for the mentioned downstream browsers:
"false"
values during review, because these would then stand out, triggering the reviewer to look for corresponding evidence in the PR description."mirror"
mostly without explicitly verifying this, because it is usually fair to assume that a feature supported in Chrome is also available in Chrome Android, and/or it isn't always straight-forward to verify.false
seems to have been set accidentally for some downstream browsers (ex 1, ex 2, ex 3, ex 4, ex 5).Do you have anything more you want to share?
According to
rg ': "mirror"' | wc -l
, we have 132,276 instances of mirror in BCD.As for mirroring, here are mirroring stats as of 2026-01-30 (total 16,831 features):
(Source:
for x in chrome_android edge firefox_android oculus opera_android safari_ios samsunginternet_android webview_android webview_ios; do printf "| $x | "; rg '"'$x'": "mirror"' | wc -l; done
)As for IE,
false
is currently set for 10,293 features (68%).(Source:
npm run stats --all --count
on 4daafe2)The text was updated successfully, but these errors were encountered: