Skip to content

Commit f5e95b2

Browse files
Merge pull request #442 from Workiva/fix_webdev_check_dart3
Fix webdev version check for Dart 3
2 parents d148010 + 7c1685d commit f5e95b2

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

lib/src/tools/webdev_serve_tool.dart

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:pub_semver/pub_semver.dart';
1010
import '../dart_dev_tool.dart';
1111
import '../utils/arg_results_utils.dart';
1212
import '../utils/assert_no_positional_args_nor_args_after_separator.dart';
13+
import '../utils/dart_semver_version.dart';
1314
import '../utils/executables.dart' as exe;
1415
import '../utils/global_package_is_active_and_compatible.dart';
1516
import '../utils/logging.dart';
@@ -213,15 +214,19 @@ WebdevServeExecution buildExecution(
213214
'Arguments can be passed to the build process via the --build-args '
214215
'option.');
215216
}
217+
218+
final webdevVersion = dartSemverVersion.major == 2 ? '^2.0.0' : '^3.0.0';
219+
216220
if (!globalPackageIsActiveAndCompatible(
217-
'webdev', VersionConstraint.parse('^2.0.0'),
221+
'webdev', VersionConstraint.parse(webdevVersion),
218222
environment: environment)) {
219223
_log.severe(red.wrap(
220224
'${styleBold.wrap('webdev serve')} could not run for this project.\n')! +
221225
yellow.wrap('You must have `webdev` globally activated:\n'
222-
' dart pub global activate webdev ^2.0.0')!);
226+
' dart pub global activate webdev ${webdevVersion}')!);
223227
return WebdevServeExecution.exitEarly(ExitCode.config.code);
224228
}
229+
225230
final args = buildArgs(
226231
argResults: argResults,
227232
configuredBuildArgs: configuredBuildArgs,

test/tools/webdev_serve_tool_test.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:args/args.dart';
33
import 'package:args/command_runner.dart';
44
import 'package:dart_dev/src/dart_dev_tool.dart';
55
import 'package:dart_dev/src/tools/webdev_serve_tool.dart';
6+
import 'package:dart_dev/src/utils/dart_semver_version.dart';
67
import 'package:dart_dev/src/utils/executables.dart' as exe;
78
import 'package:io/ansi.dart';
89
import 'package:io/io.dart';
@@ -138,7 +139,7 @@ void main() {
138139

139140
setUpAll(() {
140141
pubCacheWithWebdev = TempPubCache();
141-
globalActivate('webdev', '^2.0.0',
142+
globalActivate('webdev', '^${dartSemverVersion.major}.0.0',
142143
environment: pubCacheWithWebdev.envOverride);
143144

144145
pubCacheWithoutWebdev = TempPubCache();
@@ -180,7 +181,8 @@ void main() {
180181
Logger.root.onRecord,
181182
emitsThrough(severeLogOf(allOf(
182183
contains('webdev serve could not run'),
183-
contains('dart pub global activate webdev ^2.0.0')))));
184+
contains(
185+
'dart pub global activate webdev ^${dartSemverVersion.major}.0.0')))));
184186

185187
expect(
186188
buildExecution(DevToolExecutionContext(),

0 commit comments

Comments
 (0)