Fix mixtures of parentheses and spaces in windows command paths#2138
Conversation
|
cc @DanTup |
PR HealthBreaking changes ✔️
Changelog Entry ✔️
Changes to files need to be accounted for in their respective changelogs. Coverage ✔️
This check for test coverage is informational (issues shown here will not fail the PR). API leaks ✔️The following packages contain symbols visible in the public API, but not exported by the library. Export these symbols or remove them from your publicly visible API.
License Headers ✔️
All source files should start with a license header. Unrelated files missing license headers
|
Package publishing
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation. |
|
Weird, I cannot replicate the originally reported error without this patch - the integration test I added at the end works either way. |
|
Ahhh, so I can replicate this error with |
|
@jakemac53 for my original issue, the folder was named "Latest (Bleeding Edge)" which contains both spaces and quotes, so I would've expected it to already be quoted (in fact in the screenshot, it looks wrapped in quotes). Might there be more to it? I can do some testing locally tomorrow and see if I can confirm if this fixes it (and if not, try to figure out why). |
|
Oh, this sounded familiar and I found this in Dart-Code: Shell execute is a mess. If you know you're getting |
|
When testing locally on windows it seems like the dart issue has since been closed and now this helper code is actually causing problems when parentheses are involved. I have now removed the helper and its tests, and added integration tests that actually run an executable, and also added windows testing to the GitHub workflows for this package. |
|
Ok, so actually it looks like when there are only parenthesis this still doesn't work. However, simply wrapping it in quotes also doesn't work. I don't know what the right thing to do here is. |
I can try this, but dang does that sound hacky lol. |
Perhaps, but escape correctly for shell is already a minefield (see dart-lang/sdk#59604 for some issues that were never resolved). If you know you're executing a binary and don't need the shell, avoiding it makes things simpler. I'll see if I can pull these changes in locally and test my original problem and post back. |
|
Looks like it was just a bad OS name and GitHub likes to waste time queueing jobs for oses that don't exist :P |
|
Btw I skipped the test for having just parenthesis in the path and filed a separate issue. This is not a regression, its a new test that is failing (there was no special handling for this case before). |
Based on this suggestion from @DanTup dart-lang/tools#2138 (comment)
…, web, webdriver Revisions updated by `dart tools/rev_sdk_deps.dart`. ai (https://github.com/dart-lang/ai/compare/7fbe88a..72a9283): 72a9283 2025-07-31 Jacob MacDonald add --exclude-tool option to exclude tools by name (dart-lang/ai#253) 0dbbd8b 2025-07-30 Jacob MacDonald only run in shell when on windows and running a .bat file (dart-lang/ai#252) 0858b0b 2025-07-28 Jacob MacDonald further prompt refinement, discourage use of temp ids and encourage getting the widget tree often (dart-lang/ai#249) 912c1f3 2025-07-28 Jacob MacDonald release dart_mcp v0.3.3 (dart-lang/ai#247) 0f7cba8 2025-07-28 Jacob MacDonald add analytics tracking for prompts (dart-lang/ai#246) dartdoc (https://github.com/dart-lang/dartdoc/compare/882aea9..414953e): 414953ed 2025-08-04 Sam Rawlins Simplify how inheritance is computed. (dart-lang/dartdoc#4079) ecosystem (https://github.com/dart-lang/ecosystem/compare/d5233c6..2fe3618): 2fe3618 2025-08-01 dependabot[bot] Bump the github-actions group with 3 updates (dart-lang/ecosystem#361) protobuf (https://github.com/dart-lang/protobuf/compare/44ecd74..0b73b0d): 0b73b0d 2025-07-30 Devon Carew workspace, formatting, and proto version updates (google/protobuf.dart#1033) a664760 2025-07-30 Devon Carew various CI workflow updates (google/protobuf.dart#1035) test (https://github.com/dart-lang/test/compare/6aeb1e4..953e828): 953e8282 2025-08-01 Nate Bosch Drop executable arguments forwarding (dart-lang/test#2528) tools (https://github.com/dart-lang/tools/compare/2a2a2d6..5e977d6): 5e977d6f 2025-07-30 Jacob MacDonald Fix mixtures of parentheses and spaces in windows command paths (dart-lang/tools#2138) 607340ca 2025-07-29 Devon Carew disable failing test (dart-lang/tools#2136) vector_math (https://github.com/google/vector_math.dart/compare/13f185f..3939545): 3939545 2025-08-04 Kevin Moore Bump min SDK to 3.7, update dependencies, reformat (google/vector_math.dart#348) web (https://github.com/dart-lang/web/compare/da1dd5d..1d5771b): 1d5771b 2025-07-31 Nikechukwu [interop] Add support for importing and exporting declarations, as well as multi-file output (dart-lang/web#418) webdriver (https://github.com/google/webdriver.dart/compare/cfab787..595649d): 595649d 2025-08-01 dependabot[bot] Bump nanasess/setup-chromedriver (google/webdriver.dart#331) Change-Id: Ia014bf6cafa9edcdaf453edda9cd5ecff516e16d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443625 Auto-Submit: Devon Carew <devoncarew@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>

Should resolve #2137.
Dropped the
sanitizeExecutablePathentirely as it no longer seems to be necessary (SDK issue was closed long ago)