From 240fd6f4a0a442798b61306e18b960dbb17f1d81 Mon Sep 17 00:00:00 2001 From: Marcus Twichel Date: Fri, 10 Oct 2025 10:45:45 -0600 Subject: [PATCH 1/5] feat: add bloc lint to templates with bloc --- very_good_core/__brick__/README.md | 16 ++++++++++++++++ very_good_core/__brick__/analysis_options.yaml | 4 +++- very_good_core/__brick__/pubspec.yaml | 6 ++++-- very_good_flame_game/__brick__/README.md | 16 ++++++++++++++++ .../__brick__/analysis_options.yaml | 4 +++- very_good_flame_game/__brick__/pubspec.yaml | 6 ++++-- very_good_wear_app/__brick__/README.md | 16 ++++++++++++++++ .../__brick__/analysis_options.yaml | 4 +++- very_good_wear_app/__brick__/pubspec.yaml | 8 +++++--- 9 files changed, 70 insertions(+), 10 deletions(-) diff --git a/very_good_core/__brick__/README.md b/very_good_core/__brick__/README.md index e0aa628d..1ad93578 100644 --- a/very_good_core/__brick__/README.md +++ b/very_good_core/__brick__/README.md @@ -55,6 +55,22 @@ $ open coverage/index.html --- +## Bloc Lints ๐Ÿ” + +This project uses the [bloc_lint](https://pub.dev/packages/bloc_lint) package to enforce best practices using [bloc](https://pub.dev/packages/bloc). + +To validate linter errors, run + +```bash +dart run bloc_tools:bloc lint . +``` + +You can also validate with VSCode-based IDEs using the [official bloc extension](https://marketplace.visualstudio.com/items?itemName=FelixAngelov.bloc). + +To learn more, visit https://bloclibrary.dev/lint/ + +--- + ## Working with Translations ๐ŸŒ This project relies on [flutter_localizations][flutter_localizations_link] and follows the [official internationalization guide for Flutter][internationalization_link]. diff --git a/very_good_core/__brick__/analysis_options.yaml b/very_good_core/__brick__/analysis_options.yaml index 08d2fe28..6389d92f 100644 --- a/very_good_core/__brick__/analysis_options.yaml +++ b/very_good_core/__brick__/analysis_options.yaml @@ -1,4 +1,6 @@ -include: package:very_good_analysis/analysis_options.yaml +include: + - package:very_good_analysis/analysis_options.yaml + - package:bloc_lint/recommended.yaml analyzer: exclude: - lib/l10n/gen/* diff --git a/very_good_core/__brick__/pubspec.yaml b/very_good_core/__brick__/pubspec.yaml index 3d18d81d..0a312307 100644 --- a/very_good_core/__brick__/pubspec.yaml +++ b/very_good_core/__brick__/pubspec.yaml @@ -1,5 +1,5 @@ -name: {{project_name.snakeCase()}} -description: {{{description}}} +name: { { project_name.snakeCase() } } +description: { { { description } } } version: 1.0.0+1 publish_to: none @@ -17,7 +17,9 @@ dependencies: intl: ^0.20.2 dev_dependencies: + bloc_lint: ^0.3.2 bloc_test: ^10.0.0 + bloc_tools: ^0.1.0-dev.19 flutter_test: sdk: flutter mocktail: ^1.0.4 diff --git a/very_good_flame_game/__brick__/README.md b/very_good_flame_game/__brick__/README.md index f613cff7..41af8f81 100644 --- a/very_good_flame_game/__brick__/README.md +++ b/very_good_flame_game/__brick__/README.md @@ -55,6 +55,22 @@ $ open coverage/index.html --- +## Bloc Lints ๐Ÿ” + +This project uses the [bloc_lint](https://pub.dev/packages/bloc_lint) package to enforce best practices using [bloc](https://pub.dev/packages/bloc). + +To validate linter errors, run + +```bash +dart run bloc_tools:bloc lint . +``` + +You can also validate with VSCode-based IDEs using the [official bloc extension](https://marketplace.visualstudio.com/items?itemName=FelixAngelov.bloc). + +To learn more, visit https://bloclibrary.dev/lint/ + +--- + ## Working with Translations ๐ŸŒ This project relies on [flutter_localizations][flutter_localizations_link] and follows the [official internationalization guide for Flutter][internationalization_link]. diff --git a/very_good_flame_game/__brick__/analysis_options.yaml b/very_good_flame_game/__brick__/analysis_options.yaml index 699b5f72..994f96d3 100644 --- a/very_good_flame_game/__brick__/analysis_options.yaml +++ b/very_good_flame_game/__brick__/analysis_options.yaml @@ -1,4 +1,6 @@ -include: package:very_good_analysis/analysis_options.yaml +include: + - package:very_good_analysis/analysis_options.yaml + - package:bloc_lint/recommended.yaml analyzer: exclude: - lib/gen/* diff --git a/very_good_flame_game/__brick__/pubspec.yaml b/very_good_flame_game/__brick__/pubspec.yaml index 0c0a8482..ba4111ce 100644 --- a/very_good_flame_game/__brick__/pubspec.yaml +++ b/very_good_flame_game/__brick__/pubspec.yaml @@ -1,5 +1,5 @@ -name: {{project_name.snakeCase()}} -description: {{{description}}} +name: { { project_name.snakeCase() } } +description: { { { description } } } version: 1.0.0+1 publish_to: none @@ -23,6 +23,8 @@ dependencies: intl: ^0.20.2 dev_dependencies: + bloc_lint: ^0.3.2 + bloc_tools: ^0.1.0-dev.19 bloc_test: ^10.0.0 flame_test: ^2.0.3 flutter_test: diff --git a/very_good_wear_app/__brick__/README.md b/very_good_wear_app/__brick__/README.md index 0eb19582..637aece7 100644 --- a/very_good_wear_app/__brick__/README.md +++ b/very_good_wear_app/__brick__/README.md @@ -35,6 +35,22 @@ _\*This template includes only the Android runner, as it is meant to run on Wear --- +## Bloc Lints ๐Ÿ” + +This project uses the [bloc_lint](https://pub.dev/packages/bloc_lint) package to enforce best practices using [bloc](https://pub.dev/packages/bloc). + +To validate linter errors, run + +```bash +dart run bloc_tools:bloc lint . +``` + +You can also validate with VSCode-based IDEs using the [official bloc extension](https://marketplace.visualstudio.com/items?itemName=FelixAngelov.bloc). + +To learn more, visit https://bloclibrary.dev/lint/ + +--- + ## Running Tests ๐Ÿงช To run all unit and widget tests use the following command: diff --git a/very_good_wear_app/__brick__/analysis_options.yaml b/very_good_wear_app/__brick__/analysis_options.yaml index 08d2fe28..6389d92f 100644 --- a/very_good_wear_app/__brick__/analysis_options.yaml +++ b/very_good_wear_app/__brick__/analysis_options.yaml @@ -1,4 +1,6 @@ -include: package:very_good_analysis/analysis_options.yaml +include: + - package:very_good_analysis/analysis_options.yaml + - package:bloc_lint/recommended.yaml analyzer: exclude: - lib/l10n/gen/* diff --git a/very_good_wear_app/__brick__/pubspec.yaml b/very_good_wear_app/__brick__/pubspec.yaml index 89cc394a..ae223fc6 100644 --- a/very_good_wear_app/__brick__/pubspec.yaml +++ b/very_good_wear_app/__brick__/pubspec.yaml @@ -1,5 +1,5 @@ -name: {{project_name.snakeCase()}} -description: {{{description}}} +name: { { project_name.snakeCase() } } +description: { { { description } } } version: 1.0.0+1 publish_to: none @@ -7,7 +7,7 @@ environment: sdk: ^3.9.0 dependencies: - bloc: ^9.0.1 + bloc: ^9.0.1 flutter: sdk: flutter flutter_bloc: ^9.1.1 @@ -17,6 +17,8 @@ dependencies: wearable_rotary: ^2.0.2 dev_dependencies: + bloc_lint: ^0.3.2 + bloc_tools: ^0.1.0-dev.19 bloc_test: ^10.0.0 flutter_test: sdk: flutter From 1c085220a3b1195af1f55ba729c8c031c45df34d Mon Sep 17 00:00:00 2001 From: Marcus Twichel Date: Fri, 10 Oct 2025 10:52:19 -0600 Subject: [PATCH 2/5] integrate to CI --- very_good_core/__brick__/.github/workflows/main.yaml | 3 ++- very_good_flame_game/__brick__/.github/workflows/main.yaml | 3 ++- very_good_wear_app/__brick__/.github/workflows/main.yaml | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/very_good_core/__brick__/.github/workflows/main.yaml b/very_good_core/__brick__/.github/workflows/main.yaml index 44d43a27..240eaf41 100644 --- a/very_good_core/__brick__/.github/workflows/main.yaml +++ b/very_good_core/__brick__/.github/workflows/main.yaml @@ -1,4 +1,4 @@ -name: {{project_name.snakeCase()}} +name: { { project_name.snakeCase() } } concurrency: group: ${{#mustacheCase}}github.workflow{{/mustacheCase}}-${{#mustacheCase}}github.ref{{/mustacheCase}} @@ -20,6 +20,7 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: flutter_version: "3.35.x" + setup: dart run bloc_tools:bloc lint . spell-check: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 diff --git a/very_good_flame_game/__brick__/.github/workflows/main.yaml b/very_good_flame_game/__brick__/.github/workflows/main.yaml index 3d273333..11a0e02c 100644 --- a/very_good_flame_game/__brick__/.github/workflows/main.yaml +++ b/very_good_flame_game/__brick__/.github/workflows/main.yaml @@ -1,4 +1,4 @@ -name: {{project_name.snakeCase()}} +name: { { project_name.snakeCase() } } concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -20,6 +20,7 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: flutter_version: "3.35.x" + setup: dart run bloc_tools:bloc lint . spell-check: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 diff --git a/very_good_wear_app/__brick__/.github/workflows/main.yaml b/very_good_wear_app/__brick__/.github/workflows/main.yaml index 3d273333..11a0e02c 100644 --- a/very_good_wear_app/__brick__/.github/workflows/main.yaml +++ b/very_good_wear_app/__brick__/.github/workflows/main.yaml @@ -1,4 +1,4 @@ -name: {{project_name.snakeCase()}} +name: { { project_name.snakeCase() } } concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -20,6 +20,7 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: flutter_version: "3.35.x" + setup: dart run bloc_tools:bloc lint . spell-check: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 From b2aef6390267ec062506ce7b1b21adfa0f388254 Mon Sep 17 00:00:00 2001 From: Marcus Twichel Date: Fri, 10 Oct 2025 11:14:41 -0600 Subject: [PATCH 3/5] fix formatting --- very_good_core/__brick__/.github/workflows/main.yaml | 2 +- very_good_core/__brick__/pubspec.yaml | 4 ++-- very_good_flame_game/__brick__/.github/workflows/main.yaml | 2 +- very_good_flame_game/__brick__/pubspec.yaml | 4 ++-- very_good_wear_app/__brick__/.github/workflows/main.yaml | 2 +- very_good_wear_app/__brick__/pubspec.yaml | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/very_good_core/__brick__/.github/workflows/main.yaml b/very_good_core/__brick__/.github/workflows/main.yaml index 240eaf41..1115858d 100644 --- a/very_good_core/__brick__/.github/workflows/main.yaml +++ b/very_good_core/__brick__/.github/workflows/main.yaml @@ -1,4 +1,4 @@ -name: { { project_name.snakeCase() } } +name: {{project_name.snakeCase()}} concurrency: group: ${{#mustacheCase}}github.workflow{{/mustacheCase}}-${{#mustacheCase}}github.ref{{/mustacheCase}} diff --git a/very_good_core/__brick__/pubspec.yaml b/very_good_core/__brick__/pubspec.yaml index 0a312307..475e5cef 100644 --- a/very_good_core/__brick__/pubspec.yaml +++ b/very_good_core/__brick__/pubspec.yaml @@ -1,5 +1,5 @@ -name: { { project_name.snakeCase() } } -description: { { { description } } } +name: {{project_name.snakeCase()}} +description: {{{description}}} version: 1.0.0+1 publish_to: none diff --git a/very_good_flame_game/__brick__/.github/workflows/main.yaml b/very_good_flame_game/__brick__/.github/workflows/main.yaml index 11a0e02c..50902e62 100644 --- a/very_good_flame_game/__brick__/.github/workflows/main.yaml +++ b/very_good_flame_game/__brick__/.github/workflows/main.yaml @@ -1,4 +1,4 @@ -name: { { project_name.snakeCase() } } +name: {{project_name.snakeCase()}} concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/very_good_flame_game/__brick__/pubspec.yaml b/very_good_flame_game/__brick__/pubspec.yaml index ba4111ce..23f12857 100644 --- a/very_good_flame_game/__brick__/pubspec.yaml +++ b/very_good_flame_game/__brick__/pubspec.yaml @@ -1,5 +1,5 @@ -name: { { project_name.snakeCase() } } -description: { { { description } } } +name: {{project_name.snakeCase()}} +description: {{{description}}} version: 1.0.0+1 publish_to: none diff --git a/very_good_wear_app/__brick__/.github/workflows/main.yaml b/very_good_wear_app/__brick__/.github/workflows/main.yaml index 11a0e02c..50902e62 100644 --- a/very_good_wear_app/__brick__/.github/workflows/main.yaml +++ b/very_good_wear_app/__brick__/.github/workflows/main.yaml @@ -1,4 +1,4 @@ -name: { { project_name.snakeCase() } } +name: {{project_name.snakeCase()}} concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/very_good_wear_app/__brick__/pubspec.yaml b/very_good_wear_app/__brick__/pubspec.yaml index ae223fc6..f4fe2edf 100644 --- a/very_good_wear_app/__brick__/pubspec.yaml +++ b/very_good_wear_app/__brick__/pubspec.yaml @@ -1,5 +1,5 @@ -name: { { project_name.snakeCase() } } -description: { { { description } } } +name: {{project_name.snakeCase()}} +description: {{{description}}} version: 1.0.0+1 publish_to: none From 6a5eb724bb80ce0eca4939d5ded307f2557b5946 Mon Sep 17 00:00:00 2001 From: Marcus Twichel Date: Thu, 16 Oct 2025 16:12:32 -0500 Subject: [PATCH 4/5] feat: use new run_bloc_lint option --- very_good_core/__brick__/.github/workflows/main.yaml | 2 +- very_good_flame_game/__brick__/.github/workflows/main.yaml | 2 +- very_good_wear_app/__brick__/.github/workflows/main.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/very_good_core/__brick__/.github/workflows/main.yaml b/very_good_core/__brick__/.github/workflows/main.yaml index 1115858d..c97517f1 100644 --- a/very_good_core/__brick__/.github/workflows/main.yaml +++ b/very_good_core/__brick__/.github/workflows/main.yaml @@ -20,7 +20,7 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: flutter_version: "3.35.x" - setup: dart run bloc_tools:bloc lint . + run_bloc_lint: true spell-check: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 diff --git a/very_good_flame_game/__brick__/.github/workflows/main.yaml b/very_good_flame_game/__brick__/.github/workflows/main.yaml index 50902e62..11eaf0e5 100644 --- a/very_good_flame_game/__brick__/.github/workflows/main.yaml +++ b/very_good_flame_game/__brick__/.github/workflows/main.yaml @@ -20,7 +20,7 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: flutter_version: "3.35.x" - setup: dart run bloc_tools:bloc lint . + run_bloc_lint: true spell-check: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 diff --git a/very_good_wear_app/__brick__/.github/workflows/main.yaml b/very_good_wear_app/__brick__/.github/workflows/main.yaml index 50902e62..11eaf0e5 100644 --- a/very_good_wear_app/__brick__/.github/workflows/main.yaml +++ b/very_good_wear_app/__brick__/.github/workflows/main.yaml @@ -20,7 +20,7 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: flutter_version: "3.35.x" - setup: dart run bloc_tools:bloc lint . + run_bloc_lint: true spell-check: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 From d8813fa04445ab15023ed7ef5b8fcc354b332d00 Mon Sep 17 00:00:00 2001 From: Marcus Twichel Date: Wed, 22 Oct 2025 08:54:32 -0600 Subject: [PATCH 5/5] fix analysis errors --- very_good_flame_game/__brick__/pubspec.yaml | 2 +- very_good_wear_app/__brick__/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/very_good_flame_game/__brick__/pubspec.yaml b/very_good_flame_game/__brick__/pubspec.yaml index 23f12857..bd87b5fa 100644 --- a/very_good_flame_game/__brick__/pubspec.yaml +++ b/very_good_flame_game/__brick__/pubspec.yaml @@ -24,8 +24,8 @@ dependencies: dev_dependencies: bloc_lint: ^0.3.2 - bloc_tools: ^0.1.0-dev.19 bloc_test: ^10.0.0 + bloc_tools: ^0.1.0-dev.19 flame_test: ^2.0.3 flutter_test: sdk: flutter diff --git a/very_good_wear_app/__brick__/pubspec.yaml b/very_good_wear_app/__brick__/pubspec.yaml index f4fe2edf..c2a147ba 100644 --- a/very_good_wear_app/__brick__/pubspec.yaml +++ b/very_good_wear_app/__brick__/pubspec.yaml @@ -18,8 +18,8 @@ dependencies: dev_dependencies: bloc_lint: ^0.3.2 - bloc_tools: ^0.1.0-dev.19 bloc_test: ^10.0.0 + bloc_tools: ^0.1.0-dev.19 flutter_test: sdk: flutter mocktail: ^1.0.4