Skip to content

Commit c82ae0f

Browse files
fix!: Resolved raw generic type warnings (#62)
1 parent 4204f7e commit c82ae0f

35 files changed

+148
-149
lines changed

.github/workflows/ci.yml

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,51 +10,42 @@ on:
1010

1111
jobs:
1212
dart_format:
13-
name: Dart format
13+
name: Dart format check
1414
strategy:
15+
fail-fast: false
1516
matrix:
16-
dart: [3.3, 3.6]
17+
dart: [3.3, 3.9]
1718
package: [cli_tools, config]
1819
runs-on: ubuntu-latest
20+
defaults:
21+
run:
22+
working-directory: packages/${{ matrix.package }}
1923
steps:
2024
- uses: actions/checkout@v4
2125
- uses: dart-lang/[email protected]
2226
with:
2327
sdk: ${{ matrix.dart }}
24-
- name: Verify formatting ${{ matrix.package }}
25-
run: dart format --output=none --set-exit-if-changed .
26-
working-directory: packages/${{ matrix.package }}
2728

28-
dart_analyze:
29-
name: Dart Analyze
30-
strategy:
31-
matrix:
32-
dart: [3.3, 3.6]
33-
package: [cli_tools, config]
34-
runs-on: ubuntu-latest
35-
steps:
36-
- uses: actions/checkout@v4
37-
- uses: dart-lang/[email protected]
38-
with:
39-
sdk: ${{ matrix.dart }}
40-
- name: Dart get and analyze ${{ matrix.package }}
41-
run: |
42-
dart pub get
43-
dart analyze --fatal-infos
44-
working-directory: packages/${{ matrix.package }}
29+
- run: dart pub get
30+
- run: dart format --output=none --set-exit-if-changed .
4531

46-
dart_test:
47-
name: Dart Test
32+
dart_analyze_test:
33+
name: Dart Analyze and Test
4834
strategy:
35+
fail-fast: false
4936
matrix:
50-
dart: [3.3, 3.6]
37+
dart: [3.3, 3.9]
5138
package: [cli_tools, config]
5239
runs-on: ubuntu-latest
40+
defaults:
41+
run:
42+
working-directory: packages/${{ matrix.package }}
5343
steps:
5444
- uses: actions/checkout@v4
5545
- uses: dart-lang/[email protected]
5646
with:
5747
sdk: ${{ matrix.dart }}
58-
- name: Dart test ${{ matrix.package }}
59-
run: dart test
60-
working-directory: packages/${{ matrix.package }}
48+
49+
- run: dart pub get
50+
- run: dart analyze --fatal-infos
51+
- run: dart test

.github/workflows/publish-cli_tools.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ on:
44
push:
55
tags:
66
# Matches tags like cli_tools-v1.2.3 and cli_tools-v1.2.3-pre.1
7-
- 'cli_tools-v[0-9]+.[0-9]+.[0-9]+*'
7+
- 'cli_tools-v[0-9]+.[0-9]+.[0-9]+'
8+
- 'cli_tools-v[0-9]+.[0-9]+.[0-9]+-*'
89

910
jobs:
1011
publish:

.github/workflows/publish-config.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ on:
44
push:
55
tags:
66
# Matches tags like config-v1.2.3 and config-v1.2.3-pre.1
7-
- 'config-v[0-9]+.[0-9]+.[0-9]+*'
7+
- 'config-v[0-9]+.[0-9]+.[0-9]+'
8+
- 'config-v[0-9]+.[0-9]+.[0-9]+-*'
89

910
jobs:
1011
publish:

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ They are actively maintained and used by the Serverpod team.
88

99
### cli_tools
1010

11-
The [cli_tools package](packages/cli_tools/README.md) offers several utilities for CLI development, for example: terminal logging, user-input prompting, and usage-analytics collection.
11+
The [cli_tools package](packages/cli_tools/) offers several utilities for CLI development, for example: terminal logging, user-input prompting, and usage-analytics collection.
1212

1313
### config
1414

15-
The [config package](packages/config/README.md) provides comprehensive
15+
The [config package](packages/config/) provides comprehensive
1616
configuration ingestion and validation, including typed command line options,
1717
environment variables, and configuration files as input, and better error
1818
reporting.
Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
include: package:serverpod_lints/cli.yaml
22

3-
analyzer:
4-
language:
5-
strict-raw-types: false
6-
errors:
7-
inference_failure_on_instance_creation: ignore
8-
inference_failure_on_function_invocation: ignore
9-
103
linter:
114
rules:
125
prefer_relative_imports: true

packages/cli_tools/example/main.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'package:cli_tools/cli_tools.dart';
22
import 'package:config/config.dart';
33

44
Future<int> main(final List<String> args) async {
5-
final commandRunner = BetterCommandRunner(
5+
final commandRunner = BetterCommandRunner<OptionDefinition<Object>, void>(
66
'example',
77
'Example CLI command',
88
globalOptions: [
@@ -47,7 +47,7 @@ Future<int> main(final List<String> args) async {
4747
///
4848
/// The enum approach is more distinct and type safe.
4949
/// The list approach is more dynamic and permits non-const initialization.
50-
enum TimeSeriesOption<V> implements OptionDefinition<V> {
50+
enum TimeSeriesOption<V extends Object> implements OptionDefinition<V> {
5151
until(DateTimeOption(
5252
argName: 'until',
5353
envName: 'SERIES_UNTIL', // can also be specified as environment variable

packages/cli_tools/example/simple_command_example.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import 'package:config/config.dart';
1414
/// INTERVAL=1s dart run example/simple_command_example.dart show
1515
/// ```
1616
Future<int> main(final List<String> args) async {
17-
final commandRunner = BetterCommandRunner(
17+
final commandRunner = BetterCommandRunner<OptionDefinition<Object>, void>(
1818
'example',
1919
'Example CLI command',
2020
);
@@ -29,7 +29,7 @@ Future<int> main(final List<String> args) async {
2929
return 0;
3030
}
3131

32-
enum ShowOption<V> implements OptionDefinition<V> {
32+
enum ShowOption<V extends Object> implements OptionDefinition<V> {
3333
interval(DurationOption(
3434
argName: 'interval',
3535
argAbbrev: 'i',

packages/cli_tools/lib/src/better_command_runner/better_command_runner.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import 'package:args/command_runner.dart';
66
import 'package:config/config.dart';
77

88
/// A function type for executing code before running a command.
9-
typedef OnBeforeRunCommand = Future<void> Function(BetterCommandRunner runner);
9+
typedef OnBeforeRunCommand<O extends OptionDefinition<Object>, T> = Future<void>
10+
Function(BetterCommandRunner<O, T> runner);
1011

1112
/// A proxy for user-provided functions for passing specific log messages.
1213
///
@@ -54,15 +55,15 @@ typedef OnAnalyticsEvent = void Function(String event);
5455
/// The [BetterCommandRunner] class uses the config library to provide
5556
/// a more enhanced command line interface for running commands and handling
5657
/// command line arguments, environment variables, and configuration.
57-
class BetterCommandRunner<O extends OptionDefinition, T>
58+
class BetterCommandRunner<O extends OptionDefinition<Object>, T>
5859
extends CommandRunner<T> {
5960
/// Process exit code value for command not found -
6061
/// The specified command was not found or couldn't be located.
6162
static const int exitCodeCommandNotFound = 127;
6263

6364
final MessageOutput? _messageOutput;
6465
final SetLogLevel? _setLogLevel;
65-
final OnBeforeRunCommand? _onBeforeRunCommand;
66+
final OnBeforeRunCommand<O, T>? _onBeforeRunCommand;
6667
OnAnalyticsEvent? _onAnalyticsEvent;
6768

6869
/// The environment variables used for configuration resolution.
@@ -143,7 +144,7 @@ class BetterCommandRunner<O extends OptionDefinition, T>
143144
final MessageOutput? messageOutput =
144145
const MessageOutput(usageLogger: print),
145146
final SetLogLevel? setLogLevel,
146-
final OnBeforeRunCommand? onBeforeRunCommand,
147+
final OnBeforeRunCommand<O, T>? onBeforeRunCommand,
147148
final OnAnalyticsEvent? onAnalyticsEvent,
148149
final int? wrapTextColumn,
149150
final List<O>? globalOptions,
@@ -360,7 +361,7 @@ abstract class BetterCommandRunnerFlags {
360361
);
361362
}
362363

363-
enum StandardGlobalOption<V> implements OptionDefinition<V> {
364+
enum StandardGlobalOption<V extends Object> implements OptionDefinition<V> {
364365
quiet(BetterCommandRunnerFlags.quietOption),
365366
verbose(BetterCommandRunnerFlags.verboseOption),
366367
analytics(BetterCommandRunnerFlags.analyticsOption);

packages/cli_tools/lib/src/documentation_generator/documentation_generator.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
import 'package:config/config.dart' show OptionDefinition;
2+
13
import '../../better_command_runner.dart' show BetterCommandRunner;
24

35
class CommandDocumentationGenerator {
4-
final BetterCommandRunner commandRunner;
6+
final BetterCommandRunner<OptionDefinition<Object>, void> commandRunner;
57

68
CommandDocumentationGenerator(this.commandRunner);
79

packages/cli_tools/pubspec.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ dependencies:
2525
super_string: ^1.0.3
2626

2727
dev_dependencies:
28-
serverpod_lints: '>=1.2.6'
29-
test: ^1.24.0
30-
test_descriptor: ^2.0.2
28+
serverpod_lints: '>=2.7.0'
29+
test: ^1.25.0
30+
test_descriptor: ^2.0.0

0 commit comments

Comments
 (0)