-
Notifications
You must be signed in to change notification settings - Fork 30k
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
Revert "child_process: change windowsHide default to true" #24034
Conversation
This reverts commit 420d8af.
FWIW this was added because it was requested by electron in libuv/libuv#1878 |
@bzoz totally! You'd have to agree though that this did kinda bamboozle Electron. I mean, it was intended to hide phantom console windows from popping up, GUI windows were never in the equation (why would we even want that?). That said, it's a problem that could be easily solved on Electron's end so this might not be necessary. |
I think the actual problem that was experienced by Electron was fixed in: |
@refack well, that'll be great news in favor of reverting. I'll let y'all know what the consensus is on this. That'll have to wait until Monday though. |
This has some WIN32 minutia behind it. And I'm writing the following with some approximations, and only with my own understanding. So essentially you can only directly spawn For reference, the most similar "native" APIs are
(other runtimes such as ActiveState Perl or cpython , have a similar API with the default to |
@yodurr or @bitcrazed could you help me correct any mistakes in the above ^^^^ |
Electron can work around this, so we'd be +0 on a revert, i would say! |
Explicitly pinging the author and approvers of the commit potentially being reverted: @cjihrig @TimothyGu @bzoz @apapirovski @trivikr @addaleax @ryzokuken @BridgeAR |
In a perfect world, I think defaulting to hiding the window is the correct behavior. This doesn't impact me personally, so I'm fine with deferring to the people that are impacted. I will say though that I was under the impression that only console windows would be impacted by the change. |
Talked a bit with @codebytere tonight and the upshot seems to be that a change in libuv was requested, but that this change in Node.js was not quite what they wanted. They can live with this, but do have a slight preference to it being reverted. |
Approvals on this from two Electron team members and two Windows-centric collaborators. I'm going to land on master in 24 hours if there's no objections. Since this is reverting a semver-major, landing on v11.x-staging may require some TSC buy-in so: ping @nodejs/tsc for concerns/objections. I discussed this briefly with @ofrobots yesterday and he was in favor of reverting on 11.x rather than waiting for more people to rely on the new behavior. I concur, so that's two of us.... |
It seems like everyone agrees that hiding is the best default for users, so I'm surprised you're making Node.js worse for end-users just because of an embedder. Electron can work around this. If this is merged, every usage of |
Last CI run was all green, but it was also 10 days ago, and a lot of code has landed since then. So just to be super extra special careful, here's another CI: https://ci.nodejs.org/job/node-test-pull-request/18563/ |
Wait was this actually not desirable? |
Resume Build CI: https://ci.nodejs.org/job/node-test-pull-request/18590/ |
Landed in ad6ead3 |
This reverts commit 420d8af. PR-URL: nodejs#24034 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Shelley Vohr <[email protected]> Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Bartosz Sosnowski <[email protected]> Reviewed-By: Ali Ijaz Sheikh <[email protected]>
Notable changes: * child_process: * All child processes will again open up a new Window on Windows by default. [#24034](#24034) * deps: * A new and fast experimental HTTP parser (`llhttp`) is now supported. [#24059](#24059) * Added new collaborators: * [oyyd](https://github.com/oyyd) - Ouyang Yadong. [#24300](#24300) * [psmarshall](https://github.com/psmarshall) - Peter Marshall. [#24170](#24170) * [shisama](https://github.com/shisama) - Masashi Hirano. [#24136](#24136)
This reverts commit 420d8af. PR-URL: #24034 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Shelley Vohr <[email protected]> Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Bartosz Sosnowski <[email protected]> Reviewed-By: Ali Ijaz Sheikh <[email protected]>
Notable changes: * child_process: * All child processes will again open up a new Window on Windows by default. [#24034](#24034) * deps: * A new and fast experimental HTTP parser (`llhttp`) is now supported. [#24059](#24059) * **Windows** * A crashing process will now show the names of stack frames if the node.pdb file is available. [#23822](#23822) * Added new collaborators: * [oyyd](https://github.com/oyyd) - Ouyang Yadong. [#24300](#24300) * [psmarshall](https://github.com/psmarshall) - Peter Marshall. [#24170](#24170) * [shisama](https://github.com/shisama) - Masashi Hirano. [#24136](#24136)
This reverts commit 420d8af. PR-URL: nodejs#24034 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Shelley Vohr <[email protected]> Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Bartosz Sosnowski <[email protected]> Reviewed-By: Ali Ijaz Sheikh <[email protected]>
This reverts commit 420d8af. PR-URL: #24034 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Shelley Vohr <[email protected]> Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Bartosz Sosnowski <[email protected]> Reviewed-By: Ali Ijaz Sheikh <[email protected]>
Notable changes: * deps: * A new experimental HTTP parser (`llhttp`) is now supported. #24059 * timers: * Fixed an issue that could cause setTimeout to stop working as expected. #24322 * Windows * A crashing process will now show the names of stack frames if the node.pdb file is available. #23822 * Continued effort to improve the installer's new stage that installs native build tools. #23987, #24348 * child_process: * On Windows the `windowsHide` option default was restored to `false`. This means `detached` child processes and GUI apps will once again start in a new window. #24034 * Added new collaborators: * [oyyd](https://github.com/oyyd) - Ouyang Yadong. #24300 * [psmarshall](https://github.com/psmarshall) - Peter Marshall. #24170 * [shisama](https://github.com/shisama) - Masashi Hirano. #24136
Notable changes: * deps: * A new experimental HTTP parser (`llhttp`) is now supported. #24059 * timers: * Fixed an issue that could cause setTimeout to stop working as expected. #24322 * Windows * A crashing process will now show the names of stack frames if the node.pdb file is available. #23822 * Continued effort to improve the installer's new stage that installs native build tools. #23987, #24348 * child_process: * On Windows the `windowsHide` option default was restored to `false`. This means `detached` child processes and GUI apps will once again start in a new window. #24034 * Added new collaborators: * [oyyd](https://github.com/oyyd) - Ouyang Yadong. #24300 * [psmarshall](https://github.com/psmarshall) - Peter Marshall. #24170 * [shisama](https://github.com/shisama) - Masashi Hirano. #24136 PR-URL: #24350
This reverts commit 420d8af.
I'm opening this not because I'm convinced the commit needs to be reverted, but to hopefully elicit a prompt conversation and decision about whether or not it should be reverted.
Refs: #21316 (comment) and several subsequent comments.
I'm particularly interested in what embedders, especially Electron folks, think. @MarshallOfSound has already weighed in that they don't believe a revert is warranted, but also expressed it as a personal opinion (so, I assume, not speaking on behalf of Electron). Would love to hear from @codebytere or @zeke or @groundwater or someone, either to get a consensus of personal opinions or else to get a semi-official "Electron prefers revert/no-revert".
@nodejs/embedders
IIUC, this is only affecting developers and not end users. Doing this out of an abundance of caution and in case I"m wrong about that.
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes