Commit graph

1483 commits

Author SHA1 Message Date
Aneesh Agrawal
0730888fbe Stop segfaulting at the end of mach bootstrap
`mach bootstrap` will finish succesfully,
but then segfault inside glibc while exiting.
It seems to have to do with the MarkupSafe library used by Mako;
delaying the Mako import from the top level to inside functions where it
is used avoids the problem.
(It seems to interact with the call to pip to install the Salt
requirements in the virtualenv, as commenting that pip call out
separately will also fix the segfault.)

Also, use the Mako installed in the Python virtualenv while running
packaging commands (instead of the one from the bundled zip file),
and cleanup imports in the package_commands.py file.
2017-04-17 20:44:23 -04:00
Aneesh Agrawal
022f0aa34a Remove more deprecated Windows GNU code/docs 2017-04-16 22:12:17 -04:00
Aneesh Agrawal
ff74faee10 Fix setting Servo icon on macOS
Originally introduced in PR #11646,
this appears to have been accidentally broken by commit
82df8e9399.
2017-04-16 22:12:17 -04:00
Sadman Kazi
cca3343c2e Check for merge commits with tidy
Increase merge commit check range under travis

Add comment on why travis workaround is necessary
2017-04-13 15:57:36 -04:00
Aneesh Agrawal
40c70bfb28 Allow bootstrapping on Debian 2017-04-12 15:36:06 -04:00
bors-servo
eb058e20a9 Auto merge of #16370 - aneeshusa:enable-using-local-states-for-mach-bootstrap, r=jdm
Add env var for local saltfs root during bootstrap

<!-- Please describe your changes on the following line: -->
This enables using the environment variable `SERVO_SALTFS_ROOT` to use a local copy of the saltfs tree for `./mach bootstrap`. The immediate use case is to add a test for `./mach bootstrap` to saltfs itself, to ensure Salt changes or refactors don't break `./mach bootstrap`.

I tested this locally in an Ubuntu Trusty VM.

---
<!-- 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 the test will be added to saltfs

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16370)
<!-- Reviewable:end -->
2017-04-12 12:56:47 -05:00
bors-servo
3cf6e56df9 Auto merge of #15857 - UK992:mach-cargo-update, r=Wafflespeanut
Add `--dry-run` argument to `mach cargo-update`

This add ability to check which packages are outdated, also detect which updates are minor and which may contain breaking changes.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15857)
<!-- Reviewable:end -->
2017-04-12 03:54:41 -05:00
Aneesh Agrawal
0a9a43aa31 Add env var for local saltfs root during bootstrap 2017-04-12 02:00:14 -04:00
UK992
cb80bda808 Add --dry-run argument to mach cargo-update 2017-04-11 23:55:02 +02:00
UK992
e3654e14c5 Update cmake to 3.7.2 2017-04-11 23:34:13 +02:00
UK992
9b35fd9472 Add support for Visual Studio 2017 2017-04-11 23:31:22 +02:00
Simon Sapin
9f5ba0aee9 Make ./mach rustc and ./mach cargo bootstrap. 2017-04-05 21:52:10 +02:00
Simon Sapin
ca08ff876b Add cargo-geckolib and rustc-geckolib commands to mach. 2017-04-05 21:50:44 +02:00
Josh Matthews
3dd74bb177 Delete any existing dmg before recreating it. 2017-04-01 00:14:40 -04:00
ddh
e527c9a991 Update Hyper and OpenSSL 2017-03-31 16:32:21 +02:00
강동윤
52ac3cf171 Allow using servo as dependency, by fixing Cargo.toml of servo-test-tidy. 2017-03-27 22:32:12 +09:00
Ravi Shankar
841a3abef6 Tidy: Prefer monkey patching sys.path over addsitedir (and some cleanup) 2017-03-20 12:23:05 +05:30
Simon Sapin
af1edaa883 Fix "option Z is unstable" warning on geckolib with incremental=true
`incremental = true` can be set in the `[build]` section of `.servobuild`
to enable incremental compilation.

In `./mach build-geckolib`, which uses a stable version of the compiler,
this would cause a warning repeated for each invocation of rustc:

```
warning: the option `Z` is unstable and should only be used on the nightly
compiler, but it is currently accepted for backwards compatibility;
this will soon change, see issue #31847 for more details
```

