Update to team lints, require Dart 3.0 (#139)
diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index 34b8073..d14e9f4 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -47,7 +47,7 @@
matrix:
# Add macos-latest and/or windows-latest if relevant for this package.
os: [ubuntu-latest]
- sdk: [2.18.0, dev]
+ sdk: [3.0.0, dev]
steps:
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 62ef87d..d084d85 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
-## 2.1.1-dev
+## 2.1.1-wip
-- Require Dart 2.18
+- Require Dart 3.0
## 2.1.0
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 278ec48..c0249e5 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -2,4 +2,4 @@
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
-include: package:lints/recommended.yaml
+include: package:dart_flutter_team_lints/analysis_options.yaml
diff --git a/example/main.dart b/example/main.dart
index 42a5963..db137ca 100644
--- a/example/main.dart
+++ b/example/main.dart
@@ -2,9 +2,10 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package:package_config/package_config.dart';
import 'dart:io' show Directory;
+import 'package:package_config/package_config.dart';
+
void main() async {
var packageConfig = await findPackageConfig(Directory.current);
if (packageConfig == null) {
diff --git a/lib/package_config.dart b/lib/package_config.dart
index a2c0321..8f40a8b 100644
--- a/lib/package_config.dart
+++ b/lib/package_config.dart
@@ -9,7 +9,7 @@
/// configurations in the [specified format](https://github.com/dart-lang/language/blob/master/accepted/future-releases/language-versioning/package-config-file-v2.md).
library package_config.package_config;
-import 'dart:io' show File, Directory;
+import 'dart:io' show Directory, File;
import 'dart:typed_data' show Uint8List;
import 'src/discovery.dart' as discover;
diff --git a/lib/package_config_types.dart b/lib/package_config_types.dart
index 976009b..756be05 100644
--- a/lib/package_config_types.dart
+++ b/lib/package_config_types.dart
@@ -12,6 +12,6 @@
/// {@canonicalFor errors.PackageConfigError}
library package_config.package_config_types;
-export 'src/package_config.dart'
- show PackageConfig, Package, LanguageVersion, InvalidLanguageVersion;
export 'src/errors.dart' show PackageConfigError;
+export 'src/package_config.dart'
+ show InvalidLanguageVersion, LanguageVersion, Package, PackageConfig;
diff --git a/lib/src/discovery.dart b/lib/src/discovery.dart
index ccc86ea..352bed8 100644
--- a/lib/src/discovery.dart
+++ b/lib/src/discovery.dart
@@ -5,10 +5,9 @@
import 'dart:io';
import 'dart:typed_data';
-import 'package_config_io.dart';
-
import 'errors.dart';
import 'package_config_impl.dart';
+import 'package_config_io.dart';
import 'package_config_json.dart';
import 'packages_file.dart' as packages_file;
import 'util_io.dart' show defaultLoader, pathJoin;
diff --git a/lib/src/errors.dart b/lib/src/errors.dart
index f351571..69c4137 100644
--- a/lib/src/errors.dart
+++ b/lib/src/errors.dart
@@ -29,4 +29,5 @@
}
/// The default `onError` handler.
+// ignore: only_throw_errors
Never throwError(Object error) => throw error;
diff --git a/lib/src/package_config_json.dart b/lib/src/package_config_json.dart
index bd22db4..47e7e96 100644
--- a/lib/src/package_config_json.dart
+++ b/lib/src/package_config_json.dart
@@ -167,7 +167,9 @@
name!, root, packageRoot, version, extraData, relativeRoot, (error) {
if (error is ArgumentError) {
onError(
- PackageConfigFormatException(error.message, error.invalidValue));
+ PackageConfigFormatException(
+ error.message.toString(), error.invalidValue),
+ );
} else {
onError(error);
}
@@ -214,7 +216,10 @@
}
return SimplePackageConfig(configVersion!, packageList!, extraData, (error) {
if (error is ArgumentError) {
- onError(PackageConfigFormatException(error.message, error.invalidValue));
+ onError(
+ PackageConfigFormatException(
+ error.message.toString(), error.invalidValue),
+ );
} else {
onError(error);
}
diff --git a/lib/src/packages_file.dart b/lib/src/packages_file.dart
index 3fd7db9..5d14677 100644
--- a/lib/src/packages_file.dart
+++ b/lib/src/packages_file.dart
@@ -2,10 +2,9 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package_config_impl.dart';
-
-import 'util.dart';
import 'errors.dart';
+import 'package_config_impl.dart';
+import 'util.dart';
/// The language version prior to the release of language versioning.
///
@@ -127,7 +126,7 @@
var package = SimplePackage.validate(packageName, rootUri, packageLocation,
_languageVersion, null, relativeRoot, (error) {
if (error is ArgumentError) {
- onError(PackageConfigFormatException(error.message, source));
+ onError(PackageConfigFormatException(error.message.toString(), source));
} else {
onError(error);
}
diff --git a/pubspec.yaml b/pubspec.yaml
index 08255ff..e121ab0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,10 +1,10 @@
name: package_config
-version: 2.1.1-dev
+version: 2.1.1-wip
description: Support for reading and writing Dart Package Configuration files.
repository: https://github.com/dart-lang/package_config
environment:
- sdk: '>=2.18.0 <3.0.0'
+ sdk: ^3.0.0
dependencies:
path: ^1.8.0
@@ -12,6 +12,6 @@
dev_dependencies:
build_runner: ^2.0.0
build_test: ^2.1.2
- build_web_compilers: '>=3.0.0 <5.0.0'
- lints: ^2.0.0
+ build_web_compilers: ^4.0.0
+ dart_flutter_team_lints: ^1.0.0
test: ^1.16.0
diff --git a/test/bench.dart b/test/bench.dart
index 7466431..8428481 100644
--- a/test/bench.dart
+++ b/test/bench.dart
@@ -5,10 +5,9 @@
import 'dart:convert';
import 'dart:typed_data';
+import 'package:package_config/src/errors.dart';
import 'package:package_config/src/package_config_json.dart';
-void throwError(Object error) => throw error;
-
void bench(final int size, final bool doPrint) {
var sb = StringBuffer();
sb.writeln('{');
@@ -32,20 +31,21 @@
sb.writeln('}');
var stopwatch = Stopwatch()..start();
var config = parsePackageConfigBytes(
- // ignore: unnecessary_cast
- utf8.encode(sb.toString()) as Uint8List,
- Uri.parse('file:///tmp/.dart_tool/file.dart'),
- throwError);
- final int read = stopwatch.elapsedMilliseconds;
+ // ignore: unnecessary_cast
+ utf8.encode(sb.toString()) as Uint8List,
+ Uri.parse('file:///tmp/.dart_tool/file.dart'),
+ throwError,
+ );
+ final read = stopwatch.elapsedMilliseconds;
stopwatch.reset();
for (var i = 0; i < size; i++) {
if (config.packageOf(Uri.parse('file:///p_$i/lib/src/foo.dart'))!.name !=
'p_$i') {
- throw "Unexpected result!";
+ throw StateError('Unexpected result!');
}
}
- final int lookup = stopwatch.elapsedMilliseconds;
+ final lookup = stopwatch.elapsedMilliseconds;
if (doPrint) {
print('Read file with $size packages in $read ms, '
@@ -55,12 +55,12 @@
void main(List<String> args) {
if (args.length != 1 && args.length != 2) {
- throw "Expects arguments: <size> <warmup iterations>?";
+ throw ArgumentError('Expects arguments: <size> <warmup iterations>?');
}
final size = int.parse(args[0]);
if (args.length > 1) {
final warmups = int.parse(args[1]);
- print("Performing $warmups warmup iterations.");
+ print('Performing $warmups warmup iterations.');
for (var i = 0; i < warmups; i++) {
bench(10, false);
}
diff --git a/test/discovery_test.dart b/test/discovery_test.dart
index 17b6aa0..3eb0ea1 100644
--- a/test/discovery_test.dart
+++ b/test/discovery_test.dart
@@ -6,8 +6,9 @@
library package_config.discovery_test;
import 'dart:io';
-import 'package:test/test.dart';
+
import 'package:package_config/package_config.dart';
+import 'package:test/test.dart';
import 'src/util.dart';
import 'src/util_io.dart';
@@ -207,7 +208,7 @@
'.packages': packagesFile,
'script.dart': 'main(){}'
}, (Directory directory) async {
- var config = (await findPackageConfig(directory, minVersion: 2));
+ var config = await findPackageConfig(directory, minVersion: 2);
expect(config, null);
});
diff --git a/test/discovery_uri_test.dart b/test/discovery_uri_test.dart
index 6183ce3..c8fbcb8 100644
--- a/test/discovery_uri_test.dart
+++ b/test/discovery_uri_test.dart
@@ -5,8 +5,8 @@
@TestOn('vm')
library package_config.discovery_test;
-import 'package:test/test.dart';
import 'package:package_config/package_config.dart';
+import 'package:test/test.dart';
import 'src/util.dart';
@@ -151,8 +151,8 @@
'.packages': packagesFile,
'script.dart': 'main(){}'
}, (directory, loader) async {
- var config = (await findPackageConfigUri(directory,
- minVersion: 2, loader: loader));
+ var config =
+ await findPackageConfigUri(directory, minVersion: 2, loader: loader);
expect(config, null);
});
diff --git a/test/parse_test.dart b/test/parse_test.dart
index 94269e2..ad4c749 100644
--- a/test/parse_test.dart
+++ b/test/parse_test.dart
@@ -5,15 +5,14 @@
import 'dart:convert';
import 'dart:typed_data';
+import 'package:package_config/package_config_types.dart';
+import 'package:package_config/src/errors.dart';
+import 'package:package_config/src/package_config_json.dart';
+import 'package:package_config/src/packages_file.dart' as packages;
import 'package:test/test.dart';
-import 'package:package_config/package_config_types.dart';
-import 'package:package_config/src/packages_file.dart' as packages;
-import 'package:package_config/src/package_config_json.dart';
import 'src/util.dart';
-void throwError(Object error) => throw error;
-
void main() {
group('.packages', () {
test('valid', () {
@@ -318,8 +317,12 @@
test(name, () {
dynamic exception;
try {
- parsePackageConfigBytes(utf8.encode(source) as Uint8List,
- Uri.parse('file:///tmp/.dart_tool/file.dart'), throwError);
+ parsePackageConfigBytes(
+ // ignore: unnecessary_cast
+ utf8.encode(source) as Uint8List,
+ Uri.parse('file:///tmp/.dart_tool/file.dart'),
+ throwError,
+ );
} catch (e) {
exception = e;
}
@@ -440,8 +443,9 @@
'package root of foo is inside the root of bar');
// This shouldn't be allowed, but for internal reasons it is.
- test("package inside package root", () {
+ test('package inside package root', () {
var config = parsePackageConfigBytes(
+ // ignore: unnecessary_cast
utf8.encode(
'{$cfg,"packages":['
'{"name":"foo","rootUri":"/foo/","packageUri":"lib/"},'
diff --git a/test/src/util_io.dart b/test/src/util_io.dart
index 109dff1..e032556 100644
--- a/test/src/util_io.dart
+++ b/test/src/util_io.dart
@@ -4,8 +4,8 @@
import 'dart:io';
-import 'package:test/test.dart';
import 'package:package_config/src/util_io.dart';
+import 'package:test/test.dart';
/// Creates a directory structure from [description] and runs [fileTest].
///