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

Add mirroring script #4729

Merged
merged 97 commits into from
Mar 24, 2020
Merged
Show file tree
Hide file tree
Changes from 92 commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
4699c28
Create basic mirroring script
queengooborg Aug 29, 2019
254eb5c
Add mirroring script to package.json
queengooborg Aug 29, 2019
cbafc45
Copy functions from Python to JavaScript
queengooborg Aug 29, 2019
67cbec7
Fix syntax and variable names
queengooborg Aug 29, 2019
0b34ab9
Mirror data only when true/null or force argument present
queengooborg Aug 29, 2019
b9fc8fa
Prevent double-declaration
queengooborg Aug 29, 2019
9eb93e8
Prevent a shallow copy of data
queengooborg Aug 29, 2019
e7c814b
Rename feature to file
queengooborg Aug 30, 2019
b0fae3e
Document new script
queengooborg Aug 30, 2019
4e2cae7
Get version mapping from BCD itself
queengooborg Aug 30, 2019
e7908b3
Add Safari iOS for browser mapping
queengooborg Aug 30, 2019
f97808c
Merge branch 'master' into scripts/mirror
queengooborg Aug 30, 2019
8ac7fbe
Merge branch 'master' into scripts/mirror
queengooborg Sep 29, 2019
269e71c
Refactor mirroring script to use idents rather than filenames
queengooborg Sep 30, 2019
195a04b
Treat missing browser from data as "null"
queengooborg Sep 30, 2019
b78ed11
Add clause for comparing pre-Blink Chrome versions for Opera
queengooborg Sep 30, 2019
09e7828
Merge branch 'master' into scripts/mirror
queengooborg Oct 26, 2019
1a94456
Use switch statement rather than if/else
queengooborg Oct 26, 2019
635d22b
Fix typo
queengooborg Oct 26, 2019
38277fd
Add mirroring data by filename (broken)
queengooborg Oct 26, 2019
8f5d388
Prefer let/const over var
queengooborg Oct 26, 2019
dd6a38f
Replace "in" with "of" in various for loops
queengooborg Oct 26, 2019
6f12188
Fix bugs with let/const
queengooborg Oct 26, 2019
32d5097
Bind mirrorDataByFile to new setFeatureRecursive
queengooborg Oct 26, 2019
9e426b0
Simplify if statements
queengooborg Oct 26, 2019
aa3a6a5
Fix statements for Safari iOS + Samsung Internet
queengooborg Oct 26, 2019
ffe6da1
Fix array call in bump_version
queengooborg Oct 26, 2019
1b05df3
Only set newData when value is not null
queengooborg Oct 26, 2019
66fe56e
Catch if data is null
queengooborg Oct 26, 2019
87f01ad
Add Samsung Internet to pre-Blink Chrome version clause
queengooborg Oct 26, 2019
53574f8
Remove extra newline
queengooborg Oct 26, 2019
70f0e43
Merge branch 'master' into scripts/mirror
queengooborg Oct 27, 2019
9f3e5ea
WebView is 1 if Chrome is 1
queengooborg Nov 7, 2019
9a3d2bc
WebView is 18 if Chrome Android is 18
queengooborg Nov 13, 2019
2f141d8
Merge branch 'master' into scripts/mirror
queengooborg Nov 16, 2019
4aea7f9
Switch "force" to "always_mirror"
queengooborg Nov 16, 2019
11adbca
Merge branch 'master' into scripts/mirror
queengooborg Nov 16, 2019
a6df6de
Fix Chrome Android mirroring
queengooborg Nov 16, 2019
ece62a9
Merge branch 'master' into scripts/mirror
queengooborg Nov 18, 2019
0217e86
Merge branch 'master' into scripts/mirror
queengooborg Nov 18, 2019
943872e
Merge branch 'master' into scripts/mirror
queengooborg Nov 21, 2019
25db5b2
Merge branch 'master' into scripts/mirror
queengooborg Dec 3, 2019
b6ff1bd
Merge branch 'master' into scripts/mirror
queengooborg Dec 4, 2019
a13c10b
Run Prettier
queengooborg Dec 4, 2019
e6f9044
Fix IE -> Edge case
queengooborg Dec 4, 2019
cac5b8c
Add updateNotes function
queengooborg Dec 4, 2019
3eeffdb
Merge branch 'master' into scripts/mirror
queengooborg Dec 6, 2019
596c91a
Allow deriving Edge data from Chrome
queengooborg Dec 6, 2019
af99949
Allow mirroring of all files
queengooborg Dec 6, 2019
863b5d5
Merge branch 'master' into scripts/mirror
queengooborg Dec 9, 2019
90c8075
Rename "force" to "always"
queengooborg Dec 12, 2019
9765f14
Switch "always" to "modify" which can take additional strings
queengooborg Dec 12, 2019
412e48e
Move mirroring script docs from testing.md to contributing.md
queengooborg Dec 12, 2019
1a773d4
Update docs to represent new parameter
queengooborg Dec 12, 2019
10139c8
Merge branch 'master' into scripts/mirror
queengooborg Dec 12, 2019
073bf08
Merge branch 'master' into scripts/mirror
queengooborg Dec 18, 2019
04872d0
Merge branch 'master' into scripts/mirror
queengooborg Dec 20, 2019
c854753
Create "triggers" variable
queengooborg Dec 20, 2019
3c07cf2
Only call getSource once
queengooborg Dec 20, 2019
0791e97
Fix errors from ESLint
queengooborg Dec 20, 2019
ef5c153
Remove accidental newline
queengooborg Dec 24, 2019
2a9ff9a
Merge branch 'master' into scripts/mirror
queengooborg Jan 13, 2020
1bdb065
Fix WebView ranges
queengooborg Jan 13, 2020
b50a9ef
Merge branch 'master' into scripts/mirror
queengooborg Jan 15, 2020
ef394b7
Use compare-versions for engine version comparison
queengooborg Jan 15, 2020
ea01ffa
Merge branch 'master' into scripts/mirror
queengooborg Jan 22, 2020
bb73632
Merge branch 'master' into scripts/mirror
queengooborg Jan 24, 2020
3954405
Merge branch 'master' into scripts/mirror
queengooborg Jan 31, 2020
b733b99
Prepare for future mirroring options
queengooborg Feb 8, 2020
d63c96c
Merge branch 'master' into scripts/mirror
queengooborg Feb 9, 2020
6512448
Merge branch 'master' into scripts/mirror
queengooborg Feb 11, 2020
adc2ff5
Update JSDoc comments
queengooborg Feb 11, 2020
88c7d69
Add combineNotes() function
queengooborg Feb 11, 2020
e73ff8b
Create Edge Chromium specific mirroring function
queengooborg Feb 11, 2020
55b055f
Reference from "data", only set to "newValue"
queengooborg Feb 11, 2020
0d4ac73
Rename "newValue" to "newData" for consistency
queengooborg Feb 11, 2020
ab9e802
Account for lack of notes
queengooborg Feb 11, 2020
3e210d4
Fix misrename of a variable
queengooborg Feb 11, 2020
0875431
Only set notes if there are notes to set in the first place
queengooborg Feb 11, 2020
ef3f132
Prevent note duplication
queengooborg Feb 11, 2020
9040131
Accommodate for Edge 80+
queengooborg Feb 11, 2020
f6fa8fb
Accommodate for arrays
queengooborg Feb 11, 2020
c8f9dae
Merge branch 'master' into scripts/mirror
queengooborg Feb 13, 2020
27ccf58
Update scripts/mirror.js
queengooborg Mar 20, 2020
8759baa
Update scripts/mirror.js
queengooborg Mar 20, 2020
f08f22f
Remove trailing whitespace
queengooborg Mar 22, 2020
0ddcb05
Merge branch 'master' into scripts/mirror
queengooborg Mar 23, 2020
96f500e
Update contributing.md based upon feedback
queengooborg Mar 23, 2020
710918d
Add note regarding inconsistent file structure to contributing.md
queengooborg Mar 23, 2020
85b1c38
Mention no support for recursive feature identifiers
queengooborg Mar 23, 2020
ba9bf03
Separate bumpVersion into multiple functions
queengooborg Mar 23, 2020
3523b95
Merge WebView range creator into bumpWebView and improve function
queengooborg Mar 23, 2020
e3caf71
Re-add copy of support statements in the form of a function
queengooborg Mar 24, 2020
d036858
Warn user after script runtime to double-check results
queengooborg Mar 24, 2020
c538d34
Update docs/contributing.md
queengooborg Mar 24, 2020
263f2d5
Update docs/contributing.md
queengooborg Mar 24, 2020
be0f794
Run Prettier
queengooborg Mar 24, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,27 @@ Not everything is enforced or validated by the schema. A few things to pay atten

