Add a minimal alternative to `cargo graph`
I tried `cargo graph` and some of its successors, but didn’t manage to make them produce what I wanted (or in some cases make them work at all.)
This Python script reimplements similar functionality based on parsing the (JSON) output of `cargo metadata`.
Graphviz graphs can become hard to read very quickly as the number of nodes grows. Servo’s dependency graph is very large, so pruning as much as possible is important. This only shows `path` dependencies (that have their source in this repo), and can take a parameter to only show recursive dependencies of a given crate.
See https://github.com/servo/servo/issues/19422#issuecomment-617038366 for an example.
I find that `xdot` is best for visualization since it is interactive.
This script is not used by anything. I am making this PR only so that we have it somewhere in case it becomes useful again at some point.
I tried `cargo graph` and some of its successors,
but didn’t manage to make them produce what I wanted
(or in some cases make them work at all.)
This Python script reimplements similar functionality
based on parsing the (JSON) output of `cargo metadata`.
Graphviz graphs can become hard to read very quickly as the number of nodes grows.
Servo’s dependency graph is very large, so pruning as much as possible is important.
This only shows `path` dependencies (that have their source in this repo),
and can take a parameter to only show recursive dependencies of a given crate.
See https://github.com/servo/servo/issues/19422#issuecomment-617038366 for an example.
I find that `xdot` is best for visualization since it is interactive.
This script is not used by anything.
I am making this PR only so that we have it somewhere
in case it becomes useful again at some point.
Only enable RUST_BACKTRACE in non-mac build environment on CI.
This should help work around #26192 and would explain why we're still seeing it on CI after #26217.
Replace glutin by winit + surfman 0.2
<!-- Please describe your changes on the following line: -->
This PR updates surfman to 0.2, and replaces glutin with winit+surfman.
---
<!-- 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 do not require tests because this should all be invisible
<!-- 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. -->
Index tasks by git tree hash instead of parent commits hashes
This makes it (sligthly) easier to query the index and find those tasks from other scripts.
Add OpenSSL 1.1.1 build check, Update HSTS Preload list
* This variant also works with cross-compilation. PR should fail in CI on Android at first:
The net crate successfully compiled after switching to OpenSSL 1.1.1 on Android. It seemed openssl.sh doesn't need any changes.(?)
* Updated HSTS preload list and public suffix list.
* Configured OpenSSL [SECLEVEL=2](https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_security_level.html) like [Debian](https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1) Stable:
> As a result RSA, DSA and DH keys shorter than [2048 bits](16a5a9bb78/docs/BR.md (6153-subscriber-certificates)) and ECC keys shorter than 224 bits are prohibited.
* Although all other crates compile I generally get a `libscript-fe019dd3e0a4e06d.rlib: bad extended name index at 8` error on simpleservo_jniapi, I guess Debian Testing is too new and I just haven't found the right steps so far.
./mach build -d --android
```
= note: /home/darkspirit/github/servo/android-toolchains/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /home/darkspirit/github/servo/target/android/armv7-linux-androideabi/debug/deps/libscript-fe019dd3e0a4e06d.rlib: bad extended name index at 8
clang: error: linker command failed with exit code 1 (use -v to see invocation)
toolchain: /home/darkspirit/github/servo/android-toolchains/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin
libs dir: /home/darkspirit/github/servo/android-toolchains/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
sysroot: /home/darkspirit/github/servo/android-toolchains/ndk/platforms/android-21/arch-arm
targetdir: /home/darkspirit/github/servo/target/android/armv7-linux-androideabi/debug/build/simpleservo_jniapi-26ef18debb5b3630/out/../../..
```
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#25708, fix#25619.
Add accountable-refcell as optional build time feature
<!-- Please describe your changes on the following line: -->
It can be used with the format `./mach build --features refcell_backtrace`.
---
<!-- 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#19308 (GitHub issue number if applicable)
<!-- Either: -->
- [X] These changes do not require tests because it adds a optional build-time feature only.
<!-- 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. -->