This pull request adds some tidy checks around YAML files, and specifically `buildbot_steps.yml`.
Tidy checks added:
* YAML files are checked for well-formedness/parse-ability
* Whether a YAML file has duplicate keys
* Whether a `buildbot_steps.yml` file contains only mappings to list-of-strings.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] These changes fix#13838 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
โฆing checking for correct mappings and duplicate YAML keys. Added unit tests to test_tidy.py.
Source-Repo: https://github.com/servo/servo
Source-Revision: 21ad1c210997daba82ec49e1572c7b0634b6f337
<!-- Please describe your changes on the following line: -->
Since tidy is a package, it shouldn't contain our WPT lint. This PR changes the file list generator (we already have) into an object, and allows tidy to run custom python lint scripts (specified in the config file) under the context of `LintRunner`. The errors are then chained into our mechanism.
r? @frewsxcv (cc @jdm @edunham @aneeshusa and anyone else interested in reviewing it)
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
<!-- Either: -->
- [x] There are tests for these changes
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 290a1696dc6b16c421a40dc08abdc072a2fb4cf2
--HG--
rename : servo/python/tidy/servo_tidy_tests/dir_check/only_webidl/test.webidl => servo/python/tidy/servo_tidy_tests/lints/not_script
<!-- Please describe your changes on the following line: -->
Check that JSON keys are ordered, and that there's no duplicates (for `resources/prefs.json` and `resources/package-prefs.json`).
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] ๐ `./mach test-tidy --self-test` does not report any errors
- [x] These changes fix#12283
<!-- Either: -->
- [x] There are tests for these changes ๐
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 94d0c485e10138e0d5b2bd8b41b6a922a22a059f
<!-- Please describe your changes on the following line: -->
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] These changes fix#13954 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 291f393723d22a582bb9a49ef7294ec14eca2127
<!-- Please describe your changes on the following line: -->
Disallow an extraneous space in a function call between
the function name and the opening parenthesis in Rust
code, while ignoring macro declarations.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --all` does not report any errors
- [x] `./mach test-tidy --self` does not report any errors
- [x] These changes fix#13980
<!-- Either: -->
- [x] There are tests for these changes, these are written in
- `python/tidy/servo_tidy_tests/rust_tidy.rs`
- `python/tidy/servo_tidy_tests/test_tidy.py`
- [ ] These changes do not require tests
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: ccefef5be43b6d174933196fd7552cbbfbdf53d6
<!-- Please describe your changes on the following line: -->
Have tidy ensure that the there are no extra files in the webidls folder #13427
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#13427 (github issue number if applicable).
<!-- Either: -->
- [x] There are tests for these changes
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 3a5fd8b49a45b4647e9823d3e10243d9f4b2277b
--HG--
rename : servo/python/tidy/servo_tidy_tests/empty_file.rs => servo/python/tidy/servo_tidy_tests/dir_check/only_webidl/test.webidl
rename : servo/python/tidy/servo_tidy_tests/test_ignored/whee/test.rs => servo/python/tidy/servo_tidy_tests/dir_check/webidl_plus/test.rs
rename : servo/python/tidy/servo_tidy_tests/empty_file.rs => servo/python/tidy/servo_tidy_tests/dir_check/webidl_plus/test.test
rename : servo/python/tidy/servo_tidy_tests/empty_file.rs => servo/python/tidy/servo_tidy_tests/dir_check/webidl_plus/test.webidl
rename : servo/python/tidy/servo_tidy_tests/empty_file.rs => servo/python/tidy/servo_tidy_tests/dir_check/webidl_plus/test2.rs
Refactored file line loop in `check_license()` to skip when a blank line is encountered. Only difference should be a very very small performance boost.
Also changed the name of a test from the mispelling `test_licence()` to `test_license()`
---
- [ ] `./mach build -d` does not report any errors (I'm not able to download the rust compiler on my laptop due to me probably just needing to update openssl: `Error downloading Rust compiler: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590). The failing URL was: https://static-rust-lang-org.s3.amazonaws.com/dist/2016-09-21/rustc-nightly-x86_64-apple-darwin.tar.gz`)
- [X] `./mach test-tidy` does not report any errors
<!-- Either: -->
- [X] There are no added tests for this since `test_license()`, `test_shebang_license()` and `test_apache2_incomplete()` should suffice in this case. Though I'd be more than happy to add a test if requested.
Source-Repo: https://github.com/servo/servo
Source-Revision: a83ef43be0773a52a5e40d05127fbc8814d6caa5
<!-- Please describe your changes on the following line: -->
Add report in tidy for code which have a space after the `(` like `some_function( argument)`
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#13350 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ba804e6db52637fbe23fbecfd0e65b4db1a49e2
Fix index error ``list index out of range``, when file is empty.
r? @Wafflespeanut
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: c3ce9f2c909cd75c8f424bcef4036d0e29476546
--HG--
rename : servo/python/tidy/servo_tidy_tests/test_ignored/whee/foo/bar.rs => servo/python/tidy/servo_tidy_tests/empty_file.rs
This fix problem with false reporting about missing license in every toml file, that is not Cargo.toml
r? @Wafflespeanut
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
Source-Repo: https://github.com/servo/servo
Source-Revision: 8a5e1b70b7decb251e691ace114e033419a53764
--HG--
rename : servo/python/tidy/servo_tidy_tests/test.toml => servo/python/tidy/servo_tidy_tests/Cargo.toml
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
<!-- Either: -->
- [x] These changes do not require tests because it's just a cleanup
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: eec56ca50e2d6624b31f23a870936c02e2674573
This is wip workaround for https://github.com/servo/servo/issues/10841
Adds ``servo-tidy.toml`` with configs and ignored dirs, files and packages.
This will allow to set custom configuration per repo.
It's an example how could config file looks like.
I want opinion on that, if this is right approaches and how to improve it.
cc @edunham
Source-Repo: https://github.com/servo/servo
Source-Revision: 1c9650cc90090784c63f5af55628ffe6b57c25ed
<!-- Please describe your changes on the following line: -->
The "$(some_command arg1 arg2)" form is preferred to the
`some_command arg1 arg2` form because it nests unambiguously.
Add a lint for this to tidy.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: aa900b91aa9417b6aa032b4eff878f2916c480f0
<!-- Please describe your changes on the following line: -->
This changes tidy to check shell scripts for the proper shebang and
options. It does not check that variables are formatted correctly. It
also adds a check for the MPL 2.0 license in shell scripts.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#12158 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 4bc629b369242d16675161ab6af8141dab0bb556
Fix https://github.com/servo/servo/issues/12564
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#12564
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: 2e3bc57e99578ba1977d62800b3fbd187554f89e
Throws a tidy error when duplicated keys are present.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#12283 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 638eb80110cf07ec2f07e43fd64a48042fe2925b
We didn't have a test for json parsing so lets start with that
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 34e53b1dca2202b1644e44258d67e52334e15bc4
<!-- Please describe your changes on the following line: -->
Added a regex check to enforce project style guidelines. Added unit check. Catches:
```
}
else {
```
when it should be
`} else {`
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors (no core files changed)
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#12234 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: e21b47c2cc14897380a8c4ef2dfa650b1dd48ab5
Made changes so that mach test-tidy considers the ignored directories
Fixes#11386
Source-Repo: https://github.com/servo/servo
Source-Revision: bc2f4c3450787654c955c7b4ce08d98f1f168e70
Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#11137 (github issue number if applicable).
Either:
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.
Source-Repo: https://github.com/servo/servo
Source-Revision: 93f137f06d36059105d62ffc6829d65f7efe0d9d
This automates something that I find myself frequently commenting on in PRs.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes OR
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 3ec20d9cf517c67f4d280e8958cc58c4c2b4fbb2
Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [X ] `./mach build -d` does not report any errors
- [X ] `./mach test-tidy --faster` does not report any errors
- [X ] These changes fix#11320 (github issue number if applicable).
Either:
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2f9796fa696e9514280777398467696dd4f004b3
Addresses issue #10702
the tidy self-test doesn't seem to catch the `member_name:"Foo"` line like it should. the regex follows similar pattern in the file and works in my regex tester tool, so not really sure what is going on there.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8c2c0bd964bfbf1a2d7494bd8fbbdd263173ef7d
See #10719.
It skips *.webidl files for now since I am not sure where they come from and if they should be edited in tree or not.
Source-Repo: https://github.com/servo/servo
Source-Revision: 04f8ae56db0ba9df798b39a5b2f1bb1e23d6dcf3
Partial implementation of the issue #10692 (the easy part).
Source-Repo: https://github.com/servo/servo
Source-Revision: d926b5d3762a101d5280266f806f2b979f73b695
This fixes https://github.com/servo/servo/issues/861.
@askeing, I've copied your work from https://github.com/askeing/servo_tidy and attributed the commit to you. My commit in this PR is Git housekeeping to preserve `tidy`'s history. If you'd like to make additional changes, I've given you and @shinglyu push access to my fork of Servo. Apologies if this is already familiar, but the workflow for pushing to my branch is:
```
$ git remote add edunham git@github.com:edunham/servo.git
$ git checkout -b package-tidy
$ git pull edunham package-tidy
$ git push edunham package-tidy
```
Once this lands, I'll look at how to publish it to PyPI and automate that process.
Please don't merge this yet; we still need to discuss how the change should work around https://github.com/servo/servo/blob/master/python/servo/testing_commands.py#L33 , as I've yet to figure out how to get the egg to actually expose its tests.
Source-Repo: https://github.com/servo/servo
Source-Revision: bfe54539d290cb287e59e8ba106a54a3fab6201a
--HG--
rename : servo/python/tidy_self_test/__init__.py => servo/python/tidy/servo_tidy/__init__.py
rename : servo/python/licenseck.py => servo/python/tidy/servo_tidy/licenseck.py
rename : servo/python/tidy.py => servo/python/tidy/servo_tidy/tidy.py
rename : servo/python/servo/__init__.py => servo/python/tidy/servo_tidy_tests/__init__.py
rename : servo/python/tidy_self_test/incorrect_license.rs => servo/python/tidy/servo_tidy_tests/incorrect_license.rs
rename : servo/python/tidy_self_test/long_line.rs => servo/python/tidy/servo_tidy_tests/long_line.rs
rename : servo/python/tidy_self_test/rust_tidy.rs => servo/python/tidy/servo_tidy_tests/rust_tidy.rs
rename : servo/python/tidy_self_test/spec.webidl => servo/python/tidy/servo_tidy_tests/spec.webidl
rename : servo/python/tidy_self_test/speclink.rs => servo/python/tidy/servo_tidy_tests/speclink.rs
rename : servo/python/tidy_self_test/test.toml => servo/python/tidy/servo_tidy_tests/test.toml
rename : servo/python/tidy_self_test/tidy_self_test.py => servo/python/tidy/servo_tidy_tests/test_tidy.py
rename : servo/python/tidy_self_test/tidy_self_test.py => servo/python/tidy/servo_tidy_tests/tidy_self_test.py
rename : servo/python/tidy_self_test/whatwg_link.rs => servo/python/tidy/servo_tidy_tests/whatwg_link.rs
rename : servo/python/tidy_self_test/wrong_space.rs => servo/python/tidy/servo_tidy_tests/wrong_space.rs