-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: パッケージ依存解決部分を melos -> Pub workspaces へ移行 #780
Conversation
Warning Rate limit exceeded@tatsutakein has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 3 minutes and 19 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (26)
📒 Files selected for processing (49)
Walkthroughこのプルリクエストは、Dart プロジェクトの依存関係管理を Melos から Pub Workspaces に移行するための包括的な変更を行っています。主な変更点は、 Changes
Assessment against linked issues
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
Commands
|
@@ -1,6 +1,5 @@ | |||
name: core_analytics | |||
description: This package provides functions for analysis. | |||
version: 1.0.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dependencies: | ||
built_value: 8.9.2 | ||
core_network_model: | ||
path: ../../core/network_model | ||
core_network_model: any |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dependency_overrides: | ||
file: 7.0.0 | ||
meta: 1.15.0 | ||
path: 1.9.1 | ||
test_api: 0.7.2 | ||
web: 0.4.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
# Melos related | ||
/pubspec_overrides.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shell: bash | ||
run: | | ||
dart pub global activate melos | ||
melos bootstrap | ||
dart pub get --enforce-lockfile |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4a75dc2
to
71f92e7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (4)
core/ui/pubspec.yaml (1)
27-27
: テスト用依存関係の設定が適切です
core_testing
パッケージの設定が Pub workspaces の形式に正しく更新されています。ただし、以下の提案を検討してください:
- テスト用パッケージのバージョン管理戦略を README に記載することで、他の開発者の理解を促進できます。
core/database/pubspec.yaml (1)
11-12
: 依存関係のバージョン制約について他のパッケージと同様に、
any
を使用した依存関係の指定には潜在的なリスクがあります。以下の対応を推奨します:
- バージョン制約の追加
- パッケージの更新方針の文書化
core/database_isar/pubspec.yaml (1)
8-13
: 依存関係の管理方法が適切です外部パッケージ(isar)の固定バージョンを維持しながら、内部依存関係をワークスペース管理に移行する方法は適切です。この方針を他のパッケージでも踏襲することを推奨します。
Also applies to: 21-21
feature/onboarding/pubspec.yaml (1)
1-1
: Pub workspaces移行に関する全体的な提案移行自体は適切に行われていますが、以下の点について検討をお勧めします:
バージョン管理戦略の文書化
- 内部パッケージの互換性管理方針
- バージョニングルール
- 破壊的変更の扱い方
CI/CDパイプラインの更新
- Pub workspacesに対応したビルドプロセス
- 依存関係の検証手順
チーム開発ガイドラインの更新
- 新しい依存関係管理フローの説明
- トラブルシューティングガイド
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (26)
app/backend/pubspec.lock
is excluded by!**/*.lock
app/catalog/pubspec.lock
is excluded by!**/*.lock
app/mobile/pubspec.lock
is excluded by!**/*.lock
core/analytics/pubspec.lock
is excluded by!**/*.lock
core/analytics_firebase/pubspec.lock
is excluded by!**/*.lock
core/authenticator/pubspec.lock
is excluded by!**/*.lock
core/common/pubspec.lock
is excluded by!**/*.lock
core/data/pubspec.lock
is excluded by!**/*.lock
core/database/pubspec.lock
is excluded by!**/*.lock
core/database_isar/pubspec.lock
is excluded by!**/*.lock
core/datastore/pubspec.lock
is excluded by!**/*.lock
core/designsystem/pubspec.lock
is excluded by!**/*.lock
core/domain/pubspec.lock
is excluded by!**/*.lock
core/model/pubspec.lock
is excluded by!**/*.lock
core/network/pubspec.lock
is excluded by!**/*.lock
core/network_model/pubspec.lock
is excluded by!**/*.lock
core/testing/pubspec.lock
is excluded by!**/*.lock
core/ui/pubspec.lock
is excluded by!**/*.lock
feature/auth/pubspec.lock
is excluded by!**/*.lock
feature/debug/pubspec.lock
is excluded by!**/*.lock
feature/feed/pubspec.lock
is excluded by!**/*.lock
feature/home/pubspec.lock
is excluded by!**/*.lock
feature/onboarding/pubspec.lock
is excluded by!**/*.lock
feature/quest/pubspec.lock
is excluded by!**/*.lock
feature/settings/pubspec.lock
is excluded by!**/*.lock
pubspec.lock
is excluded by!**/*.lock
📒 Files selected for processing (49)
.github/actions/setup-pub/action.yml
(1 hunks)app/backend/pubspec.yaml
(1 hunks)app/catalog/pubspec.yaml
(1 hunks)app/mobile/pubspec.yaml
(1 hunks)core/analytics/.gitignore
(0 hunks)core/analytics/pubspec.yaml
(1 hunks)core/analytics_firebase/.gitignore
(0 hunks)core/analytics_firebase/pubspec.yaml
(1 hunks)core/authenticator/.gitignore
(0 hunks)core/authenticator/pubspec.yaml
(1 hunks)core/common/.gitignore
(0 hunks)core/common/pubspec.yaml
(1 hunks)core/data/.gitignore
(0 hunks)core/data/pubspec.yaml
(1 hunks)core/database/.gitignore
(0 hunks)core/database/pubspec.yaml
(1 hunks)core/database_isar/.gitignore
(0 hunks)core/database_isar/pubspec.yaml
(1 hunks)core/datastore/.gitignore
(0 hunks)core/datastore/pubspec.yaml
(1 hunks)core/designsystem/.gitignore
(0 hunks)core/designsystem/pubspec.yaml
(2 hunks)core/domain/.gitignore
(0 hunks)core/domain/pubspec.yaml
(1 hunks)core/model/.gitignore
(0 hunks)core/model/pubspec.yaml
(1 hunks)core/network/.gitignore
(0 hunks)core/network/pubspec.yaml
(1 hunks)core/network_model/.gitignore
(0 hunks)core/network_model/pubspec.yaml
(1 hunks)core/testing/.gitignore
(0 hunks)core/testing/pubspec.yaml
(1 hunks)core/ui/.gitignore
(0 hunks)core/ui/pubspec.yaml
(2 hunks)feature/auth/.gitignore
(0 hunks)feature/auth/pubspec.yaml
(2 hunks)feature/debug/.gitignore
(0 hunks)feature/debug/pubspec.yaml
(2 hunks)feature/feed/.gitignore
(0 hunks)feature/feed/pubspec.yaml
(2 hunks)feature/home/.gitignore
(0 hunks)feature/home/pubspec.yaml
(2 hunks)feature/onboarding/.gitignore
(0 hunks)feature/onboarding/pubspec.yaml
(1 hunks)feature/quest/.gitignore
(0 hunks)feature/quest/pubspec.yaml
(2 hunks)feature/settings/.gitignore
(0 hunks)feature/settings/pubspec.yaml
(2 hunks)plopfile.mjs
(2 hunks)
💤 Files with no reviewable changes (22)
- feature/onboarding/.gitignore
- core/database/.gitignore
- feature/quest/.gitignore
- core/network_model/.gitignore
- core/database_isar/.gitignore
- feature/debug/.gitignore
- core/network/.gitignore
- core/model/.gitignore
- core/common/.gitignore
- feature/auth/.gitignore
- core/analytics_firebase/.gitignore
- feature/feed/.gitignore
- feature/settings/.gitignore
- core/authenticator/.gitignore
- core/data/.gitignore
- core/analytics/.gitignore
- feature/home/.gitignore
- core/ui/.gitignore
- core/designsystem/.gitignore
- core/testing/.gitignore
- core/domain/.gitignore
- core/datastore/.gitignore
✅ Files skipped from review due to trivial changes (4)
- core/common/pubspec.yaml
- core/network_model/pubspec.yaml
- core/network/pubspec.yaml
- core/model/pubspec.yaml
🔇 Additional comments (27)
core/analytics_firebase/pubspec.yaml (1)
9-9
: Pub workspaces の設定が適切に追加されています!
resolution: workspace
の追加により、Pub workspaces での依存関係の解決が正しく設定されています。core/ui/pubspec.yaml (1)
9-10
: Pub workspaces の設定が適切に追加されています!Pub workspaces への移行に必要な設定が正しく追加されています。
plopfile.mjs (1)
Line range hint
13-25
: カスタムアクションの変更が適切に実装されていますMelosからの移行に伴い、
melosBootstrap
からdartPubGet
へのアクション名の変更と、実行コマンドの更新が適切に行われています。core/testing/pubspec.yaml (2)
8-8
: workspaceの設定が追加されていますPub workspacesへの移行に伴う適切な設定変更です。
11-12
: 依存関係の指定方法を確認してください
any
を使用した依存関係の指定は柔軟性がありますが、予期しない破壊的変更を取り込む可能性があります。バージョン制約の追加を検討してください。core/analytics/pubspec.yaml (1)
8-11
: workspace設定と依存関係の更新が適切ですバージョン番号の削除は意図的な選択であることが過去のレビューコメントから確認できます。workspace設定と依存関係の更新も移行計画に沿っています。
core/datastore/pubspec.yaml (1)
8-12
: 依存関係の管理方法について確認が必要ですPub workspacesへの移行に伴い、依存関係の指定が
any
に変更されていますが、これは潜在的なリスクを含んでいる可能性があります。推奨事項:
- ワークスペースのルートレベルでバージョン制約を適切に設定していることを確認してください
- 互換性を確保するため、主要なバージョン更新時にはテストを実施してください
core/authenticator/pubspec.yaml (1)
8-12
: 変更内容は適切ですPub workspacesへの移行パターンに従って適切に実装されています。内部の依存関係(core_commonとcore_model)に対する変更も一貫性があります。
core/domain/pubspec.yaml (1)
8-14
: テスト依存関係の管理について開発依存関係(core_testing)も含めて適切にワークスペース管理に移行されていますが、以下の点に注意が必要です:
- CIパイプラインでのテスト実行時に依存関係が正しく解決されることを確認してください
- テストパッケージのバージョン互換性を維持してください
Also applies to: 19-19
✅ Verification successful
テスト依存関係の構成が適切に設定されています
- core_testingパッケージが共通のテストユーティリティとして正しく参照されています
- CIパイプラインのテスト実行設定が適切に構成されています
- ワークスペース解決により、一貫したバージョン管理が保証されています
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # テスト依存関係の解決を確認 dart pub get --dry-runLength of output: 119
Script:
#!/bin/bash # Search for pubspec files and their content fd pubspec.yaml --exec cat {} \; # Look for test-related configurations rg "test|core_testing" -A 3 -B 3Length of output: 61803
core/data/pubspec.yaml (1)
8-15
: 依存関係の構造について検討が必要ですこのパッケージは多くのcore依存関係を持っています。以下の点について確認をお願いします:
- 循環依存関係が発生していないことを確認
- 依存関係グラフの複雑さを最小限に抑える検討
Also applies to: 20-20
✅ Verification successful
依存関係の構造は適切です
依存関係グラフを分析した結果、以下が確認できました:
- 循環依存関係は存在しません
- レイヤー構造が明確で、クリーンアーキテクチャの原則に従っています
- core_dataは適切なインフラストラクチャレイヤーに依存しています
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # 依存関係グラフの分析 dart pub deps --style=treeLength of output: 123
Script:
#!/bin/bash # Find all pubspec.yaml files echo "=== All pubspec.yaml files ===" fd pubspec.yaml # Check dependencies in core packages echo -e "\n=== Dependencies in core packages ===" for f in $(fd pubspec.yaml -t f); do echo -e "\n--- $f ---" grep -A 10 "dependencies:" "$f" done # Check if any core package depends on core_data echo -e "\n=== Checking for core_data dependencies ===" rg "core_data:" -A 1Length of output: 13497
feature/home/pubspec.yaml (1)
9-10
: 依存関係の解決方法の変更が適切に実装されていますPub workspacesへの移行として、以下の変更が適切に行われています:
- workspace解決の追加
- 内部パッケージの依存関係を
any
に変更Also applies to: 12-16, 27-27
app/backend/pubspec.yaml (1)
9-10
: 依存関係の設定が適切ですPub workspacesの仕様に従って正しく実装されています。
Also applies to: 13-13
feature/settings/pubspec.yaml (1)
9-10
: 依存関係の構成が適切ですPub workspacesへの移行として必要な変更が全て実装されています。
Also applies to: 12-16, 27-27
feature/debug/pubspec.yaml (1)
9-10
: 依存関係の設定が正しく更新されていますPub workspacesの仕様に沿って、適切に依存関係が更新されています。
Also applies to: 12-17, 28-28
feature/auth/pubspec.yaml (1)
9-10
: 依存関係の更新が適切に行われていますPub workspacesへの移行に必要な変更が正しく実装され、以下の点が確認できます:
- workspace解決の追加
- 内部パッケージの依存関係を
any
に変更- アセットパスの維持
Also applies to: 12-16, 28-28, 35-35
feature/feed/pubspec.yaml (2)
9-10
: Pub workspacesの設定が追加されました
resolution: workspace
の追加により、依存関係の解決がPub workspacesによって管理されるようになります。
12-16
: 依存関係の指定方法について確認が必要ですすべての内部パッケージの依存関係が
any
に設定されています。これはワークスペース内での柔軟な解決を可能にしますが、以下の点について確認をお願いします:
- パッケージ間の互換性の管理方法
- 将来的なバージョン管理の戦略
Also applies to: 27-27
app/catalog/pubspec.yaml (1)
10-11
: 依存関係の移行が適切に行われていますworkspaceの設定と依存関係の更新が一貫して行われており、以下の点が確認できます:
- 内部パッケージ(core_、feature_)が
any
に更新- 外部パッケージ(cupertino_icons、dynamic_color等)は具体的なバージョンを維持
Also applies to: 13-22
core/designsystem/pubspec.yaml (1)
9-10
: core パッケージの依存関係が適切に更新されていますworkspace設定の追加と依存関係の更新が適切に行われています。特に:
core_common
とcore_testing
の依存関係がany
に更新- Flutter関連の依存関係が正しく維持されている
Also applies to: 12-12, 24-24
feature/quest/pubspec.yaml (1)
9-10
: 依存関係の更新パターンが一貫しています他のパッケージと同様のパターンで更新が行われており、移行が適切に実施されています。
Also applies to: 12-16, 30-30
feature/onboarding/pubspec.yaml (1)
9-10
: アセット設定を維持しながら依存関係が更新されていますworkspaceの設定と依存関係の更新が適切に行われており、以下の点が確認できます:
- 内部パッケージの依存関係が
any
に更新- アセット関連の設定が正しく維持されている
Also applies to: 12-16
.github/actions/setup-pub/action.yml (2)
26-30
: ワークスペース設定のステップ名が適切に更新されていますMelosからワークスペースへの移行を反映した命名になっており、PRの目的と一致しています。
29-30
: 依存関係の解決方法が適切に更新されています
dart pub get --enforce-lockfile
を使用することで、再現性のある依存関係の解決が保証されます。また、CIでロックファイルを強制することは良いプラクティスです。ただし、以下の点について確認をお願いします:
- melosはスクリプト実行用に残されていますが、他のmelos関連の設定(例:melos.yaml)が適切に更新されているか
- 新しいワークスペース構成でのビルドが正常に完了するか
✅ Verification successful
melosの設定とワークスペース構成が適切に更新されていることを確認しました
melos.yamlが存在し、適切に設定されています:
- パッケージ構造の定義
- 必要なスクリプトとワークフロー
- ブートストラップフックの設定
ワークスペース構成も正しく定義されており、新しいビルドシステムで正常に動作するはずです。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # melosの設定ファイルとワークスペース構成を確認 # melos.yamlの存在確認 if [ -f "melos.yaml" ]; then echo "melos.yaml found:" cat melos.yaml fi # ワークスペースのルートpubspec.yamlを確認 if [ -f "pubspec.yaml" ]; then echo "Root pubspec.yaml found:" cat pubspec.yaml fiLength of output: 3998
app/mobile/pubspec.yaml (4)
10-11
: ワークスペース解決の設定が追加されていますPub workspacesの仕様に従って
resolution: workspace
が適切に設定されています。
13-22
: core依存関係の指定方法が適切に更新されていますパス指定から
any
バージョン指定への移行が適切に行われています。これはPub workspacesでの推奨される方法です。
26-32
: feature依存関係の指定方法が適切に更新されていますfeature モジュールの依存関係もPub workspacesの仕様に従って適切に更新されています。
7-8
: SDKとFlutterのバージョン制約を確認してくださいenvironment: sdk: 3.6.0 flutter: 3.27.1指定されているバージョンが現時点で利用可能かどうか確認が必要です。
✅ Verification successful
SDKとFlutterのバージョンは問題ありません
指定されているDart SDK 3.6.0とFlutter 3.27.1は、現在利用可能な最新の安定版であり、ワークスペース全体で一貫して使用されています。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Flutter SDKバージョンの確認 # FlutterのリリースAPIをチェック curl -s "https://api.github.com/repos/flutter/flutter/releases" | \ jq -r '.[].tag_name' | grep -E "^3\.27\." # Dart SDKのリリースをチェック curl -s "https://api.github.com/repos/dart-lang/sdk/releases" | \ jq -r '.[].tag_name' | grep -E "^3\.6\."Length of output: 212
Script:
#!/bin/bash # Check pubspec files and Flutter configuration echo "=== Checking pubspec.lock ===" fd pubspec.lock --exec cat {} echo -e "\n=== Checking other pubspec files ===" fd pubspec.yaml --exec cat {} echo -e "\n=== Checking Flutter version files ===" fd "version|.fvm" --exec cat {}Length of output: 69591
71f92e7
to
45b88ee
Compare
45b88ee
to
6fff5c5
Compare
6fff5c5
to
73c1fec
Compare
Issue
概要
パッケージ管理部分について melos から Pub workspaces へ移行します。
melos は引き続きスクリプトの実行時に利用する形の想定です。
レビュー観点
レビューレベル
レビュー優先度
参考リンク
Summary by CodeRabbit
リリースノート
依存関係の管理
ツール変更
設定の更新
resolution: workspace
を追加.gitignore
ファイルから特定の無視設定を削除これらの変更により、プロジェクトの依存関係管理がより柔軟で管理しやすくなりました。