This page is not available in every language. Missing translations are disabled in the language selector.

Quick reference

Packs Ruby Modularization Cheatsheet

A quick reference guide for Packs: Ruby modular application packaging specification, public API encapsulation, dependency boundaries, and linting.

· Published

Packs is an extensible packaging standard and toolchain for organizing large Ruby and Ruby on Rails applications into modular packages.

Managing Packages

# Create a new pack package
bin/packs create packs/profiles

# Add a public API file to a package
bin/packs make_public packs/profiles/app/services/create_profile_service.rb

# Move files between packages
bin/packs move packs/billing packs/profiles/app/services/billing_service.rb

# Add a dependency declaration between packs
bin/packs add_dependency packs/orders packs/inventory

Validating Package Boundaries

Packs integrates with Packwerk to prevent cyclic dependencies and privacy leaks:

# Validate that packs have no circular dependencies
bin/packs validate

# Check for privacy and dependency violations
bin/packs check packs/profiles

# Update package_todo.yml with existing violations baseline
bin/packs update

Linting & Violation Audits

# Check format of package_todo.yml files
bin/packs lint_package_todo_yml_files

# Check package.yml configurations
bin/packs lint_package_yml_files

# List the top violation types in a pack
bin/packs list_top_violations dependency packs/profiles

References

Related topics