Skip to content

Commit 50fe70a

Browse files
authored
Fix handling of files with spaces in frontend_server_client (#1382)
Fixes https://github.com/dart-lang/webdev/issues/1380 Also enables running of the tests on windows/linux.
1 parent 61fa884 commit 50fe70a

File tree

7 files changed

+227
-63
lines changed

7 files changed

+227
-63
lines changed

.github/workflows/dart.yml

+146-54
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Created with package:mono_repo v5.0.0
1+
# Created with package:mono_repo v5.0.2
22
name: Dart CI
33
on:
44
push:
@@ -28,48 +28,16 @@ jobs:
2828
restore-keys: |
2929
os:ubuntu-latest;pub-cache-hosted
3030
os:ubuntu-latest
31-
- uses: dart-lang/setup-dart@v1.0
31+
- uses: dart-lang/setup-dart@v1.2
3232
with:
3333
sdk: stable
3434
- id: checkout
3535
uses: actions/[email protected]
3636
- name: mono_repo self validate
37-
run: dart pub global activate mono_repo 5.0.0
37+
run: dart pub global activate mono_repo 5.0.2
3838
- name: mono_repo self validate
3939
run: dart pub global run mono_repo generate --validate
4040
job_002:
41-
name: "analyzer_and_format; linux; Dart 2.12.0; PKG: frontend_server_client; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`"
42-
runs-on: ubuntu-latest
43-
steps:
44-
- name: Cache Pub hosted dependencies
45-
uses: actions/[email protected]
46-
with:
47-
path: "~/.pub-cache/hosted"
48-
key: "os:ubuntu-latest;pub-cache-hosted;dart:2.12.0;packages:frontend_server_client;commands:format-analyze"
49-
restore-keys: |
50-
os:ubuntu-latest;pub-cache-hosted;dart:2.12.0;packages:frontend_server_client
51-
os:ubuntu-latest;pub-cache-hosted;dart:2.12.0
52-
os:ubuntu-latest;pub-cache-hosted
53-
os:ubuntu-latest
54-
- uses: dart-lang/[email protected]
55-
with:
56-
sdk: "2.12.0"
57-
- id: checkout
58-
uses: actions/[email protected]
59-
- id: frontend_server_client_pub_upgrade
60-
name: frontend_server_client; dart pub upgrade
61-
if: "always() && steps.checkout.conclusion == 'success'"
62-
working-directory: frontend_server_client
63-
run: dart pub upgrade
64-
- name: "frontend_server_client; dart format --output=none --set-exit-if-changed ."
65-
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
66-
working-directory: frontend_server_client
67-
run: "dart format --output=none --set-exit-if-changed ."
68-
- name: "frontend_server_client; dart analyze --fatal-infos ."
69-
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
70-
working-directory: frontend_server_client
71-
run: dart analyze --fatal-infos .
72-
job_003:
7341
name: "analyzer_and_format; linux; Dart dev; PKG: dwds; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`, `dart test test/build/ensure_version_test.dart`"
7442
runs-on: ubuntu-latest
7543
steps:
@@ -83,7 +51,7 @@ jobs:
8351
os:ubuntu-latest;pub-cache-hosted;dart:dev
8452
os:ubuntu-latest;pub-cache-hosted
8553
os:ubuntu-latest
86-
- uses: dart-lang/setup-dart@v1.0
54+
- uses: dart-lang/setup-dart@v1.2
8755
with:
8856
sdk: dev
8957
- id: checkout
@@ -105,21 +73,21 @@ jobs:
10573
if: "always() && steps.dwds_pub_upgrade.conclusion == 'success'"
10674
working-directory: dwds
10775
run: dart test test/build/ensure_version_test.dart
108-
job_004:
109-
name: "analyzer_and_format; linux; Dart dev; PKGS: example, fixtures/_webdevSmoke, frontend_server_common; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`"
76+
job_003:
77+
name: "analyzer_and_format; linux; Dart dev; PKGS: example, fixtures/_webdevSmoke, frontend_server_client, frontend_server_common; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`"
11078
runs-on: ubuntu-latest
11179
steps:
11280
- name: Cache Pub hosted dependencies
11381
uses: actions/[email protected]
11482
with:
11583
path: "~/.pub-cache/hosted"
116-
key: "os:ubuntu-latest;pub-cache-hosted;dart:dev;packages:example-fixtures/_webdevSmoke-frontend_server_common;commands:format-analyze"
84+
key: "os:ubuntu-latest;pub-cache-hosted;dart:dev;packages:example-fixtures/_webdevSmoke-frontend_server_client-frontend_server_common;commands:format-analyze"
11785
restore-keys: |
118-
os:ubuntu-latest;pub-cache-hosted;dart:dev;packages:example-fixtures/_webdevSmoke-frontend_server_common
86+
os:ubuntu-latest;pub-cache-hosted;dart:dev;packages:example-fixtures/_webdevSmoke-frontend_server_client-frontend_server_common
11987
os:ubuntu-latest;pub-cache-hosted;dart:dev
12088
os:ubuntu-latest;pub-cache-hosted
12189
os:ubuntu-latest
122-
- uses: dart-lang/setup-dart@v1.0
90+
- uses: dart-lang/setup-dart@v1.2
12391
with:
12492
sdk: dev
12593
- id: checkout
@@ -150,6 +118,19 @@ jobs:
150118
if: "always() && steps.fixtures__webdevSmoke_pub_upgrade.conclusion == 'success'"
151119
working-directory: fixtures/_webdevSmoke
152120
run: dart analyze --fatal-infos .
121+
- id: frontend_server_client_pub_upgrade
122+
name: frontend_server_client; dart pub upgrade
123+
if: "always() && steps.checkout.conclusion == 'success'"
124+
working-directory: frontend_server_client
125+
run: dart pub upgrade
126+
- name: "frontend_server_client; dart format --output=none --set-exit-if-changed ."
127+
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
128+
working-directory: frontend_server_client
129+
run: "dart format --output=none --set-exit-if-changed ."
130+
- name: "frontend_server_client; dart analyze --fatal-infos ."
131+
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
132+
working-directory: frontend_server_client
133+
run: dart analyze --fatal-infos .
153134
- id: frontend_server_common_pub_upgrade
154135
name: frontend_server_common; dart pub upgrade
155136
if: "always() && steps.checkout.conclusion == 'success'"
@@ -163,7 +144,7 @@ jobs:
163144
if: "always() && steps.frontend_server_common_pub_upgrade.conclusion == 'success'"
164145
working-directory: frontend_server_common
165146
run: dart analyze --fatal-infos .
166-
job_005:
147+
job_004:
167148
name: "analyzer_and_format; linux; Dart dev; PKG: webdev; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`, `dart test test/build/ensure_build_test.dart`"
168149
runs-on: ubuntu-latest
169150
steps:
@@ -177,7 +158,7 @@ jobs:
177158
os:ubuntu-latest;pub-cache-hosted;dart:dev
178159
os:ubuntu-latest;pub-cache-hosted
179160
os:ubuntu-latest
180-
- uses: dart-lang/setup-dart@v1.0
161+
- uses: dart-lang/setup-dart@v1.2
181162
with:
182163
sdk: dev
183164
- id: checkout
@@ -199,7 +180,7 @@ jobs:
199180
if: "always() && steps.webdev_pub_upgrade.conclusion == 'success'"
200181
working-directory: webdev
201182
run: dart test test/build/ensure_build_test.dart
202-
job_006:
183+
job_005:
203184
name: "unit_test; linux; Dart dev; PKG: dwds; `Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &`, `dart test`"
204185
runs-on: ubuntu-latest
205186
steps:
@@ -213,7 +194,7 @@ jobs:
213194
os:ubuntu-latest;pub-cache-hosted;dart:dev
214195
os:ubuntu-latest;pub-cache-hosted
215196
os:ubuntu-latest
216-
- uses: dart-lang/setup-dart@v1.0
197+
- uses: dart-lang/setup-dart@v1.2
217198
with:
218199
sdk: dev
219200
- id: checkout
@@ -236,7 +217,39 @@ jobs:
236217
- job_002
237218
- job_003
238219
- job_004
239-
- job_005
220+
job_006:
221+
name: "unit_test; linux; Dart dev; PKG: frontend_server_client; `dart test`"
222+
runs-on: ubuntu-latest
223+
steps:
224+
- name: Cache Pub hosted dependencies
225+
uses: actions/[email protected]
226+
with:
227+
path: "~/.pub-cache/hosted"
228+
key: "os:ubuntu-latest;pub-cache-hosted;dart:dev;packages:frontend_server_client;commands:test_1"
229+
restore-keys: |
230+
os:ubuntu-latest;pub-cache-hosted;dart:dev;packages:frontend_server_client
231+
os:ubuntu-latest;pub-cache-hosted;dart:dev
232+
os:ubuntu-latest;pub-cache-hosted
233+
os:ubuntu-latest
234+
- uses: dart-lang/[email protected]
235+
with:
236+
sdk: dev
237+
- id: checkout
238+
uses: actions/[email protected]
239+
- id: frontend_server_client_pub_upgrade
240+
name: frontend_server_client; dart pub upgrade
241+
if: "always() && steps.checkout.conclusion == 'success'"
242+
working-directory: frontend_server_client
243+
run: dart pub upgrade
244+
- name: frontend_server_client; dart test
245+
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
246+
working-directory: frontend_server_client
247+
run: dart test
248+
needs:
249+
- job_001
250+
- job_002
251+
- job_003
252+
- job_004
240253
job_007:
241254
name: "unit_test; linux; Dart dev; PKG: webdev; `Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &`, `dart test -j 1`"
242255
runs-on: ubuntu-latest
@@ -251,7 +264,7 @@ jobs:
251264
os:ubuntu-latest;pub-cache-hosted;dart:dev
252265
os:ubuntu-latest;pub-cache-hosted
253266
os:ubuntu-latest
254-
- uses: dart-lang/setup-dart@v1.0
267+
- uses: dart-lang/setup-dart@v1.2
255268
with:
256269
sdk: dev
257270
- id: checkout
@@ -274,12 +287,44 @@ jobs:
274287
- job_002
275288
- job_003
276289
- job_004
277-
- job_005
278290
job_008:
291+
name: "unit_test; linux; Dart stable; PKG: frontend_server_client; `dart test`"
292+
runs-on: ubuntu-latest
293+
steps:
294+
- name: Cache Pub hosted dependencies
295+
uses: actions/[email protected]
296+
with:
297+
path: "~/.pub-cache/hosted"
298+
key: "os:ubuntu-latest;pub-cache-hosted;dart:stable;packages:frontend_server_client;commands:test_1"
299+
restore-keys: |
300+
os:ubuntu-latest;pub-cache-hosted;dart:stable;packages:frontend_server_client
301+
os:ubuntu-latest;pub-cache-hosted;dart:stable
302+
os:ubuntu-latest;pub-cache-hosted
303+
os:ubuntu-latest
304+
- uses: dart-lang/[email protected]
305+
with:
306+
sdk: stable
307+
- id: checkout
308+
uses: actions/[email protected]
309+
- id: frontend_server_client_pub_upgrade
310+
name: frontend_server_client; dart pub upgrade
311+
if: "always() && steps.checkout.conclusion == 'success'"
312+
working-directory: frontend_server_client
313+
run: dart pub upgrade
314+
- name: frontend_server_client; dart test
315+
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
316+
working-directory: frontend_server_client
317+
run: dart test
318+
needs:
319+
- job_001
320+
- job_002
321+
- job_003
322+
- job_004
323+
job_009:
279324
name: "unit_test; windows; Dart dev; PKG: dwds; `dart test`"
280325
runs-on: windows-latest
281326
steps:
282-
- uses: dart-lang/setup-dart@v1.0
327+
- uses: dart-lang/setup-dart@v1.2
283328
with:
284329
sdk: dev
285330
- id: checkout
@@ -298,12 +343,34 @@ jobs:
298343
- job_002
299344
- job_003
300345
- job_004
301-
- job_005
302-
job_009:
346+
job_010:
347+
name: "unit_test; windows; Dart dev; PKG: frontend_server_client; `dart test`"
348+
runs-on: windows-latest
349+
steps:
350+
- uses: dart-lang/[email protected]
351+
with:
352+
sdk: dev
353+
- id: checkout
354+
uses: actions/[email protected]
355+
- id: frontend_server_client_pub_upgrade
356+
name: frontend_server_client; dart pub upgrade
357+
if: "always() && steps.checkout.conclusion == 'success'"
358+
working-directory: frontend_server_client
359+
run: dart pub upgrade
360+
- name: frontend_server_client; dart test
361+
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
362+
working-directory: frontend_server_client
363+
run: dart test
364+
needs:
365+
- job_001
366+
- job_002
367+
- job_003
368+
- job_004
369+
job_011:
303370
name: "unit_test; windows; Dart dev; PKG: webdev; `dart test -j 1`"
304371
runs-on: windows-latest
305372
steps:
306-
- uses: dart-lang/setup-dart@v1.0
373+
- uses: dart-lang/setup-dart@v1.2
307374
with:
308375
sdk: dev
309376
- id: checkout
@@ -322,8 +389,30 @@ jobs:
322389
- job_002
323390
- job_003
324391
- job_004
325-
- job_005
326-
job_010:
392+
job_012:
393+
name: "unit_test; windows; Dart stable; PKG: frontend_server_client; `dart test`"
394+
runs-on: windows-latest
395+
steps:
396+
- uses: dart-lang/[email protected]
397+
with:
398+
sdk: stable
399+
- id: checkout
400+
uses: actions/[email protected]
401+
- id: frontend_server_client_pub_upgrade
402+
name: frontend_server_client; dart pub upgrade
403+
if: "always() && steps.checkout.conclusion == 'success'"
404+
working-directory: frontend_server_client
405+
run: dart pub upgrade
406+
- name: frontend_server_client; dart test
407+
if: "always() && steps.frontend_server_client_pub_upgrade.conclusion == 'success'"
408+
working-directory: frontend_server_client
409+
run: dart test
410+
needs:
411+
- job_001
412+
- job_002
413+
- job_003
414+
- job_004
415+
job_013:
327416
name: Notify failure
328417
runs-on: ubuntu-latest
329418
if: "(github.event_name == 'push' || github.event_name == 'schedule') && failure()"
@@ -344,3 +433,6 @@ jobs:
344433
- job_007
345434
- job_008
346435
- job_009
436+
- job_010
437+
- job_011
438+
- job_012

frontend_server_client/CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 2.1.1
2+
3+
- Fix a bug where spaces in the output dill path would cause a parse error when
4+
reading the error count output.
5+
16
## 2.1.0
27

38
- Support enabling experiments when starting the compiler.

frontend_server_client/lib/src/frontend_server_client.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ class FrontendServerClient {
171171
if (line.startsWith(feBoundaryKey)) {
172172
state = _CompileState.done;
173173
var parts = line.split(' ');
174-
outputDillPath = parts[1];
175-
errorCount = int.parse(parts[2]);
174+
outputDillPath = parts.getRange(1, parts.length - 1).join(' ');
175+
errorCount = int.parse(parts.last);
176176
continue;
177177
}
178178
var diffUri = Uri.parse(line.substring(1));

frontend_server_client/mono_pkg.yaml

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,12 @@ stages:
44
- group:
55
- format
66
- analyze: --fatal-infos .
7-
dart: [2.12.0]
7+
dart: dev
8+
- unit_test:
9+
- test:
10+
dart:
11+
- stable
12+
- dev
13+
os:
14+
- windows
15+
- linux

frontend_server_client/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: frontend_server_client
2-
version: 2.1.0
2+
version: 2.1.1
33
description: >-
44
Client code to start and interact with the frontend_server compiler from the
55
Dart SDK.

0 commit comments

Comments
 (0)