A 100% Rust implementation of packwerk, a gradual modularization platform for ruby.
packwerk
on most projectspacks
is the same as packwerk
.packwerk
on most projectsOnce installed and added to your $PATH
, just call packs
to see the CLI help message and documentation.
``` Welcome! Please see https://github.com/alexevanczuk/packs for more information!
Usage: packs [OPTIONS]
Commands:
greet Just saying hi
check Look for violations in the codebase
update Update packagetodo.yml files with the current violations
validate Look for validation errors in the codebase
generatecache Generate a cache to be used by the ruby implementation of packwerk
listpacks List packs based on configuration in packwerk.yml
deletecache rm -rf
on your cache directory, usually tmp/cache/packwerk
listincludedfiles List analyzed files based on configuration in packwerk.yml
help Print this message or the help of the given subcommand(s)
Options:
--project-root
See INSTALLATION.md
As packs
is still a work-in-progress, it's possible it will not produce the same results as the ruby implementation (see Not Yet Supported). If so, please file an issue – I'd love to try to support your use case!
Instructions:
- Follow directions above to install packs
- Run packs delete_cache
- Run packs update
- Confirm the output of git diff
is empty
- Please file an issue if it's not!
Me too! This is my first Rust project, so I'd love to have feedback, advice, and contributions!
Rust is a low-level language with high-level abstractions, a rich type system, with a focus on memory safety through innovative compile type checks on memory usage.
If you're new to Rust, don't be intimidated! https://www.rust-lang.org has tons of great learning resources.
If you'd like to contribute but don't know where to start, please reach out! I'd love to help you get started.
See BENCHMARKS.md