If the feature you're interested in is a JavaScript API, you can cross-reference data against [Web API Confluence](https://web-confluence.appspot.com/) using the `confluence` command. This command overwrites data in your current working tree according to data from the dashboard. See [Using Confluence](using-confluence.md) for instructions.

## Optional: Generating data using the mirroring script

Many browsers within BCD are derived from other browsers, for example Opera derives from Chrome, and Firefox Android derives from Firefox. To help cut down time working on copying values between browsers, a mirroring script is provided. You can run `npm run mirror <browser> <feature_or_file> [--source=""] [--modify=""]` to automatically copy values.
queengooborg marked this conversation as resolved.
Show resolved Hide resolved

The <browser> argument is the destination browser that values will be copied to. The script automatically determines what browser to copy from based upon the destination (see table below), but manual specification is possible through the `--source=""` argument.

| Destination | Default Source |
| ---------------- | ----------------- |
| Chrome Android | Chrome |
| Edge | Internet Explorer |
| Firefox Android | Firefox |
| Opera | Chrome |
| Opera Android | Chrome Android |
| Safari iOS | Safari |
| Samsung Internet | Chrome Android |
| WebView | Chrome Android |

The <feature> argument is the identifier of the feature to update (i.e. `css.at-rules.namespace`), a filename (`javascript/operators/arithmetic.json`), or an entire folder (`api`). Note: there is currently no support for feature identifiers. Furthermore, the script assumes a predictable file structure when passing in a feature identifier, which BCD doesn't have right now. (See [issue 3617](https://github.com/mdn/browser-compat-data/issues/3617).) For example, even if "html.elements.input.input-button" is a valid query, it will fail because the file structure for input-button isn't consistent with the rest right now.
queengooborg marked this conversation as resolved.
Show resolved Hide resolved

By default, the mirroring script will only overwrite values in the destination that are `true` or `null`, but can take a `--modify=""` argument to specify whether to overwrite values that are `false` as well (`--modify=bool`), or any values (`--modify=always`).

## Getting help

If you need help with this repository or have any questions, contact the MDN team on [chat.mozilla.org#mdn](https://chat.mozilla.org/#/room/#mdn:mozilla.org) or write to us on [Discourse](https://discourse.mozilla-community.org/c/mdn).
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"confluence": "node ./node_modules/mdn-confluence/main/generate.es6.js --output-dir=. --bcd-module=./index.js",
"lint": "node test/lint",
"fix": "node scripts/fix",
"mirror": "node scripts/mirror",
"stats": "node scripts/statistics",
"release-notes": "node scripts/release-notes",
"show-errors": "npm test 1> /dev/null",
Expand Down
Loading