This PR disables incremental compilation for `build-geckolib`,
regardless of `.servobuild` settings.
2017-03-16 21:59:07 +01:00
Bobby Holley
6744ed1639 Run size_of tests with test-stylo.
MozReview-Commit-ID: KapDMqX6OjH
2017-03-15 11:17:51 -07:00
lucantrop
b1faaa15dc added tidy check for -> () 2017-03-13 17:38:32 +01:00
Matt Brubeck
79275ab68c Fix bug bootstrapping stable rust 2017-03-08 09:19:37 -08:00
bors-servo
d8a8e3e42e Auto merge of #15230 - UK992:mach-bootstrap, r=aneeshusa
Mach bootstrap: Improve and support more platforms

<!-- Please describe your changes on the following line: -->
r? @aneeshusa or @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
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15230)
<!-- Reviewable:end -->
2017-03-04 04:47:13 -08:00
UK992
7e348fa2a1 Fix Cargo.toml in servo_tidy_tests 2017-02-27 17:02:21 +01:00
bors-servo
261df34ced Auto merge of #15649 - zimio:issue-15591-rewrite-ban-type-lint, r=Wafflespeanut
Rewrite the ban-type lint in Python

<!-- Please describe your changes on the following line: -->
Rewrite the ban-type lint in Python.

Question: Should the old ban-type lint written in rust be deleted?

---
<!-- 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 #15591

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15649)
<!-- Reviewable:end -->
2017-02-26 09:35:12 -08:00
Jefry Lagrange
ebcb15d6f2 Rewrite the ban-type lint in Python
Delete old rust ban lint and move tests to python tidy

Fix ban lint regex and fix test
2017-02-25 15:56:06 +01:00
UK992
9f55e6641c Update servo-tidy to 0.3.0 2017-02-25 06:12:01 +01:00
vwvww
ccb14abd12 Add 'use statements with extraneous spaces' tidy check
Add 'use statements with extraneous spaces' tidy check

I added simple check routine for 'use statements with extraneous
spaces' and codes that breaks the check routine in rust_tidy.rs.

* Added a code that using 'use statements with extraneous spaces' code
  in rust_tidy.rs
* Added assertion code in test_tidy.py.
* check_rust function in tidy.py now recognizes the simple case in
  the 'use statements with extraneous spaces'.
* Ran tidy check on rust code and modified a
  code(tests/unit/style/parsing/inherited_text.rs) that is not passing
  on this new tidy check.

TODO: this code has to be refactored to support more general cases.

- [X] ./mach test-tidy does not report any errors
- [X] These changes fix #14898 (github issue number if applicable).
2017-02-23 01:29:46 +09:00
bors-servo
7adc79047d Auto merge of #15665 - UnICorN21:ds_store, r=SimonSapin
fixed an issue related with .DS_Store

<!-- 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 #15581.

