[flutter_app]: PathNotFoundException: Cannot open file, path = '/home/runner/work/flutter-mobile-project-template/flutter-mobile-project-template/packages/cores/core/lib/src/exception/provider/app_exception_notifier_provider.g.dart' (OS Error: No such file or directory, errno = 2)
Whether exec should order the execution of the script in multiple packages based on the dependency graph of the packages. The script will be executed in leaf packages first and then in packages that depend on them and so on. This is useful for example, for a script that generates code in multiple packages, which depend on each other. Defaults to false.
これに関する既存の Issue はありますか?
動機
GitHub ワークフロー check-dff > Regenerate code ステップが失敗する
最新の main ブランチを反映していても、ワークフローが失敗することが多々ありました。
失敗したワークフローのログ: https://github.com/yumemi-inc/flutter-mobile-project-template/actions/runs/7620279114/job/20754744487
ワークフローを再試行することを複数回トライすると成功するようになることを確認しました。
失敗する原因
エラーログを見る感じでは、flutter_app パッケージの build runner が走っているときに cores_core の生成ファイルが開けないと言われていることから、
app_exception_notifier_provider.g.dart
ファイルがまだ生成されていない可能性があります。flutter_app
パッケージはcores_core
パッケージに依存しているため、cores_core
パッケージの生成ファイルが完了してから、flutter_app
パッケージの build_runner が走るようにしたほうがいいのではないかと思いました。提案
パッケージ間の依存関係が影響する melos exec コマンドに以下の設定を追加します。
concurrency
参考資料: https://melos.invertase.dev/configuration/scripts#concurrency
orderDependents
参考資料: https://melos.invertase.dev/configuration/scripts#orderdependents