Skip to content
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

Merged
merged 4 commits into from
Jan 10, 2025

Conversation

tatsutakein
Copy link
Member

@tatsutakein tatsutakein commented Jan 10, 2025

Issue

概要

パッケージ管理部分について melos から Pub workspaces へ移行します。
melos は引き続きスクリプトの実行時に利用する形の想定です。

レビュー観点

  • コードに違和感がないか
  • 変更箇所に過不足がないか

レビューレベル

  • Lv0: まったく見ないで Approve する
  • Lv1: ぱっとみて違和感がないかチェックして Approve する
  • Lv2: 仕様レベルまで理解して、仕様通りに動くかある程度検証して Approve する
  • Lv3: 実際に環境で動作確認したうえで Approve する

レビュー優先度

  • すぐに見てもらいたい ( hotfix など ) 🚀
  • 今日中に見てもらいたい 🚗
  • 今日〜明日中で見てもらいたい 🚶
  • 数日以内で見てもらいたい 🐢

参考リンク

Summary by CodeRabbit

リリースノート

  • 依存関係の管理

    • パッケージの依存関係解決方法を更新
    • ローカルパス依存から柔軟なバージョン指定に変更
    • ワークスペース内の依存関係解決を最適化
  • ツール変更

    • Melosからdart pub getへの移行
    • 依存関係管理プロセスを簡素化
  • 設定の更新

    • 複数のpubspec.yamlファイルでresolution: workspaceを追加
    • .gitignoreファイルから特定の無視設定を削除

これらの変更により、プロジェクトの依存関係管理がより柔軟で管理しやすくなりました。

Copy link

coderabbitai bot commented Jan 10, 2025

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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.

📥 Commits

Reviewing files that changed from the base of the PR and between 45b88ee and 73c1fec.

⛔ 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)

Walkthrough

このプルリクエストは、Dart プロジェクトの依存関係管理を Melos から Pub Workspaces に移行するための包括的な変更を行っています。主な変更点は、pubspec.yaml ファイルにおける依存関係の指定方法の変更と、.gitignore ファイルからの Melos 関連の設定の削除です。依存関係の解決方法を、ローカルパス参照から any バージョン指定と resolution: workspace の追加に変更しています。

Changes

ファイル 変更の概要
.github/actions/setup-pub/action.yml ステップ名を「Setup Melos」から「Setup workspaces」に変更し、コマンドを melos bootstrap から dart pub get --enforce-lockfile に変更。新たに melos bootstrap:post_hooks コマンドを追加。
app/*/pubspec.yaml 依存関係を path から any に変更、resolution: workspace を追加。
core/*/pubspec.yaml 依存関係を path から any に変更、resolution: workspace を追加。
feature/*/pubspec.yaml 依存関係を path から any に変更、resolution: workspace を追加。
*/.gitignore Melos 関連の設定を削除。
plopfile.mjs Melos コマンドを Dart Pub コマンドに変更。

Assessment against linked issues

目的 対応状況 説明
Pub workspaces への移行

Poem

🐰 依存関係の旅、新たな道
メロスから pub へ、コードは歌う
ワークスペース広がる、自由の風
パッケージたちは踊る、軽やかに
コードラビットの夢、実現する 🌈


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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

Commands

Command Description
/catalog この Pull Request の Catalog を Firebase Hosting にデプロイ
/gen コード生成コマンドを実行

@@ -1,6 +1,5 @@
name: core_analytics
description: This package provides functions for analysis.
version: 1.0.0
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

memo-badge

内部でのみ利用するパッケージであることを示すために敢えて削除。

dependencies:
built_value: 8.9.2
core_network_model:
path: ../../core/network_model
core_network_model: any
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

memo-badge

内部への依存だということを示すために敢えて any での指定。

Comment on lines +42 to +47
dependency_overrides:
file: 7.0.0
meta: 1.15.0
path: 1.9.1
test_api: 0.7.2
web: 0.4.2
Copy link
Member Author

@tatsutakein tatsutakein Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

memo-badge

dependency_overrides はルートの pubspec.yaml にまとめると管理が楽そう。

Comment on lines -30 to -32

# Melos related
/pubspec_overrides.yaml
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

memo-badge

melos bs を利用しなくなったため削除。
Pub workspaces と親和性が高まる Melos 7.x.x 系では melos bs 時に pubspec_overrides.yaml を生成しなくなるようなので、どちらにしろ削除で問題なさそう。