<!-- Either: -->
- [ ] 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15665)
<!-- Reviewable:end -->
2017-02-22 06:12:52 -08:00
Huxley
5e929de224 fixed an issue related with .DS_Store 2017-02-22 20:57:58 +08:00
Anthony Ramine
63c4490e73 Kill the plugins crate and its clippy support
Sometimes clippy gets outdated by months, and its current support setup
means that each Servo component need to opt into it by depending on
the plugins crate manually, and not all components do that.
2017-02-21 11:50:36 +01:00
Simon Sapin
bd8ec03740 Disable LLVM assertions by default, on supported platforms.
But keep them on linux-dev CI.
2017-02-16 08:38:14 +01:00
Anthony Ramine
57fd45a5c2 Allow disabling LLVM assertions in rustc (fixes #15548) 2017-02-15 14:55:02 +01:00
Anthony Ramine
336e6c8f28 Switch to commit-specific nightlies 2017-02-15 14:55:02 +01:00
Simon Sapin
31287d4d90 tidy: Ignore [replace]’d packages in the duplicate package lint. 2017-02-14 23:55:20 +01:00
Manish Goregaokar
b60368d5d9 Tidy checks for stylo 2017-02-08 21:56:55 -08:00
UK992
f21d448530 Mach bootstrap: Improve and support more platforms 2017-02-08 19:53:48 +01:00
Ms2ger
296fa2512b Update web-platform-tests and CSS tests.
- Update CSS tests to revision e05bfd5e30ed662c2f8a353577003f8eed230180.
- Update web-platform-tests to revision a052787dd5c069a340031011196b73affbd68cd9.
2017-02-06 22:38:29 +01:00
UK992
b6b96322c1 Remove freetype dependency on Windows 2017-02-06 02:28:54 +01:00
Simon Sapin
e273ecce4c Option configuration to enable incremental compilation.
https://internals.rust-lang.org/t/incremental-compilation-beta/4721
2017-02-05 14:45:00 +01:00
Gregory Szorc
d27be52371 Find WPT files in Firefox repository
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.
2017-02-03 23:38:41 -08:00
bors-servo
bc5004b05c Auto merge of #15138 - mdevlamynck:software-flag, r=jdm
Allow running servo in software rendering mode from ./mach run

<!-- Please describe your changes on the following line: -->
This adds a flag to ./mach run to use software rendering on Linux (through the LIBGL_ALWAYS_SOFTWARE env var).

---
<!-- 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 #14982.

<!-- Either: -->
- [X] These changes do not require tests because like said in the issue "There's no way to add automated tests for this".
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15138)
<!-- Reviewable:end -->
2017-01-26 14:43:21 -08:00
Josh Matthews
f29e01c5ad Make test-wpt-failure smoketest work again. 2017-01-24 13:33:45 -05:00
Matthias Devlamynck
a465fbb87a Allow running servo in software rendering mode from ./mach run 2017-01-21 18:15:42 +01:00
bors-servo
1f76aa6ef7 Auto merge of #14974 - aneeshusa:add-mach-bootstrap, r=metajack
Use Salt for mach bootstrap

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14974)
<!-- Reviewable:end -->
2017-01-19 20:58:19 -08:00
UK992
8a1aa354d6 Tidy: Report invalid listed ignored directories and files 2017-01-18 21:51:56 +01:00
Aneesh Agrawal
b4f5086305 Add a Salt bootstrapper
The Salt bootstrapper invokes Salt during `./mach bootstrap`
to install Servo's build dependencies.
It uses salt-call pinned to the same version of Salt as used in saltfs.

Currently, the implementation uses gitfs and reads directly from
the master branch of the saltfs repo;
in the future this should be changed when the relevant Salt states
are moved in-tree as part of Dockerization for TaskCluster.

We have not Salted our Windows machines, so the existing Windows
bootstrappers are retained. Currently this is only tested on
Ubuntu Trusty.

Salt uses various system python libraries,
including `python-apt` on Debian-based OSes to interact with apt.
`python-apt` does not seem to be installable via a requirements.txt
file, and the versions available on PyPI are far behind the versions
installed on actual Ubuntu machines.
Additionally, adding `python-apt` as an unconditional python dependency
would add bloat for users of other OSes, and lead to more churn
as additional OSes are supported.
However, as `python-apt` is already installed via apt on these machines,
we can allow Salt to instead use the module by using
`--system-site-packages` for the python virtualenv.
We also add the `-I` flag to `pip install` to ensure we have a local,
untouched copy of any other python packages used.
However, because this prints system-level Python packages in scope,
it slightly breaks isolation, so it is important to always pin
all dependencies in the requirements files.
2017-01-17 11:01:09 -05:00
Aneesh Agrawal
60a1503b29 Clean up and simplify existing mach bootstrap
- Default to interactive mode and remove the `--interactive` flag
- Use `--force` to skip interactivity
- Change MSVC dependency storage organization on disk: put each version
  into its own folder and directly refer to the versioned folders,
  providing immutability and making the installation list redundant
- Reuse `host_triple()` function to fix broken bootstrapper dispatching
- Simplify code:
  - Remove or inline many unused and redudant functions and variables
  - Prefer plain functions to classes
  - Consolidate into fewer files, remove unnecessary bootstrapper/ dir
- Improve Python style
- Sort dependency list
2017-01-15 15:41:37 -05:00
Aneesh Agrawal
ef900cbdcb Avoid hardcoded references to rustc in download()
Use the `desc` parameter instead to make the error messages
customized for the actual download.

Also use new-style format strings.
2017-01-15 15:26:13 -05:00
Aneesh Agrawal
02b054ec9e Create a util.py Python module for common functions
Extracting these functions helps avoid circular dependencies,
and make them easier to find/reuse.
2017-01-15 15:21:35 -05:00
Matthias Devlamynck
a7a2efea5c Moved tidy's BLOCKED_PACKAGES to the config file 2017-01-14 14:07:46 +01:00