Implement Tach to define module boundaries #295
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📥 Pull Request
📘 Description
This PR introduces Tach to maintain clean module boundaries. It is added as an optional dev dependency and as a CI check in GitHub Actions.
🎯 Goal
Particularly for new contributors, it is helpful to have an automatic check to validate that new changes do not violate the intended architecture of the project. Tach also serves as documentation of the logical flow of the project through
tach.yml
andtach show
🔍 Additional Context
https://docs.gauge.sh
If changes are made which introduce new cross-module dependencies, they will cause
tach check
to fail and point out the offending imports. If they represent an intentional design change, they can be acknowledged withtach sync
.🧪 Testing
Running
tach check
passes with this configuration.