A Python tool to enforce dependencies, using modular architecture π Open source π Installable via pip π§ Able to be adopted incrementally - β‘ Implemented with no runtime impact βΎοΈ Interoperable with your existing systems π¦ Written in rust
This PR introduces the root_module configuration option to tach.toml.
It takes one of four values:
allow: this matches the previous behavior, treating <root> as a catch-all rollup module which must be explicitly declared as a dependency and must declare its own dependencies on other modules.
ignore: this disables all checks related to the <root> module. Tach check will never fail due to code in the <root> module, and Tach sync will never add <root> to tach.toml
forbid: this makes Tach stricter, and disallows any reference to the <root> module in tach.toml. This means that Tach check will fail if any reference exists, and Tach sync will fail if it would need to add a <root> reference.
dependenciesonly: this makes Tach slightly stricter, and will forbid any module from listing <root> as a dependency, but allow <root> to appear in tach.toml and require it to declare its own dependencies.
Fixes #310
This PR introduces the
root_module
configuration option totach.toml
.It takes one of four values:
allow
: this matches the previous behavior, treating<root>
as a catch-all rollup module which must be explicitly declared as a dependency and must declare its own dependencies on other modules.ignore
: this disables all checks related to the<root>
module. Tach check will never fail due to code in the<root>
module, and Tach sync will never add<root>
to tach.tomlforbid
: this makes Tach stricter, and disallows any reference to the<root>
module in tach.toml. This means that Tach check will fail if any reference exists, and Tach sync will fail if it would need to add a<root>
reference.dependenciesonly
: this makes Tach slightly stricter, and will forbid any module from listing<root>
as a dependency, but allow<root>
to appear in tach.toml and require it to declare its own dependencies.