New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a bisection command that uses nightly builds #19505
Comments
|
Curiously, http://servo-builds.s3.amazonaws.com/ only shows mac builds up until 2016-10-25. There are plenty of linux and android builds for recent days, however. |
Ah, |
I use http://servo-builds.s3.amazonaws.com/?list-type=2&prefix=nightly/mac/2017 when investigating regression ranges for macOS builds from 2017. |
This one looks very interesting, could I please pick it? I think I can start working on it next week :) |
That would be great! |
@o0Ignition0o Have you made any progress with this? If not, I would like to turn this into a project for some students this term. |
Hi @jdm :) I haven't made too much progress with this yet, so you can assign it to someone else if you want to. I'll pick up an other task |
That's fine; you're welcome to keep working on it! |
@jdm are Windows builds available with http://servo-builds.s3.amazonaws.com/? I see every other platform on there aside from Windows. Having historical nightly builds would be useful for testing purposes. |
Note my comment earlier with the prefix argument. If you specify the right prefix, they should appear. |
http://servo-builds.s3.amazonaws.com/?list-type=2&prefix=nightly/windows-msvc/ appears to work, thanks. |
Hey there :) I've been able to write a rough try to download a (hardcoded for now) nightly version and extract it. I put the bisect command as a "mach wrapper" for now so I can run any other mach command, eg : I'm now looking for a way to set the downloaded servo bin as the target I'm supposed to use. I have a feeling this should be an environment variable, but I haven't found it quite yet ^^' |
https://github.com/servo/servo/blob/master/python/servo/post_build_commands.py#L99 is the implementation for |
Hi, thanks a lot for your response. So here's what I'm going to do : 1 - Add a --bin flag to ./mach run to allow a user to specify the path to the executable to run 2 - Add a --nightly | -n flag to allow a user to specify a YYYY-MM-DD date. This flag will : 3 - go back to the bisect command, which should be easier to implement once these steps are performed. Each step will be a separate Pull Request, which I'll link to this issue. |
That sounds great! |
Add a --bin flag to the |mach run and rr-record commands Add a --bin flag to the |mach run and rr-record commands to specify which servo binary to run <!-- Please describe your changes on the following line: --> Step 1 for #19505. This flag allows to specify a downloaded servo binary for the ./mach run and ./mach rr-record commands. The base issue is mentored by @jdm --- <!-- 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 | I would love to write tests on this, but I'm not really sure I can, since it's on ./mach commands <!-- 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/19944) <!-- Reviewable:end -->
Just pushed a rough try to handle the --nightly flag. |
Ok so I chose to split my merge requests depending on the platforms, because I don't know how yo extract a .msi and a .dmg archive with python ^^' If you have any hint pease let me know, I'll keep on digging :) |
Ok so it seems like passing the -qi flags to msiexec.exe (on windows) should allow me to silently install a servo build, but I'm not sure at all I wouldn't mess any registry keys / already installed versions of servo. PS : In the mozilla-unified repository, we seem to use executables so it seems easier to handle, but I'm not quite sure how I should handle .msi files :/ |
According to https://superuser.com/questions/307678/how-do-i-extract-files-from-an-msi-package you should be able to use |
Thanks a lot, I ll give it a try :) |
Add a --nightly | -n flag to mach run commands for linux First tries to download and extract a specific nightly version to run mach commands against. <!-- Please describe your changes on the following line: --> I chose to split the Pull requests for each platform to avoid submitting a huge one, and to make sure I get the logic right. I'm able to download / extract a nightly version, and I keep nightly versions in the target folder. Windows and Mac OS support will be filed in separate PRs. This is part of step two for #19505 The mentor on the issue is jdm --- <!-- 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 is part of a ./mach command. <!-- 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/19947) <!-- Reviewable:end -->
Add a --nightly | -n flag to mach run commands for linux First tries to download and extract a specific nightly version to run mach commands against. <!-- Please describe your changes on the following line: --> I chose to split the Pull requests for each platform to avoid submitting a huge one, and to make sure I get the logic right. I'm able to download / extract a nightly version, and I keep nightly versions in the target folder. Windows and Mac OS support will be filed in separate PRs. This is part of step two for #19505 The mentor on the issue is jdm --- <!-- 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 is part of a ./mach command. <!-- 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/19947) <!-- Reviewable:end -->
Add a --nightly | -n flag to mach run commands for linux First tries to download and extract a specific nightly version to run mach commands against. <!-- Please describe your changes on the following line: --> I chose to split the Pull requests for each platform to avoid submitting a huge one, and to make sure I get the logic right. I'm able to download / extract a nightly version, and I keep nightly versions in the target folder. Windows and Mac OS support will be filed in separate PRs. This is part of step two for #19505 The mentor on the issue is jdm --- <!-- 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 is part of a ./mach command. <!-- 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/19947) <!-- Reviewable:end -->
Just ran into github issues claiming running servo in a VM is not that easy, so I think the fact I can't run servo.exe might be related to my virtualbox setup. Edit : I also don't have any IOS device so I might be stuck on providing mac os support for the flag :/ |
If you add your ssh key to https://github.com/servo/saltfs/tree/master/admin/files/ssh and your username to https://github.com/servo/saltfs/blob/master/admin/map.jinja, you could get ssh access to our mac build machines if you wanted :) |
Oh this is great ! |
Add my SSH key As discussed [here](servo/servo#19505 (comment)) and suggested by @jdm, I would like to have access to the mac build machines. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/saltfs/813) <!-- Reviewable:end -->
Add my SSH key As discussed [here](servo/servo#19505 (comment)) and suggested by @jdm, I would like to have access to the mac build machines. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/saltfs/813) <!-- Reviewable:end -->
Windows support for the --nightly | -n flag to mach run commands. <!-- Please describe your changes on the following line: --> Add windows support to the -n flag. --- Followup to #19947 , this PR will add windows support to the -n flag. This is part of step two for #19505 <!-- 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). The feature does not work just yet, I'm able to download and extract the archive, but it's not running the executable yet. @tigercosmos might be a good reviewer on this one :) <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because they're part of a ./mach command. <!-- 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/20122) <!-- Reviewable:end -->
It looks like windows builds now produce an executable instead of a .msi archive, sothe -n flag doesnt work on windows anymore :( . I'm trying to find a way to extract the executable without installing the application, but couldn't manage so far. Also https://firefox-source-docs.mozilla.org/mozbase/mozinstall.html doesn't allow me to just extract a portable version, maybe I could submit a pr to mozinstall to allow people to just extract contents ? |
Interesting point; that's an unfortunate consequence. If you want to change mozinstall, you probably need to submit a patch to mozilla-central, since I suspect that https://searchfox.org/mozilla-central/source/testing/mozbase/mozinstall is the authoritative source. |
Yeah, plus that would maybe allow us to use exclusively the mozinstall API on Windows Linux and macos, which would be an improvement. I'll try to submit a patch :) |
./mach run -n on mac os. <!-- Please describe your changes on the following line: --> Add macos support to the -n flag. Followup to #20122 , this PR will add macos support to the -n flag. This is part of step two for #19505 --- <!-- 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 this mach command does not build anything <!-- 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/22387) <!-- Reviewable:end -->
http://servo-builds.s3.amazonaws.com/ hosts a long list of historical nightly builds. We should write a command that allows several modes of operation:
./mach bisect tests/wpt/web-platform-tests/foo.html
- runs WPT tests using downloaded nightly builds, suggests good/bad bisection based on test result./mach bisect path/to/file.html
- runs downloaded nightlies and loads file:// url for easy testing./mach bisect http://foo.com
- runs downloaded nightlies and loads url for easy testing./mach bisect -b
- runs downloaded nightlies with browser.html for easy testingWe should cache the downloaded nightlies to make it easier to do future bisections, too.
The text was updated successfully, but these errors were encountered: