Packs は、大規模なRubyおよびRailsアプリケーションを独立したパッケージへ分割・整理するための拡張可能なパッケージング規格です。
パッケージの管理
# 新規packパッケージを作成
bin/packs create packs/profiles
# パッケージの公開APIファイルを指定
bin/packs make_public packs/profiles/app/services/create_profile_service.rb
# パッケージ間でファイルを移動
bin/packs move packs/billing packs/profiles/app/services/billing_service.rb
# パック間の依存関係宣言を追加
bin/packs add_dependency packs/orders packs/inventory
パッケージ境界の検証
PacksはPackwerkと連携し、循環依存やプライベートコードへの不正アクセスを防止します:
# 循環依存が存在しないことを検証
bin/packs validate
# プライバシーおよび依存関係違反をチェック
bin/packs check packs/profiles
# 既存の違反を package_todo.yml に記録(ベースライン化)
bin/packs update
Lintおよび違反監査
# package_todo.yml ファイルのフォーマットを検証
bin/packs lint_package_todo_yml_files
# package.yml 設定ファイルのフォーマットを検証
bin/packs lint_package_yml_files
# パック内の主な違反タイプを一覧表示
bin/packs list_top_violations dependency packs/profiles