-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[🚀 Feature]: Use Process.spawn instead of the child_process gem #11251
Comments
@eregon, thank you for creating this issue. We will troubleshoot it as soon as we can. Info for maintainersTriage this issue by using labels.
If information is missing, add a helpful comment and then
If the issue is a question, add the
If the issue is valid but there is no time to troubleshoot it, consider adding the
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable
After troubleshooting the issue, please add the Thank you! |
Another advantage is |
Process.spawn is cross-platform in Ruby 2.7+ and ChildProcess is not actively maintained at the moment. Fixes #11251.
Let's see how it goes, I've also added TruffleRuby to the list of Rubies for unit tests on CI 04ede9e |
Thank you, that was fast! I see the CI failed at https://github.com/SeleniumHQ/selenium/actions/runs/3448105944/jobs/5754819891 |
I've fixed it in a2d7632. Those variables are unset by default by Bazel, so I had to explicitly propagate them. I suppose TruffleRuby also suffers from jruby/jruby#5661 |
Thank you, I've filed oracle/truffleruby#2784 to account for that. And with your change it seems like TruffleRuby passes the test suite, nice! https://github.com/SeleniumHQ/selenium/actions/runs/3460208424/jobs/5776525182 |
Bazel unsets everything in ENV by default to make builds more hermetic. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Feature and motivation
Since selenium is Ruby 2.7+ it can use Process.spawn which exists since 2.4.
Process.spawn covers the whole API of child_process, so there is no need for that dependency and it should be fairly easy to remove it.
child_process
is unfortunately not very actively maintained, and that causes issues, for instance oracle/truffleruby#1525 / enkessler/childprocess#172.Usage example
As a result, selenium would have 1 less dependency, one less piece of highly platform-dependent code, and runs better on more platforms.
The text was updated successfully, but these errors were encountered: