Package tidy
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.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10590)
<!-- Reviewable:end -->
https://github.com/servo/servo/issues/861#issuecomment-209547756
"I think the most important concern is that it's possible to modify tidy.py
and see how those changes affect ./mach test-tidy with the fewest possible
intermediate steps." - jdm
This takes publishing complexity away from the contributor when testing
changes and makes it an infra problem instead, where it's much easier to
automate & saner to manage pypi credentials
Issue #10441: Added caching support to mach bootstrap
As suggested on the issue, files are stored as `.part` and moved to the original name when done.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10442)
<!-- Reviewable:end -->
This fixes https://github.com/servo/servo/issues/10260 by pulling in
https://github.com/servo/ipc-channel/pull/61 (fix receive for messages
close to packet size) and https://github.com/servo/ipc-channel/pull/62
(properly handle ENOBUFS); where the latter is not critical per se, as
there was a workaround already -- but that workaround aggrevated the
first bug, resulting in the urgent issue...
This bump requires a tidy override for `uuid`: `ipc-channel` was updated
to `uuid 0.2` in https://github.com/servo/ipc-channel/pull/63 (don't
know why...), while other crates are still with `0.1`. That was blocking
this urgent bug fix; and according to a discussion with @mbrubeck on
IRC, the override should be OK in this case.
Generate html and json of supported css properties.
Fixes#10196. Outputs html and json of supported css properties to `target/doc/` directory when deploying github-pages.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10208)
<!-- Reviewable:end -->
Generalize the style structs
This allows geckolib to pass gecko style structs and have the style system write to them directly, provided we implement all the traits.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10155)
<!-- Reviewable:end -->
This changes headless operation to strictly be a runtime option, rather
than a compile-time one. Note that the old headless version still relied
on a display server to support WebGL, while it now requires one all the
time.
Fixes#8573
We need to ignore geckolib/tools, otherwise we need to clobber stuff
to avoid a bunch of tidy errors in rust-bindgen etc.
We also preemtively ignore the soon-to-be-added build.rs for the same reason
it's ignored in style/, and gecko_style_structs.rs for the same reason that
bindings.rs is ignored.