Releases: pacta-dev/pacta-cli
v0.0.7
v0.0.6
0.0.6 - 2026-01-29
Added
- reporting: Add GitHub PR markdown renderer with trends and diff detail names
- cli: Add GitHub report format with snapshot-based trends summary
- action: Add composite GitHub Action for Pacta architecture review
- action: Add target_dir input to control scan root
Documentation
- Add GitHub Action integration guide and document github output format
- ci-integration: Add GitHub Action comment example and document target_dir input
Miscellaneous
- Update changelog for v0.0.5
- ci: Simplify changelog PR workflow
- cli: Remove unused future annotations import from _trends.py
- ci: Update test-action workflow to use simple-layered-app example
- examples: Track pacta snapshots for simple-layered-app
- gitignore: Remove test-action GitHub workflow
- examples/simple-layered-app: Remove pacta snapshot objects and latest ref
Ci
- Add workflow to test action and support local pacta install option
v0.0.5
0.0.5 - 2026-01-27
Added
- cli: Add
checkcommand to evaluate rules against saved snapshots - cli: Document new
pacta checkcommand and two-step snapshot workflow
Changed
- Format argparse argument and remove unused import
Documentation
- Add new example docs pages and example projects (layered, hexagonal, legacy migration)
- Update CLI and examples for snapshot save/check workflow
Fixed
- check: Update existing snapshot object in-place and save optional extra ref
- ci: Use --force-with-lease when pushing changelog updates
Testing
- cli: Reformat assertion for save refs call args
v0.0.4
What's Changed
- chore(ci): create PR for changelog updates instead of pushing to main by @akhundMurad in #8
- docs: refresh README and getting started with architecture snapshot/h… by @akhundMurad in #10
Full Changelog: v0.0.3...v0.0.4
v0.0.3
🚀 Release v0.0.3
This release focuses on history tracking, trend visualization, documentation improvements, and release automation, along with several CLI and model enhancements.
✨ Features
-
History & Trends
- Added
historycommands with a content-addressed snapshot store - Introduced
history trendscommand with ASCII charts - Optional matplotlib export for trend charts
- Improved human-readable violation explanations in CLI output
- Added
-
Model Enhancements
- Added optional
layer namefield to the model - Support loading layer names directly from spec files
- Added optional
📚 Documentation
- Added and expanded MkDocs documentation
- Introduced a project changelog
- Repositioned the project as an architecture governance tool
- Added demo GIF to the README
- Documented
history trendscommand with chart examples - Expanded contributing guide with project structure and dev workflow
🛠️ Chores & Maintenance
- Automated changelog generation and GitHub releases
- Added
pytest-covto development dependencies - Cleaned up CLI chart modules (removed redundant docstrings and
__future__imports) - Applied formatting and typing improvements to history output and tests
- Version bump to 0.0.3
🔀 Merged Pull Requests
- Docs improvements and MkDocs expansion
- README repositioning and demo
- History feature and trends visualization
Full Changelog: v0.0.2...v0.0.3
v0.0.2
Pacta 0.0.1
- switch to Apache-2.0 license and bump version to 0.0.2
- replace AGPL-3.0-only LICENSE with Apache License 2.0
- remove CLA.md and COPYRIGHT
- add NOTICE file and update README license text + roadmap
- drop AGPL SPDX/copyright headers across codebase
- update project/test/tool version strings to 0.0.2
Full Changelog: v0.0.1...v0.0.2
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