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
Линтинг и аудит нарушений
# Проверить формат файлов 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