-
Notifications
You must be signed in to change notification settings - Fork 10
Add validate-consistency script to list contradictions between results and BCD #875
Comments
The previous logic for finding a `simpleStatement` considered anything with a `version_removed` to be non-simple, going down the code path of adding entries unless an identical one already existed. Instead, limit this case to when there were no existing statements, in which case there's no merging of entries to worry about. Defer dealing with multiple existing statements or multiple inferred statements beyond the simple case of no existing statements. The resulting edits suggest differ by quite a lot from the previous state, overall updating fewer files. Fixes #1068. #875 is the plan for catching differences in the data which cannot yet be fixed automatically.
The previous logic for finding a `simpleStatement` considered anything with a `version_removed` to be non-simple, going down the code path of adding entries unless an identical one already existed. Instead, limit this case to when there were no existing statements, in which case there's no merging of entries to worry about. Defer dealing with multiple existing statements or multiple inferred statements beyond the simple case of no existing statements. The resulting edits suggest differ by quite a lot from the previous state, overall updating fewer files. Fixes #1068. #875 is the plan for catching differences in the data which cannot yet be fixed automatically.
The previous logic for finding a `simpleStatement` considered anything with a `version_removed` to be non-simple, going down the code path of adding entries unless an identical one already existed. Instead, limit this case to when there were no existing statements, in which case there's no merging of entries to worry about. Defer dealing with multiple existing statements or multiple inferred statements beyond the simple case of no existing statements. The resulting edits suggest differ by quite a lot from the previous state, overall updating fewer files. Fixes #1068. #875 is the plan for catching differences in the data which cannot yet be fixed automatically.
Hi @foolip. @mzgoddard and I have a few questions about this:
|
I suspect things will turn out best if it's a mode of the update script, or at least if the two scripts use the same shared utility code. Otherwise, if they ever disagree we'll have one script suggesting changes that the other then complains about.
A single file is insufficient when there are OS differences, where using the macOS results would undo changes based on Windows results and vice versa. I think a BCD release is the right granularity, and batching beyond that is for ergonomics and convenience. An important case of convenience is when an issue spans releases. A warning like "BCD says this thing is supported since Chrome 45, but collector results indicate support since Chrome 30" is better than 15 individual warnings from 30-44. For an integrated approach with a single script, I'm imagining something like this:
Not quite actually. I view it more as a way to form a burndown list of BCD errors, not limited to ones that we know how to resolve automatically. I hope my integrated approach above makes the intent more clear. |
In the approach I've sketched, I was particular about when to transform a set of results for individual releases into a support statement for ranges of releases. When to make this transformation will affect the structure of the code, but the most important point is actually not when but whether it's a lossless transformation. As long as it represents exactly the same thing, working with ranges would be fine. What's important to avoid is filling in gaps (missing or null results) in the results when making the transformation and then warning about contractions in that gap, where we actually don't have any data. I hope this might clarify the reason for suggesting per-release validation, but anything that is equivalent would be fine too. |
Splitting out #571 (comment) into a new issue after discussion with @vinyldarkscratch:
The text was updated successfully, but these errors were encountered: