Skip to content

Releases: pacta-dev/pacta-cli

v0.0.7

29 Jan 10:46

Choose a tag to compare

0.0.7 - 2026-01-29

Documentation

  • Update GitHub Action and asset links to pacta-dev repository
  • Update README asset links and CI action usage

Miscellaneous

  • Update changelog for v0.0.6
  • Update project links to new pacta-dev/pacta-cli repository

v0.0.6

29 Jan 00:14

Choose a tag to compare

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

27 Jan 19:11

Choose a tag to compare

0.0.5 - 2026-01-27

Added

  • cli: Add check command to evaluate rules against saved snapshots
  • cli: Document new pacta check command 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

26 Jan 00:37

Choose a tag to compare

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

25 Jan 18:09

Choose a tag to compare

🚀 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 history commands with a content-addressed snapshot store
    • Introduced history trends command with ASCII charts
    • Optional matplotlib export for trend charts
    • Improved human-readable violation explanations in CLI output
  • Model Enhancements

    • Added optional layer name field to the model
    • Support loading layer names directly from spec files

📚 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 trends command with chart examples
  • Expanded contributing guide with project structure and dev workflow

🛠️ Chores & Maintenance

  • Automated changelog generation and GitHub releases
  • Added pytest-cov to 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

23 Jan 21:45

Choose a tag to compare

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

23 Jan 16:24

Choose a tag to compare

🎉 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 — success
    • 1 — violations
    • 2 — 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 pacta

Requirements: 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