shell: bash
run: |
dart pub global activate melos
melos bootstrap
dart pub get --enforce-lockfile
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

memo-badge

既存の melos bs 部分を dart pub get に置き換え。

@tatsutakein tatsutakein force-pushed the feature/GH-777 branch 2 times, most recently from 4a75dc2 to 71f92e7 Compare January 10, 2025 01:58
@tatsutakein tatsutakein marked this pull request as ready for review January 10, 2025 02:01
@tatsutakein tatsutakein requested a review from a team as a code owner January 10, 2025 02:01
Copy link

@coderabbitai coderabbitai bot left a 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を使用した依存関係の指定には潜在的なリスクがあります。以下の対応を推奨します:

  1. バージョン制約の追加
  2. パッケージの更新方針の文書化
core/database_isar/pubspec.yaml (1)

8-13: 依存関係の管理方法が適切です

外部パッケージ(isar)の固定バージョンを維持しながら、内部依存関係をワークスペース管理に移行する方法は適切です。この方針を他のパッケージでも踏襲することを推奨します。

Also applies to: 21-21

feature/onboarding/pubspec.yaml (1)

1-1: Pub workspaces移行に関する全体的な提案

移行自体は適切に行われていますが、以下の点について検討をお勧めします:

  1. バージョン管理戦略の文書化

    • 内部パッケージの互換性管理方針
    • バージョニングルール
    • 破壊的変更の扱い方
  2. CI/CDパイプラインの更新

    • Pub workspacesに対応したビルドプロセス
    • 依存関係の検証手順
  3. チーム開発ガイドラインの更新

    • 新しい依存関係管理フローの説明
    • トラブルシューティングガイド
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 455fca0 and 71f92e7.

⛔ 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-run

Length 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 3

Length 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=tree

Length 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 1

Length 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に設定されています。これはワークスペース内での柔軟な解決を可能にしますが、以下の点について確認をお願いします:

  1. パッケージ間の互換性の管理方法
  2. 将来的なバージョン管理の戦略

Also applies to: 27-27

app/catalog/pubspec.yaml (1)

10-11: 依存関係の移行が適切に行われています

workspaceの設定と依存関係の更新が一貫して行われており、以下の点が確認できます:

  1. 内部パッケージ(core_、feature_)がanyに更新
  2. 外部パッケージ(cupertino_icons、dynamic_color等)は具体的なバージョンを維持

Also applies to: 13-22

core/designsystem/pubspec.yaml (1)

9-10: core パッケージの依存関係が適切に更新されています

workspace設定の追加と依存関係の更新が適切に行われています。特に:

  1. core_commoncore_testingの依存関係がanyに更新
  2. 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の設定と依存関係の更新が適切に行われており、以下の点が確認できます:

  1. 内部パッケージの依存関係がanyに更新
  2. アセット関連の設定が正しく維持されている

Also applies to: 12-16

.github/actions/setup-pub/action.yml (2)

26-30: ワークスペース設定のステップ名が適切に更新されています

Melosからワークスペースへの移行を反映した命名になっており、PRの目的と一致しています。


29-30: 依存関係の解決方法が適切に更新されています

dart pub get --enforce-lockfileを使用することで、再現性のある依存関係の解決が保証されます。また、CIでロックファイルを強制することは良いプラクティスです。

ただし、以下の点について確認をお願いします:

  1. melosはスクリプト実行用に残されていますが、他のmelos関連の設定(例:melos.yaml)が適切に更新されているか
  2. 新しいワークスペース構成でのビルドが正常に完了するか
✅ Verification successful

melosの設定とワークスペース構成が適切に更新されていることを確認しました

  1. melos.yamlが存在し、適切に設定されています:

    • パッケージ構造の定義
    • 必要なスクリプトとワークフロー
    • ブートストラップフックの設定
  2. ワークスペース構成も正しく定義されており、新しいビルドシステムで正常に動作するはずです。

🏁 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
fi

Length 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

core/analytics_firebase/pubspec.yaml Show resolved Hide resolved
core/ui/pubspec.yaml Show resolved Hide resolved
@tatsutakein tatsutakein merged commit 920e6b2 into main Jan 10, 2025
15 checks passed
@tatsutakein tatsutakein deleted the feature/GH-777 branch January 10, 2025 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature] パッケージ依存解決部分を melos -> Pub workspaces へ移行
1 participant