Expose mirroring to BCD consumers
Nobody has claimed this yet.
- Dominant language
- JSON
- Stars
- 5.8k
- Forks
- 2.6k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 186
Description
Presently, BCD consumers cannot distinguish duplicated support statements and notes. BCD should reveal when support statements are generated, rather than authored.
Background
Mirroring copies support statements between browsers sharing an engine. It copies the statement, modifies version numbers, and applies string replacements to notes make those notes make sense across the mirrored relationship (e.g., rewriting "Chrome" to "Edge" for Chrome → Edge mirrored statements).
This originated from my audit of BCD notes. For further reading, see the Mirroring’s impact and Expose mirroring sections of my audit.
Problem
Because of mirroring, some analysis of BCD's published notes and partial implementation data is not practical. Desirable de-duplication (such as footnote-style notes on caniuse or writing notes into web-features dist files) is likewise not possible.
The mirroring script ensures that support statements sourced from the same underlying data bear no markers of being the "same" information. Simple attempts to "reverse" mirroring (e.g., measuring edit distance between notes) is incomplete, at best.
Recommendation
We should add a field to support statements that's added a generation time, indicating the origin of the statement.
For example, we could append a mirrored_from field into mirrored support statements:
{
"version_added": "79",
"mirrored_from": "css.properties.all.__compat.support.chrome"
}
Related issues
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the BCD mirroring script and the related issue #25148. Determine how generated support statements are represented and where an origin marker can be added. Done means mirrored statements expose their source, such as through a mirrored_from field, without obscuring authored statements.
Written by the indexing model from the issue text.
Assessment
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100