This updates web-platform-tests to a46616a5b18e. It also removes our local copy of wptrunner in favour of the upstream one that we can modify and sync more easily. Carried from #17416.
Source-Repo: https://github.com/servo/servo
Source-Revision: 139055fca32de5e5a30161112752294770bdf67f
Gecko is now using the wpt harness under the wpt tools directory
rather than a copy in an adjacent directory. Therefore the path to the
requirements files, and the required model paths, have changed.
<!-- 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
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it only affects the mach bootstrap script
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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: a36edb9970dbb658c17c008cfb22a7dc4f3e76ce
<!-- Please describe your changes on the following line: -->
This is a follow-up to #16468.
---
<!-- 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
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because we no longer support MinGW/MSYS
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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: 485a4de729e196d1baca2ffe01518bbd4b0d1afa
The Servo repository is now (mostly) vendored in the Firefox Mercurial
repository. For size and duplication reasons, the tests/wpt directory is
not included in the vendored copy.
This causes problems when running `mach` from the Firefox repository
because `mach` references pip requirements files and module search
paths from WPT.
This commit adds code to detect when Servo's mach is running from a
Firefox source tree and to resolve WPT paths to the Firefox location
if appropriate. This enables `mach` to "just work" when running
from the servo/ directory in the Firefox repository.
The file looked for to identify the Firefox repository is identical
to what Firefox's `mach` script uses.
A potential issue with using Firefox's WPT files is that they may be
different from those in the Servo repository and this could lead to
differences in behavior - possibly even an error when loading/running
`mach`. However, the behavior before this commit was that Servo's
`mach` never worked in the Firefox repository (due to missing WPT
files). And post-commit it does. So this seems like a "perfect is the
enemy of good" scenario.
Source-Repo: https://github.com/servo/servo
Source-Revision: be896648de683c35537bdc38f38f3fc6ce352fa5
<!-- Please describe your changes on the following line: -->
This is currently WIP, but allows Salt for `mach bootstrap`. Not looking for review yet, just posting for visibility. You can run `./mach bootstrap` and Salt will run, letting you know what changes it would make for bootstrapping (doesn't actually run yet though).
Currently, this reads from saltfs using gitfs, meaning it always tracks the master branch. (Note that this is blocked on https://github.com/servo/saltfs/pull/577 landing; in the meantime, I've included a small workaround in this PR to pull from my updated saltfs branch, which will need to be removed.) In the future, the relevant Salt code may be merged in tree as part of Docker support for TC, and the bootstrapper should be updated to read from in tree.
Also, our Windows machines have not been Salted, so the existing Windows bootstrappers are retained.
TODO:
- [x] Hook into existing bootstrapping code less hackily
- [x] Actually bootstrap instead of always using `test=True` mode (includes sudo)
- [x] Default to interactive mode (test first, then ask), with a force flag
- [x] Don't require running from the repository root directory
- [x] Make it easy to add support for other distros
---
<!-- 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
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should be verified manually
<!-- 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: 1f76aa6ef7ec7db0a0c40223874a72e8f4059deb
<!-- Please describe your changes on the following line: -->
I have kind of resolved the issue #11074 by adding bool variable which is set to `True` if we had created the virtualenv and `False` otherwise.
Then it updates pip by executing `pip install --upgrade pip` in the same way as packages are updated. I am a little bit worried that I have almost duplicated the installation routine from the `for` loop but I am not sure whether I should add a function or not.
I think it is the best way of doing this because it does not need any Internet access for regular work (only for the first time you execute mach) as @larsbergstrom worried [here](https://github.com/servo/servo/pull/11149). It also doesn't add any extra latency on a no-op build.
I have checked the solution inside a docker container based on debian wheezy. Before the patch `./mach` failed to run because it wasn't able to install some packages. Now it runs successfully.
---
<!-- 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#11074 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it changes only mach_bootstrap.py
<!-- 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: ea59e7bb68e83ac2631dcdad24f270bff68092eb
<!-- Please describe your changes on the following line: -->
In addition to minor changes for Windows, this forces Windows Python to
be used for all Windows builds (instead of using Windows Python only for
pc-windows-msvc builds).
---
<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because testing the tests is too meta for me
<!-- 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: 17bf6aed21cb966c52382e7cef23d2bd66144874
<!-- Please describe your changes on the following line: -->
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
- [X] These changes fix#13644
<!-- 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: c1cc2bbbaebf13710bee1cb426484c2eed155f7c
<!-- 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#13141 (github issue number if applicable).
<!-- Either: -->
- [x] These changes do not require tests because it's a cleanup related to `mach`
<!-- 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: e699d9bfad6ce5e1b0cf31d5a6d06512e267f41a
<!-- Please describe your changes on the following line: -->
When working with WPT tests, I find it convenient to compare the results of different browsers / engines. By installing a few more Python packages, we can easily test against Firefox from a Servo checkout.
As noted in the updated README.md, this change allows you to check WPT tests in Firefox by adding `--product firefox` to the `./mach test-wpt` command.
r? @jgraham
---
<!-- 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 only the set of test harness packages is changed
<!-- 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: f5d589876b53f2a65e001525487dc6acb5aec088
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because they only change Mach code
This is needed for the moment because of a bug in virtualenv (reported upstream).
r? @metajack (you were the one who suggested that we check this. I did it in a slightly simpler way since I realized we over-complicated things a bit when talking about it the other day.)
Source-Repo: https://github.com/servo/servo
Source-Revision: 887376b225d1969b04b8893afffaa4d65ea6ba1a
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
- these changes don't touch anything that mach build touches>
- [ ] `./mach test-tidy --faster` does not report any errors
- Tidy errors on some dependencies that I think we'll need for real `package` but aren't using for android
- [X] These changes address #9918 (github issue number if applicable).
Either:
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because I don't think Mach has tests yet?
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: bc52617d3351d64cfd1479c5088b591370529f59
When I originally rewrote Servo's mach bootstrapping (using virtualenv
w/ requirements.txt in #7103), I didn't specify mach as a requirement
because a new version hadn't been published in a while. Now that 0.6
is out, I asked the mach maintainers to publish a new version on PyPI,
so now we can fetch it like the other Python dependencies.
Fixes https://github.com/servo/servo/issues/10728.
Source-Repo: https://github.com/servo/servo
Source-Revision: e39ed932cb8c67eac98d44d00ed5bf642c026846
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
https://github.com/servo/servo/issues/10002
./mach does not support paths with Unicode characters for now
it fail on original line 154 with exception UnicodeDecodeError
This patch handles the exception
Source-Repo: https://github.com/servo/servo
Source-Revision: 42c7472f336e687200507dafdf1087d8f0ea4d55
This branch also includes the commit being reviewed in https://github.com/servo/servo/pull/9408 . Is it OK to just wait for that one to merge, or should I separate them?
This patch adds the BIN_SUFFIX to the servo executable name when doing ./mach run.
However just doing this caused subprocess to error due to some unicode symbols in PATH.
To fix this, I pulled a peice of code from mozilla-central which fixes this problem there. Source: https://dxr.mozilla.org/mozilla-central/source/python/mach/mach/mixin/process.py#108
Revisiting this now (originally developed this a few weeks ago), perhaps we should be using https://github.com/servo/servo/blob/master/python/mach/mach/mixin/process.py instead of subprocess to give us all of this crossplatform process execution support. I think that should be a nice to have though - this patch at least gets a necessary development command working on windows.
Tested on Windows and Ubuntu.
Source-Repo: https://github.com/servo/servo
Source-Revision: 80c29113485c0b7d7da6be9c4f64a2b8f1cde826
r? @frewsxcv for python stuff
r? @pcwalton for the "remove usage of Gaol" stuff for Win32
r? anybody else for misc cargo.lock updates, etc.
This replaces #7878.
This works best with https://github.com/servo/mozjs/pull/71, too, to enable static linking, but can be run without (via some PATH hackery).
The instructions are here, and will be added to a .md file in the repo once the mozjs changes also land:
https://hackpad.com/Servo-on-Windows-C1LPcI2bP25
I'd like to get these changes landed because I've been rebasing them for months, they're otherwise quite stable, and don't affect our other platforms and targets.
Source-Repo: https://github.com/servo/servo
Source-Revision: 525e77f64fc65ea2397b4ff3849f5b1f39386698
When mach_bootstrap got interrupted while it's setting up virtualenv or
calling out to pip, it wouldn't repeat that step on subsequent runs, and
mach fails because its environment isn't set up properly or dependencies
are missing.
So now we re-run virtualenv if activate_this.py doesn't exist, and only
create the marker file for required packages after pip has returned
successfully.
Source-Repo: https://github.com/servo/servo
Source-Revision: afc41ec4ac404a160edb8c8fb12434fe54d59821
This PR is in reference to #7630
I've added a simple try catch around our use of subprocess.check_all when trying to invoke and use python's
- virtualenv
- pip
Upon failure, I use sys.exit with an error message for the user. Exit seemed appropriate as anything beneath those dependencies will fail to execute and result in a non friendly error message
Source-Repo: https://github.com/servo/servo
Source-Revision: 44de9173cc968957e4441c14f57014111a2b847e
...by using a 'marker file' to indicate whether we actually need to run pip.
Also a minor tweak for clarity.
Before (consistently):
```
$ time ./mach >/dev/null
real 0m0.666s
user 0m0.477s
sys 0m0.190s
```
After:
```
$ time ./mach >/dev/null # first run
real 0m0.665s
user 0m0.501s
sys 0m0.166s
$ time ./mach >/dev/null
real 0m0.121s
user 0m0.083s
sys 0m0.039s
```
Source-Repo: https://github.com/servo/servo
Source-Revision: b511004a616862394318381d7ef5ac3c59c7babe
This reverts commit c315404db80c92a695531b0aa4bcf61c125a3bff, reversing
changes made to b00583bd4e7169a6b952633df718268904f2bd0c.
Source-Repo: https://github.com/servo/servo
Source-Revision: 47d6d958f58f5011742a18abcdd5a76bf4390966
Fixes#6236
Also included in this commit are the changes need to make flake8 pass
for the existing python file
Source-Repo: https://github.com/servo/servo
Source-Revision: ccfe29d8f284dedc0101045d574a98fb1f69aa62
Also remove the shell script and ensure that default options are set in a single location
Source-Repo: https://github.com/servo/servo
Source-Revision: 2bde318d24a2ecd2698edd108013c138630bec9d