Packs هو معيار ومجموعة أدوات لتنظيم تطبيقات Ruby و Rails الكبيرة في حزم نمطية مستقلة.
إدارة الحزم (Managing Packages)
# إنشاء حزمة pack جديدة
bin/packs create packs/profiles
# إضافة ملف واجهة برمجة عامة (public 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
التحقق من حدود الحزم (Validating Boundaries)
يتكامل Packs مع Packwerk لمنع التبعيات الدائرية وتسريبات الخصوصية:
# التحقق من عدم وجود تبعيات دائرية بين الحزم
bin/packs validate
# فحص انتهاكات الخصوصية والتبعيات
bin/packs check packs/profiles
# تحديث ملف package_todo.yml بالانتهاكات الحالية كخط أساس
bin/packs update
التدقيق ومراجعة الانتهاكات (Linting & Audits)
# التحقق من تنسيق ملفات 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