-
Notifications
You must be signed in to change notification settings - Fork 47
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
Is it standards track? #1181
Comments
Thanks for the definition. This made me wonder whether there's enough data in browser-specs already to compute the answer, and whether we would need to override the answer manually in some cases. On top of There are 602 specs in browser-specs, of which 572 are in good standing. Converting the definition to a function that can apply to browser-spec entries, I end up with (note I added AOM and FIDO specs): function isStandardTrack(spec) {
if (spec.standing !== 'good') {
// Spec is in a pending state or has been discontinued
return false;
}
if (spec.organization === 'W3C') {
if (spec.forkOf && spec.shortname.startsWith('wasm-')) {
// Note: browser-specs only contains phase 3+ WASM specs
// Note: a bunch of phase 3+ WASM specs are not in browser-specs yet!
return true;
}
else {
return spec.release && [
'First Public Working Draft',
'Working Draft',
'Candidate Recommendation Draft',
'Candidate Recommendation Snapshot',
'Proposed Recommendation',
'Recommendation',
'Proposed Edited Recommendation',
'Draft Registry',
'Registry'
].includes(spec.release.status);
}
}
else if (spec.organization === 'IETF') {
return [
'Proposed Standard',
'Draft Standard',
'Internet Standard'
].includes(spec.nightly.status);
}
else if (spec.organization === 'Khronos Group') {
// Note: all Khronos Group specs have an "Editor's Draft" status for now.
return true;
}
else if (spec.organization === 'WHATWG') {
return true;
}
else if (spec.organization === 'Alliance for Open Media') {
// Note: status of AOM specs is either "Draft Deliverable" or
// "Final Deliverable".
return true;
}
else if (spec.organization === 'Ecma International') {
// Note: browser-specs only contains stage 3+ TC39 specs
// Note: all TC39 specs have an "Editor's Draft" status for now
return true;
}
else if (spec.organization === 'FIDO Alliance') {
// Note: just one spec in browser-specs for now
return true;
}
else {
return false;
}
} Applied to the 572 specs in browser-specs that are in good standing, I end up with 406 standard specs and 166 non-standard specs. See lists below. Do they look correct? A few entries in the non-standard list are perhaps worth highlighting:
List of 406 standard specs
List of 166 non standard specs
|
a quick note that in my mind, the fact that `rFVC' and the speech API are indeed bug in our incubation process (not bug in the data) - my gut feeling is that we may need a manual override for these situations, but that override shouldn't pretend that it has gone through a proper multi-vendor standardization process either (i.e. it should probably use a different state). |
Yes. Looking at the definition and data, I'd say the We could perhaps rather reuse the roughly defined That may not work for your "shouldn't pretend" clause for cases when we need to override the value. At a minimum, we may want to come up with another name. All names that come to mind so far such as |
This updates the find-specs script to also look for new WASM proposals in: https://github.com/WebAssembly/proposals/blob/main/README.md Only phase 3+ proposals are being considered, in accordance with: #1181 (comment) ... which itself derives from: web-platform-tests/interop#589 (comment) The script now filters out specs that cannot be fetched (some WASM proposals at phase 3+ do not have a proper spec). Fix #529.
This updates the find-specs script to also look for new WASM proposals in: https://github.com/WebAssembly/proposals/blob/main/README.md Only phase 3+ proposals are being considered, in accordance with: #1181 (comment) ... which itself derives from: web-platform-tests/interop#589 (comment) The script now filters out specs that cannot be fetched (some WASM proposals at phase 3+ do not have a proper spec). Fix #529.
@Elchi3 Would you be able to shed some light on the We're considering implementing the definition at the top of this issue, and wondering whether we might need more nuances, perhaps taking ongoing discussions on specs and possible standard positions into account. Taking one concrete example, the definition would mean that Background Fetch would be listed as "not standard", since it is a WICG incubation for now. I see that BCD has both flags set to Perhaps something like "has a spec, implemented in one browser engine, and no known negative standard positions"? |
Well, I note that wouldn't work well for something like Web Bluetooth, which also has both flags set in BCD, and that Mozilla and Webkit flag with a negative position. |
Thanks for taking a look at this @tidoust and @dontcallmedom! I quite like the idea of using Thanks for writing that code @tidoust, I'll look over the resulting categorization when I'm back at work. |
Sure! This touches on the oldest issue still unresolved today in the BCD repo :) mdn/browser-compat-data#1531. Basically, BCD sets Given BCD's
See the BCD linter file: https://github.com/mdn/browser-compat-data/blob/main/test/linter/test-spec-urls.ts
We discussed changing I think in the long-term I would love for BCD to move forward with the removal plans of the Standards position data might be related to this classification, too. But here again, I think I would love to see web-specs record that data, if possible. IMO standards positions have more to do with specification data than with compat data (even though the positions itself impact compat data). |
Thanks, @Elchi3! So What about Do you look into standards positions? Do you check whether the spec is at an incubation or standardization phase (a typical example in W3C would be a WICG spec vs. a Working Group spec)? |
Feature request from web-platform-dx/web-features#484.
I would like to answer the question "is it standards track" for every feature in web-features, and @tidoust suggested we might be able to improve the
status
field here in browser-specs to handle that.The definition we had in the Interop 2024 proposal template was a good start:
In web-platform-tests/interop#589 we also concluded that for WebAssembly, Phase 3+ was a reasonable bar.
Zooming out, I think we want to pick a point in the process for each standards organization that crosses the bar of multi-vendor interest. Most processes aren't defined in those terms, but in practice there is roughly such a point.
The text was updated successfully, but these errors were encountered: