Migrate to pub workspaces (#4021)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated all Dart SDK constraints to "^3.6.0", added a unified
workspace resolution key, and removed obsolete local dependency override
configurations.
- **CI/CD Improvements**
- Streamlined workflows and refined testing/coverage scripts by removing
outdated steps.
- **Tooling Enhancements**
- Introduced a new build generation script to automate build-runner
tasks.
- **Refactor**
- Applied minor code style refinements, including simplified constructor
syntax and streamlined control flow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Remi Rousselet
2025-03-23 22:27:51 +01:00
committed by GitHub
parent 146c0068e8
commit c2121e9b07
88 changed files with 657 additions and 814 deletions

View File

@ -44,15 +44,8 @@ jobs:
- packages/hooks_riverpod
- packages/hooks_riverpod/example
- packages/riverpod_annotation
# TODO(rrousselGit) update riverpod_cli test setup to be supported by the CI
# - packages/riverpod_cli
- packages/riverpod_generator
- packages/riverpod_generator/integration/build_yaml
# TODO(rrousselGit) update riverpod_graph test setup to be supported by the CI
# - packages/riverpod_graph
# TODO(rousselGit) blocked by https://github.com/invertase/dart_custom_lint/issues/16
# - packages/riverpod_lint_flutter_test
# - website
steps:
- uses: actions/checkout@v3.1.0
@ -67,8 +60,6 @@ jobs:
run: echo "PUB_CACHE="$HOME/.pub-cache"" >> $GITHUB_ENV
- name: Install dependencies
run: flutter pub get
- if: matrix.package_path == 'packages/riverpod_generator'
run: rm -rf integration
- name: Install dependencies (website/third-party)
run: |
if test -d "third-party"; then

View File

@ -2,6 +2,8 @@ name: Check code-generation
on:
pull_request:
paths-ignore:
- "**.md"
push:
branches:
- master
@ -25,11 +27,10 @@ jobs:
run: echo "PUB_CACHE="$HOME/.pub-cache"" >> $GITHUB_ENV
- name: Install dependencies
run: flutter pub get
- run: flutter pub get
working-directory: packages/riverpod_lint_flutter_test
- run: dart pub global activate melos
- run: dart pub run melos bootstrap
- run: dart pub run melos run generate
- run: ./scripts/generate.sh
- name: check there are no uncommitted changes
run: git diff --exit-code
run: git diff --exit-code

View File

@ -4,7 +4,9 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
flutter:
@ -14,11 +16,3 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
dependency_overrides:
flutter_riverpod:
path: ../packages/flutter_riverpod
hooks_riverpod:
path: ../packages/hooks_riverpod
riverpod:
path: ../packages/riverpod

View File

@ -4,9 +4,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
cupertino_icons: ^1.0.2
flutter:
@ -34,13 +36,5 @@ dev_dependencies:
riverpod_lint:
path: ../../packages/riverpod_lint
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
flutter:
uses-material-design: true

View File

@ -1,16 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_lint,riverpod_analyzer_utils
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
riverpod_analyzer_utils:
path: ../../packages/riverpod_analyzer_utils
riverpod_lint:
path: ../../packages/riverpod_lint
riverpod_annotation:
path: ../../packages/riverpod_annotation
riverpod_generator:
path: ../../packages/riverpod_generator

View File

@ -3,9 +3,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
crypto: ^3.0.0
cupertino_icons: ^1.0.2
@ -14,7 +16,7 @@ dependencies:
sdk: flutter
flutter_hooks: ^0.18.0
flutter_portal: ^0.4.0
flutter_svg: ^0.21.0+1
flutter_svg: ^1.1.4
freezed_annotation: ^3.0.0
hooks_riverpod:
path: ../../packages/hooks_riverpod
@ -31,14 +33,6 @@ dev_dependencies:
riverpod_lint:
path: ../../packages/riverpod_lint
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
flutter:
uses-material-design: true
assets:

View File

@ -1,16 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_lint,riverpod_analyzer_utils
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
riverpod_analyzer_utils:
path: ../../packages/riverpod_analyzer_utils
riverpod_lint:
path: ../../packages/riverpod_lint
riverpod_annotation:
path: ../../packages/riverpod_annotation
riverpod_generator:
path: ../../packages/riverpod_generator

View File

@ -3,9 +3,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
dio: ^5.1.1
flutter:

View File

@ -1,16 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_lint,riverpod_analyzer_utils
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
riverpod_analyzer_utils:
path: ../../packages/riverpod_analyzer_utils
riverpod_lint:
path: ../../packages/riverpod_lint
riverpod_annotation:
path: ../../packages/riverpod_annotation
riverpod_generator:
path: ../../packages/riverpod_generator

View File

@ -3,7 +3,9 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
build_runner: ^2.0.6

View File

@ -1,14 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,riverpod,riverpod_lint,riverpod_analyzer_utils
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
riverpod:
path: ../../packages/riverpod
riverpod_analyzer_utils:
path: ../../packages/riverpod_analyzer_utils
riverpod_lint:
path: ../../packages/riverpod_lint
riverpod_annotation:
path: ../../packages/riverpod_annotation
riverpod_generator:
path: ../../packages/riverpod_generator

View File

@ -3,9 +3,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
dio: ^5.1.1
flutter:

View File

@ -1,16 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_lint,riverpod_analyzer_utils
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
riverpod_analyzer_utils:
path: ../../packages/riverpod_analyzer_utils
riverpod_lint:
path: ../../packages/riverpod_lint
riverpod_annotation:
path: ../../packages/riverpod_annotation
riverpod_generator:
path: ../../packages/riverpod_generator

View File

@ -3,9 +3,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
flutter:
sdk: flutter
@ -24,13 +26,5 @@ dev_dependencies:
riverpod_lint:
path: ../../packages/riverpod_lint
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
flutter:
uses-material-design: true

View File

@ -1,16 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_lint,riverpod_analyzer_utils
dependency_overrides:
flutter_riverpod:
path: ../../packages/flutter_riverpod
hooks_riverpod:
path: ../../packages/hooks_riverpod
riverpod:
path: ../../packages/riverpod
riverpod_analyzer_utils:
path: ../../packages/riverpod_analyzer_utils
riverpod_lint:
path: ../../packages/riverpod_lint
riverpod_annotation:
path: ../../packages/riverpod_annotation
riverpod_generator:
path: ../../packages/riverpod_generator

View File

@ -1,24 +0,0 @@
name: my_project
packages:
- website
- packages/**
- examples/**
- tools/**
scripts:
# we voluntarily do not use melos inside goldens
postbootstrap: |
cd MELOS_ROOT_PATH/packages/riverpod_cli/fixtures/notifiers/input &&
flutter pub get &&
cd MELOS_ROOT_PATH/packages/riverpod_cli/fixtures/notifiers/golden &&
flutter pub get &&
cd MELOS_ROOT_PATH/packages/riverpod_cli/fixtures/unified_syntax/input &&
flutter pub get &&
cd MELOS_ROOT_PATH/packages/riverpod_cli/fixtures/unified_syntax/golden &&
flutter pub get &&
cd MELOS_ROOT_PATH/benchmarks && flutter pub get
generate:
run: melos exec --depends-on=build_runner -- "dart run build_runner build -d"
description: Build all generated files for Dart & Flutter packages in this project.

View File

@ -4,7 +4,9 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
flutter:
@ -20,13 +22,5 @@ dev_dependencies:
flutter_test:
sdk: flutter
dependency_overrides:
flutter_riverpod:
path: ../../flutter_riverpod
hooks_riverpod:
path: ../../hooks_riverpod
riverpod:
path: ../../riverpod
flutter:
uses-material-design: true

View File

@ -1,8 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod
dependency_overrides:
flutter_riverpod:
path: ../../flutter_riverpod
hooks_riverpod:
path: ../../hooks_riverpod
riverpod:
path: ../../riverpod

View File

@ -10,9 +10,11 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=3.6.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
resolution: workspace
dependencies:
collection: ^1.15.0
flutter:

View File

@ -1,4 +0,0 @@
# melos_managed_dependency_overrides: riverpod
dependency_overrides:
riverpod:
path: ../riverpod

View File

@ -32,7 +32,7 @@ class Counter extends StateNotifier<int> {
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
const MyApp({super.key});
@override
Widget build(BuildContext context) {
@ -43,7 +43,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends HookConsumerWidget {
const MyHomePage({Key? key}) : super(key: key);
const MyHomePage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {

View File

@ -4,9 +4,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
flutter:
sdk: flutter

View File

@ -1,8 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod
dependency_overrides:
flutter_riverpod:
path: ../../flutter_riverpod
hooks_riverpod:
path: ..
riverpod:
path: ../../riverpod

View File

@ -10,9 +10,11 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=3.6.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
resolution: workspace
dependencies:
collection: ^1.15.0
flutter:

View File

@ -1,6 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,riverpod
dependency_overrides:
flutter_riverpod:
path: ../flutter_riverpod
riverpod:
path: ../riverpod

View File

@ -22,8 +22,7 @@ import 'models.dart';
/// A Provider that reads a json file and decodes it into a [Configuration].
final configurationProvider = FutureProvider<Configuration>((_) async {
final file =
await File.fromUri(Uri.file('configuration.json')) //
final file = await File.fromUri(Uri.file('configuration.json')) //
.readAsString();
final map = json.decode(file) as Map<String, Object?>;

View File

@ -30,14 +30,13 @@ class Repository {
Future<List<Comic>> fetchComics() async {
final timestamp = DateTime.now().millisecondsSinceEpoch;
final hash =
md5
.convert(
utf8.encode(
'$timestamp${_configuration.privateKey}${_configuration.publicKey}',
),
)
.toString();
final hash = md5
.convert(
utf8.encode(
'$timestamp${_configuration.privateKey}${_configuration.publicKey}',
),
)
.toString();
final result = await _client.get<Map<String, Object?>>(
'http://gateway.marvel.com/v1/public/comics',

File diff suppressed because it is too large Load Diff

View File

@ -21,24 +21,32 @@ Map<String, dynamic> _$ConfigurationToJson(_Configuration instance) =>
};
_MarvelResponse _$MarvelResponseFromJson(Map<String, dynamic> json) =>
_MarvelResponse(MarvelData.fromJson(json['data'] as Map<String, dynamic>));
_MarvelResponse(
MarvelData.fromJson(json['data'] as Map<String, dynamic>),
);
Map<String, dynamic> _$MarvelResponseToJson(_MarvelResponse instance) =>
<String, dynamic>{'data': instance.data};
<String, dynamic>{
'data': instance.data,
};
_MarvelData _$MarvelDataFromJson(Map<String, dynamic> json) => _MarvelData(
(json['results'] as List<dynamic>)
.map((e) => e as Map<String, dynamic>)
.toList(),
);
(json['results'] as List<dynamic>)
.map((e) => e as Map<String, dynamic>)
.toList(),
);
Map<String, dynamic> _$MarvelDataToJson(_MarvelData instance) =>
<String, dynamic>{'results': instance.results};
<String, dynamic>{
'results': instance.results,
};
_Comic _$ComicFromJson(Map<String, dynamic> json) =>
_Comic(id: (json['id'] as num).toInt(), title: json['title'] as String);
_Comic _$ComicFromJson(Map<String, dynamic> json) => _Comic(
id: (json['id'] as num).toInt(),
title: json['title'] as String,
);
Map<String, dynamic> _$ComicToJson(_Comic instance) => <String, dynamic>{
'id': instance.id,
'title': instance.title,
};
'id': instance.id,
'title': instance.title,
};

View File

@ -2,7 +2,9 @@ name: riverpod_example
publish_to: "none"
environment:
sdk: ">=3.7.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
crypto: ^3.0.0

View File

@ -1,4 +0,0 @@
# melos_managed_dependency_overrides: riverpod
dependency_overrides:
riverpod:
path: ..

View File

@ -10,7 +10,9 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=3.6.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
collection: ^1.18.0

View File

@ -1,3 +0,0 @@
dependency_overrides:
# necessary for mockito
analyzer: ^7.0.0

View File

@ -7,7 +7,9 @@ funding:
version: 0.5.10
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
analyzer: ^7.0.0
@ -24,5 +26,4 @@ dev_dependencies:
build_runner: ^2.3.2
build_test: ^2.1.5
freezed: ^3.0.2
lints: ^2.0.0
test: ^1.21.7

View File

@ -1,9 +0,0 @@
dependency_overrides:
flutter_riverpod:
path: ../flutter_riverpod
hooks_riverpod:
path: ../hooks_riverpod
riverpod:
path: ../riverpod
riverpod_annotation:
path: ../riverpod_annotation

View File

@ -3,7 +3,9 @@ description: A sample command-line application.
publish_to: none
environment:
sdk: ">=2.18.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
analyzer: ^7.0.0
@ -18,21 +20,6 @@ dev_dependencies:
build_runner: ^2.3.2
build_test: ^2.1.5
freezed: ^3.0.2
lints: ^2.0.0
riverpod_analyzer_utils:
riverpod_generator:
test: ^1.21.7
dependency_overrides:
flutter_riverpod:
path: ../flutter_riverpod
hooks_riverpod:
path: ../hooks_riverpod
riverpod:
path: ../riverpod
riverpod_analyzer_utils:
path: ../riverpod_analyzer_utils
riverpod_annotation:
path: ../riverpod_annotation
riverpod_generator:
path: ../riverpod_generator

View File

@ -1,14 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_analyzer_utils,riverpod_annotation,riverpod_generator
dependency_overrides:
flutter_riverpod:
path: ../flutter_riverpod
hooks_riverpod:
path: ../hooks_riverpod
riverpod:
path: ../riverpod
riverpod_analyzer_utils:
path: ../riverpod_analyzer_utils
riverpod_annotation:
path: ../riverpod_annotation
riverpod_generator:
path: ../riverpod_generator

View File

@ -7,7 +7,9 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=3.6.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
meta: ^1.7.0

View File

@ -1,4 +0,0 @@
# melos_managed_dependency_overrides: riverpod
dependency_overrides:
riverpod:
path: ../riverpod

View File

@ -3,7 +3,9 @@ description: A sample command-line application.
publish_to: none
environment:
sdk: ">=2.18.4 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
riverpod:

View File

@ -1,10 +0,0 @@
# melos_managed_dependency_overrides: riverpod,riverpod_annotation,riverpod_generator
dependency_overrides:
riverpod:
path: ../../../riverpod
riverpod_analyzer_utils:
path: ../../../riverpod_analyzer_utils
riverpod_annotation:
path: ../../../riverpod_annotation
riverpod_generator:
path: ../..

View File

@ -7,7 +7,9 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=3.6.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
analyzer: ^7.0.0

View File

@ -1,8 +0,0 @@
# melos_managed_dependency_overrides: riverpod,riverpod_annotation
dependency_overrides:
riverpod:
path: ../riverpod
riverpod_annotation:
path: ../riverpod_annotation
riverpod_analyzer_utils:
path: ../riverpod_analyzer_utils

View File

@ -115,7 +115,7 @@ Future<String> compile(String source) async {
name: test_app
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod_annotation: ^2.3.3

View File

@ -8,7 +8,9 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=2.15.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
analyzer: ^7.0.0

View File

@ -2,7 +2,9 @@ name: riverpod_graph_golden_addition
publish_to: none
environment:
sdk: ">=2.15.0 <3.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
riverpod:

View File

@ -1,4 +0,0 @@
# melos_managed_dependency_overrides: riverpod
dependency_overrides:
riverpod:
path: ../../../../../riverpod

View File

@ -4,9 +4,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=2.17.0 <3.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
cupertino_icons: ^1.0.2
flutter:
@ -20,11 +22,5 @@ dev_dependencies:
flutter_test:
sdk: flutter
dependency_overrides:
flutter_riverpod:
path: ../../../../../../packages/flutter_riverpod
riverpod:
path: ../../../../../../packages/riverpod
flutter:
uses-material-design: true

View File

@ -1,6 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,riverpod
dependency_overrides:
flutter_riverpod:
path: ../../../../../../packages/flutter_riverpod
riverpod:
path: ../../../../../../packages/riverpod

View File

@ -4,9 +4,11 @@ description: A new Flutter project.
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=1.17.0"
resolution: workspace
dependencies:
cupertino_icons: ^1.0.2
flutter:

View File

@ -1,12 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,riverpod,riverpod_annotation,riverpod_generator
dependency_overrides:
flutter_riverpod:
path: ../../../../../flutter_riverpod
riverpod:
path: ../../../../../riverpod
riverpod_analyzer_utils:
path: ../../../../../../packages/riverpod_analyzer_utils
riverpod_annotation:
path: ../../../../../riverpod_annotation
riverpod_generator:
path: ../../../../../riverpod_generator

View File

@ -144,11 +144,9 @@ class ConvertToStatefulBaseWidget extends RiverpodAssist {
case StatefulBaseWidgetType.consumerStatefulWidget:
case StatefulBaseWidgetType.statefulHookConsumerWidget:
baseStateName = 'ConsumerState';
break;
case StatefulBaseWidgetType.statefulHookWidget:
case StatefulBaseWidgetType.statefulWidget:
baseStateName = 'State';
break;
}
// Split the class into two classes right before the build method
@ -202,11 +200,9 @@ class $createdStateClassName extends $baseStateName<${widgetClass.name}> {
case StatefulBaseWidgetType.consumerStatefulWidget:
case StatefulBaseWidgetType.statefulHookConsumerWidget:
baseStateName = 'ConsumerState';
break;
case StatefulBaseWidgetType.statefulHookWidget:
case StatefulBaseWidgetType.statefulWidget:
baseStateName = 'State';
break;
}
final createStateMethod = widgetClass.members

View File

@ -106,7 +106,6 @@ class ConvertToStatelessBaseWidget extends RiverpodAssist {
', WidgetRef ref',
);
}
break;
case StatelessBaseWidgetType.hookWidget:
case StatelessBaseWidgetType.statelessWidget:
// If the build method has a ref, remove it
@ -118,7 +117,6 @@ class ConvertToStatelessBaseWidget extends RiverpodAssist {
),
);
}
break;
}
});
}
@ -258,14 +256,12 @@ class ConvertToStatelessBaseWidget extends RiverpodAssist {
parameterRange,
'BuildContext context, WidgetRef ref',
);
break;
case StatelessBaseWidgetType.hookWidget:
case StatelessBaseWidgetType.statelessWidget:
builder.addSimpleReplacement(
parameterRange,
'BuildContext context',
);
break;
}
});
}

View File

@ -8,7 +8,9 @@ funding:
- https://github.com/sponsors/rrousselGit/
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
analyzer: ^7.0.0
@ -23,7 +25,7 @@ dependencies:
yaml: ^3.1.1
dev_dependencies:
hotreloader: ^3.0.5
hotreloader: ^4.0.0
mockito: ^5.0.0
test: ^1.21.1
watcher: ^1.0.1

View File

@ -1,6 +0,0 @@
# melos_managed_dependency_overrides: riverpod
dependency_overrides:
riverpod:
path: ../riverpod
riverpod_analyzer_utils:
path: ../riverpod_analyzer_utils

View File

@ -2,7 +2,7 @@ name: riverpod_lint_flutter_test
publish_to: none
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,19 +0,0 @@
# melos_managed_dependency_overrides: riverpod_generator,riverpod,flutter_riverpod,hooks_riverpod,riverpod_annotation,riverpod_lint
dependency_overrides:
riverpod_generator:
path: ../riverpod_generator
riverpod:
path: ../riverpod
flutter_riverpod:
path: ../flutter_riverpod
hooks_riverpod:
path: ../hooks_riverpod
riverpod_analyzer_utils:
path: ../riverpod_analyzer_utils
riverpod_annotation:
path: ../riverpod_annotation
riverpod_lint:
path: ../riverpod_lint
# Fix flutter_test conflict for now
test_api: ^0.7.4

View File

@ -1,7 +1,38 @@
name: melos_root
name: workspace
publish_to: none
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
dev_dependencies:
melos: ^3.0.0
custom_lint:
riverpod_lint:
workspace:
- benchmarks
- examples/counter
- examples/marvel
- examples/pub
- examples/random_number
- examples/stackoverflow
- examples/todos
- packages/flutter_riverpod/example
- packages/flutter_riverpod
- packages/hooks_riverpod/example
- packages/hooks_riverpod
- packages/riverpod/example
- packages/riverpod
- packages/riverpod_analyzer_utils
- packages/riverpod_analyzer_utils_tests
- packages/riverpod_annotation
- packages/riverpod_generator/integration/build_yaml
- packages/riverpod_generator
- packages/riverpod_graph
- packages/riverpod_graph/test/integration/addition/golden
- packages/riverpod_graph/test/integration/consumer_widget/golden
- packages/riverpod_graph/test/integration/generated/golden
- packages/riverpod_lint
# Custom_lint doesn't handle plugins from workspaces yet
# - packages/riverpod_lint_flutter_test
- tools/generate_providers
- website

View File

@ -5,6 +5,4 @@ set -e
dart pub global activate coverage
dart test --coverage="coverage"
format_coverage --lcov --in=coverage --out=coverage.lcov --packages=.dart_tool/package_config.json --report-on=lib
dart pub global run coverage:test_with_coverage

24
scripts/generate.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# Array to store background process IDs
pids=()
# Find all pubspec.yaml files and store them in an array
files=($(find . -type f -name "pubspec.yaml"))
# Loop through each file and run build_runner in parallel
for file in "${files[@]}"; do
if grep -q "build_runner" "$file"; then
echo "Found build_runner in $file. Running build_runner..."
dir=$(dirname "$file")
(cd "$dir" && flutter pub run build_runner build -d) &
pids+=($!)
else
echo "build_runner not found in $file. Skipping build."
fi
done
# Wait for all background processes to complete
for pid in "${pids[@]}"; do
wait "$pid"
done

View File

@ -707,7 +707,6 @@ class AutoDisposeStreamNotifierProviderFamilyBuilder {
}
""",
);
break;
case 'flutter_riverpod':
matrix = Tuple3(
DisposeType.values,
@ -728,7 +727,6 @@ import 'package:flutter/foundation.dart';
import 'internals.dart';
""",
);
break;
default:
throw UnsupportedError('Unknown package ${args.first}');
}
@ -772,7 +770,6 @@ extension on Tuple3<DisposeType, StateDetails, ProviderType> {
case DisposeType.autoDispose:
return 'AutoDispose${item2.ref}';
case DisposeType.none:
default:
return item2.ref;
}
}

View File

@ -2,7 +2,9 @@ name: generate_providers
publish_to: "none"
environment:
sdk: ">=2.19.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
dart_style: ^3.0.0

View File

@ -7,7 +7,7 @@ import {
const codegen = `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^${riverpodVersion}
@ -22,7 +22,7 @@ dev_dependencies:
const raw = `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^${riverpodVersion}

View File

@ -9,7 +9,7 @@ import {
function plain(riverpod: string) {
return `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:
@ -26,7 +26,7 @@ dev_dependencies:
function codegen(riverpod: string) {
return `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -61,7 +61,7 @@ dependencies:
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
flutter: ">=2.0.0"
dependencies:
@ -77,7 +77,7 @@ dependencies:
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^1.0.0-dev.10

View File

@ -76,7 +76,7 @@ Dann führe `flutter pub get` aus.
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.3

View File

@ -71,7 +71,7 @@ Luego ejecuta `flutter pub get`.
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.3

View File

@ -55,7 +55,7 @@ Exécutez ensuite la commande `flutter pub get`.
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
flutter: ">=2.0.0"
dependencies:
@ -71,7 +71,7 @@ Exécutez ensuite la commande `flutter pub get`.
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^1.0.0-dev.10

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.1

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.1

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -7,7 +7,7 @@ import {
const codegen = `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^${riverpodVersion}
@ -22,7 +22,7 @@ dev_dependencies:
const raw = `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^${riverpodVersion}

View File

@ -9,7 +9,7 @@ import {
function plain(riverpod: string) {
return `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:
@ -26,7 +26,7 @@ dev_dependencies:
function codegen(riverpod: string) {
return `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.3

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.3

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -1,6 +1,6 @@
name: my_app_name
environment:
sdk: ">=2.17.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -75,7 +75,7 @@ dependencies:
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.3

View File

@ -70,7 +70,7 @@ Ardından flutter pub get komutunu çalıştırın.
```yaml title="pubspec.yaml"
environment:
sdk: ">=2.12.0-0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^2.1.3

View File

@ -7,7 +7,7 @@ import {
const codegen = `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^${riverpodVersion}
@ -22,7 +22,7 @@ dev_dependencies:
const raw = `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
dependencies:
riverpod: ^${riverpodVersion}

View File

@ -9,7 +9,7 @@ import {
function plain(riverpod: string) {
return `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:
@ -26,7 +26,7 @@ dev_dependencies:
function codegen(riverpod: string) {
return `name: my_app_name
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
flutter: ">=3.0.0"
dependencies:

View File

@ -2,7 +2,9 @@ name: website_snippets
publish_to: "none"
environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.6.0
resolution: workspace
dependencies:
collection: ^1.15.0

View File

@ -1,14 +0,0 @@
# melos_managed_dependency_overrides: flutter_riverpod,hooks_riverpod,riverpod,riverpod_annotation,riverpod_generator,cosmic_frontmatter
dependency_overrides:
flutter_riverpod:
path: ../packages/flutter_riverpod
hooks_riverpod:
path: ../packages/hooks_riverpod
riverpod:
path: ../packages/riverpod
riverpod_annotation:
path: ../packages/riverpod_annotation
riverpod_generator:
path: ../packages/riverpod_generator
riverpod_analyzer_utils:
path: ../packages/riverpod_analyzer_utils