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.
(Note: if you're using use_packs
AND chruby
, you'll need to instead call pks
everywhere you'd normally call packs
.)
``` 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
listpacks List packs based on configuration in packwerk.yml
deletecache rm -rf
on your cache directory, usually tmp/cache/packwerk
listincluded_files 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
packwerk
has a VSCode Extension: https://github.com/rubyatscale/packwerk-vscode/tree/main
Using the extension with packs
is straightforward and results in a much more responsive experience.
Directions:
- Follow INSTALLATION.md instructions to install packs
- Follow the configuration directions to configure the extension to use packs
instead of the ruby gem by setting the executable to packs check
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