v0.0.1
π Pacta v0.0.1 β Initial Release
Architecture Testing & Architecture-as-Code for Python
We're excited to announce the first release of Pacta β a static analysis tool that enforces architectural rules in your codebase, catching violations in pull requests rather than post-mortems.
β οΈ Experimental Release β Breaking changes may occur in future versions.
Highlights
Pacta helps teams maintain clean architecture by:
- Defining architecture as code using a simple YAML model
- Enforcing dependency rules between architectural layers
- Tracking violations over time with snapshot versioning
- Failing only on new violations using baseline mode (so you're not blocked by legacy debt)
Features
Architecture Modeling
- Define your system using YAML-based architecture models (
architecture.yml) - Model containers (services/components) with code mappings
- Define architectural layers (UI, Application, Domain, Infrastructure)
- Support for Domain-Driven Design bounded contexts
Rule Enforcement
- Custom rule DSL for defining architectural constraints
- Layer dependency enforcement (e.g., Domain cannot import from Infrastructure)
- Multiple severity levels: ERROR, WARNING, INFO
- Both forbid and allow actions for fine-grained control
Snapshot & Baseline
- Save architecture snapshots and version them like code
- Baseline mode: fail only on new violations, not legacy debt
- Snapshot diffing to understand what changed between versions
- Git integration for automatic commit/branch metadata
Reporting
-
Human-readable text output with color support
-
JSON output for CI/CD integration
-
Quiet mode (summary only) and verbose mode (full details)
-
Clear exit codes:
0β success1β violations2β error
Plugin Architecture
- Extensible analyzer interface for multi-language support
- Automatic analyzer discovery via Python entry points
- Stable configuration contract for plugin compatibility
Supported Languages
| Language | Status |
|---|---|
| Python | β Full support |
| Java | π Planned |
| Go | π Planned |
| TypeScript | π Planned |
| C# | π Planned |
Installation
Command:
pip install pactaRequirements: Python 3.10+
Documentation
Full documentation is available: https://akhundmurad.github.io/pacta/
β οΈ Known Limitations
- Python is the only supported language in this release
- Breaking changes may occur before v1.0
- AGPL-3.0 license (copyleft)
Contributing
Contributions are welcome! Please see the repository for contribution guidelines.
License
AGPL-3.0-only