Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

0.1.1 - 2026-02-17

Added

  • Add support for multiple clock domains in the clks fixture, including incorporating each clock into the generated test name.

  • Add support for background testbenches via the Testbench dataclass.

  • CI now tests publishing each commit to TestPyPI.

    • Package is published to PyPI only if commit is tagged and the TestPyPI step succeeds.

  • CI now tests Python versions 3.13, 3.14, and PyPy versions 3.8 through 3.11.

Changed

  • The package version is rewritten during build step of CI to conform to PyPI rules of disallowing local versions.

    • Version-rewriting should have no effect on tags/releases because PDM’s default version formatter is used directly in those cases.

  • Use Sybil in place of pytest-sphinx for checking doctests.

    • testcode directives are replaced with the doctest directive.

Fixed

  • The test_comb_testbench_fail test and its failure modes now more thoroughly tested/described.

  • “How To Use These Fixtures” documentation is improved, with code examples!

    • There is still room to improve those docs’ prose.

  • Use sphinx-autofixture to explicitly mark Pytest fixtures provided by this plugin.

Removed

  • Remove flake8 and use ruff v0.14.1’s preview mode for the implemented pydoclint subset instead.

    • .flake8 settings were transferred to tool.ruff table of pyproject.toml on a best-effort basis.

0.1.0 - 2024-09-21

Initial release.

Added

  • Add pytest plugin for running simulations of digital logic using Amaranth’s Python simulator. The plugin does the following:

    • Add fixtures for interacting with the Amaranth simulator. As this targets Amaranth 0.5, both the deprecated generator-based and async-based testbenches are supported.

    • Add pytest configuration options to work around a GTKWave quirk, create VCD files, and configure how VCD files are named.

  • All plugin functionality is documented, and tested against Python versions 3.8 through 3.12.