Switch to GitHub actions, update analysis options, fix analysis issues. (#35)
This removes Travis configuration and switches to GitHub actions. Also, updated the analysis options to use package:lints/recommended.yaml.
diff --git a/.github/workflows/platform.yml b/.github/workflows/platform.yml
new file mode 100644
index 0000000..dfcf6cd
--- /dev/null
+++ b/.github/workflows/platform.yml
@@ -0,0 +1,38 @@
+name: Process Package
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+ workflow_dispatch:
+
+jobs:
+ correctness:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
+ - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603
+ with:
+ sdk: dev
+ - name: Install dependencies
+ run: dart pub upgrade
+ - name: Verify formatting
+ run: dart format --output=none --set-exit-if-changed .
+ - name: Analyze project source
+ run: dart analyze --fatal-infos
+ test:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ sdk: [stable, beta, dev]
+ steps:
+ - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
+ - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603
+ with:
+ sdk: ${{ matrix.sdk }}
+ - name: Install dependencies
+ run: dart pub upgrade
+ - name: Run Tests
+ run: dart test
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 5722c5b..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: dart
-sudo: false
-dart:
- - dev
-install:
- - gem install coveralls-lcov
-before_script:
- - ./dev/setup.sh
-script:
- - ./dev/travis.sh
-after_success:
- - (coveralls-lcov coverage/lcov.info)
-cache:
- directories:
- - $HOME/.pub-cache
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 1b14e09..8fbd2e4 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,62 +1,6 @@
+include: package:lints/recommended.yaml
+
analyzer:
- enable-experiment:
- - non-nullable
errors:
# Allow having TODOs in the code
todo: ignore
-
-linter:
- rules:
- # these rules are documented on and in the same order as
- # the Dart Lint rules page to make maintenance easier
- # http://dart-lang.github.io/linter/lints/
-
- # === error rules ===
- - avoid_empty_else
- - comment_references
- - cancel_subscriptions
- - close_sinks
- - control_flow_in_finally
- - empty_statements
- - hash_and_equals
- - invariant_booleans
- - iterable_contains_unrelated_type
- - list_remove_unrelated_type
- - literal_only_boolean_expressions
- - test_types_in_equals
- - throw_in_finally
- - unrelated_type_equality_checks
- - valid_regexps
-
- # === style rules ===
- - always_declare_return_types
- - always_specify_types
- - annotate_overrides
- - avoid_as
- - avoid_init_to_null
- - avoid_return_types_on_setters
- - await_only_futures
- - camel_case_types
- - constant_identifier_names
- - empty_constructor_bodies
- - implementation_imports
- - library_names
- - library_prefixes
- - non_constant_identifier_names
- - one_member_abstracts
- - only_throw_errors
- - overridden_fields
- - package_api_docs
- - package_prefixed_library_names
- - prefer_is_not_empty
- - public_member_api_docs
- - slash_for_doc_comments
- - sort_constructors_first
- - sort_unnamed_constructors_first
- - type_annotate_public_apis
- - type_init_formals
- - unawaited_futures
- - unnecessary_getters_setters
-
- # === pub rules ===
- - package_names
diff --git a/dev/setup.sh b/dev/setup.sh
deleted file mode 100755
index 99ec284..0000000
--- a/dev/setup.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
-# 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.
-
-pub upgrade
diff --git a/dev/travis.sh b/dev/travis.sh
deleted file mode 100755
index 03d489c..0000000
--- a/dev/travis.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
-# 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.
-
-# Make sure dartfmt is run on everything
-echo "Checking dart format..."
-needs_dart_format="$(dart format --set-exit-if-changed --output=none lib test dev 2>&1)"
-if [[ $? != 0 ]]; then
- echo "FAILED"
- echo "$needs_dart_format"
- exit 1
-fi
-echo "PASSED"
-
-# Make sure we pass the analyzer
-echo "Checking dartanalyzer..."
-fails_analyzer="$(find lib test dev -name "*.dart" --print0 | xargs -0 dartanalyzer --options analysis_options.yaml 2>&1)"
-if [[ "$fails_analyzer" == *"[error]"* ]]; then
- echo "FAILED"
- echo "$fails_analyzer"
- exit 1
-fi
-echo "PASSED"
-
-# Make sure we could publish if we wanted to.
-echo "Checking publishing..."
-fails_publish="$(pub publish --dry-run 2>&1)"
-if [[ $? != 0 ]]; then
- echo "FAILED"
- echo "$fails_publish"
- exit 1
-fi
-echo "PASSED"
-
-# Fast fail the script on failures.
-set -e
-
-# Run the tests.
-pub run test
diff --git a/lib/src/interface/local_platform.dart b/lib/src/interface/local_platform.dart
index c8573bd..2abd434 100644
--- a/lib/src/interface/local_platform.dart
+++ b/lib/src/interface/local_platform.dart
@@ -42,8 +42,7 @@
List<String> get executableArguments => io.Platform.executableArguments;
@override
- String? get packageRoot =>
- io.Platform.packageRoot; // ignore: deprecated_member_use
+ String? get packageRoot => null;
@override
String? get packageConfig => io.Platform.packageConfig;
diff --git a/lib/src/interface/platform.dart b/lib/src/interface/platform.dart
index 7f9262f..70a7130 100644
--- a/lib/src/interface/platform.dart
+++ b/lib/src/interface/platform.dart
@@ -159,12 +159,14 @@
/// list containing the flags passed to the executable.
List<String> get executableArguments;
- /// The value of the `--package-root` flag passed to the executable
- /// used to run the script in this isolate. This is the directory in which
- /// Dart packages are looked up.
+ /// Deprecated, do not use.
///
- /// If there is no `--package-root` flag, `null` is returned.
- @deprecated
+ /// This used to be the value of the `--package-root` flag passed to the
+ /// executable used to run the script in this isolate, but is no longer
+ /// supported in Dart 2.
+ ///
+ /// Always returns null.
+ @Deprecated('packages/ directory resolution is not supported in Dart 2.')
String? get packageRoot;
/// The value of the `--packages` flag passed to the executable
diff --git a/lib/src/testing/fake_platform.dart b/lib/src/testing/fake_platform.dart
index 046dd0a..8fe49c9 100644
--- a/lib/src/testing/fake_platform.dart
+++ b/lib/src/testing/fake_platform.dart
@@ -72,8 +72,8 @@
/// [json] must be a JSON string that matches the encoding produced by
/// [toJson].
factory FakePlatform.fromJson(String json) {
- Map<String, dynamic> map = new JsonDecoder().convert(json);
- return new FakePlatform(
+ Map<String, dynamic> map = JsonDecoder().convert(json);
+ return FakePlatform(
numberOfProcessors: map['numberOfProcessors'],
pathSeparator: map['pathSeparator'],
operatingSystem: map['operatingSystem'],
diff --git a/pubspec.yaml b/pubspec.yaml
index efe79e0..123723b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,4 +7,5 @@
sdk: '>=2.12.0 <3.0.0'
dev_dependencies:
+ lints: ^1.0.1
test: ^1.16.8
diff --git a/test/fake_platform_test.dart b/test/fake_platform_test.dart
index 3f954b6..2203852 100644
--- a/test/fake_platform_test.dart
+++ b/test/fake_platform_test.dart
@@ -32,13 +32,13 @@
late LocalPlatform local;
setUp(() {
- fake = new FakePlatform();
- local = new LocalPlatform();
+ fake = FakePlatform();
+ local = LocalPlatform();
});
group('fromPlatform', () {
setUp(() {
- fake = new FakePlatform.fromPlatform(local);
+ fake = FakePlatform.fromPlatform(local);
});
test('copiesAllProperties', () {
@@ -61,7 +61,7 @@
group('copyWith', () {
setUp(() {
- fake = new FakePlatform.fromPlatform(local);
+ fake = FakePlatform.fromPlatform(local);
});
test('overrides a value, but leaves others intact', () {
@@ -85,7 +85,7 @@
expect(copy.localeName, local.localeName);
});
test('can override all values', () {
- fake = new FakePlatform(
+ fake = FakePlatform(
numberOfProcessors: 8,
pathSeparator: ':',
operatingSystem: 'fake',
@@ -94,7 +94,7 @@
environment: <String, String>{'PATH': '.'},
executable: 'executable',
resolvedExecutable: '/executable',
- script: new Uri.file('/platform/test/fake_platform_test.dart'),
+ script: Uri.file('/platform/test/fake_platform_test.dart'),
executableArguments: <String>['scriptarg'],
version: '0.1.1',
stdinSupportsAnsi: false,
@@ -125,8 +125,8 @@
group('json', () {
test('fromJson', () {
- String json = new io.File('test/platform.json').readAsStringSync();
- fake = new FakePlatform.fromJson(json);
+ String json = io.File('test/platform.json').readAsStringSync();
+ fake = FakePlatform.fromJson(json);
expect(fake.numberOfProcessors, 8);
expect(fake.pathSeparator, '/');
expect(fake.operatingSystem, 'macos');
@@ -139,7 +139,7 @@
expect(fake.executable, '/bin/dart');
expect(fake.resolvedExecutable, '/bin/dart');
expect(fake.script,
- new Uri.file('/platform/test/fake_platform_test.dart'));
+ Uri.file('/platform/test/fake_platform_test.dart'));
expect(fake.executableArguments, <String>['--checked']);
expect(fake.packageRoot, null);
expect(fake.packageConfig, null);
@@ -148,7 +148,7 @@
});
test('fromJsonToJson', () {
- fake = new FakePlatform.fromJson(local.toJson());
+ fake = FakePlatform.fromJson(local.toJson());
_expectPlatformsEqual(fake, local);
});
});