Changelog

0.2.0 (2026-09-17)

⚠ BREAKING CHANGES

  • make ancillas argument optional, rename to n_impl_ancillas (#412)

  • Replace num_ prefix with n_ for consistency (#409)

  • Make identity_code a private function (#392)

Features

  • Add ComparatorRzDecomposer pass to the decompose module (#401) (4c94ca9)

  • Return bytes from implement ops and encode (#382) (c587e14)

Bug Fixes

  • Call _impl function with map_global in qec_cycle for Steane encoding (#394) (84faa3a)

Documentation

  • add changelog and github link to the sphinx docs (#396) (bd5e134)

  • Example notebook to demonstrate ComparatorRzDecomposer with Steane architecture (#403) (fcd130e)

  • Export extension modules to allow API doc generation (#386) (5ba0161)

  • Fix API references for Steane (#410) (6e5ac5f)

  • Improve the documentation of verify and code_def modules (#340) (d1f137a)

  • Recommend using guppyft.verify in the architecture developer guide (#400) (7ac0c7f)

  • Set Ruff pydocstyle to Google style and update all docstrings (#391) (1a7c67d)

Code Refactoring

  • Make identity_code a private function (#392) (14fff93)

  • make ancillas argument optional, rename to n_impl_ancillas (#412) (f5e24f4)

  • Replace num_ prefix with n_ for consistency (#409) (96ef34e)

0.1.2 (2026-09-10)

Documentation

  • Add repo and homepage links to package description (#372) (44690df)

  • Make a separate “getting started” page (#376) (3ddb5de)

  • Separate README and package descriptions (#374) (e7993af)

  • Update README and DEVELOPMENT links (#371) (dea8de3)

0.1.1 (2026-09-09)

Re-releasing due to a version number clash with the empty name reservation package.

0.1.0 (2026-09-09)

⚠ BREAKING CHANGES

  • Remove RZ decomposition (#361)

  • Move various utils into std library (#349)

  • Refresh public API for Steane architecture and add SteaneBuilder.from_params method (#343)

  • Minimise and clean up std types and ops (#346)

  • Minimize Clifford testing interface and add example notebook (#200)

Features

  • Minimize Clifford testing interface and add example notebook (#200) (4724a19)

  • RZ synthesis based on comparators (#271) (3694c7c)

Bug Fixes

  • Support replacing copyable types with linear types when replacing ops (#253) (b20fe88)

Documentation

  • Add API docs for global state helpers (#333) (9f22f9d)

  • Add introduction section to home page (#306) (3989923)

  • Add missing links in the starting page (#365) (abd1048)

  • Add module-level docstrings (#331) (4f44452)

  • Architecture development guide (#304) (e7cad50)

  • Embed example notebooks into the sphinx docs (#320) (c9ea7f1)

  • Example notebook for Steane encoding (#302) (8d934cf)

  • Example notebook on how to write logical programs (#338) (05c94f2)

  • Fix links to PreBlock and StateFactory (#360) (20b95c7)

  • fix some maths formatting in docstrings (#335) (0fbdb72)

  • Fix typo in README (#354) (ac6231a)

  • Update README with example and links to documentation (#351) (3f4d2ac)

  • Use sentence case in heading for consistency (#363) (3aa63a9)

Code Refactoring

  • Minimise and clean up std types and ops (#346) (96ba9e2)

  • Move various utils into std library (#349) (9dabe25)

  • Refresh public API for Steane architecture and add SteaneBuilder.from_params method (#343) (faa74f3)

  • Remove RZ decomposition (#361) (59cb4fa)

0.0.8 (2026-09-04)

⚠ BREAKING CHANGES

  • Avoid magic strings when setting QEC policy operation costs (#301)

  • Support Hugr content reactive implement ops passes (#279)

  • Rename Steane magic preparation and injection to reduce verbosity (#286)

  • Inline state factory conf for the Steane code (#277)

  • Rename replace encoder to replacement compiler (#276)

  • Move logical operations into code-first modules and reduce their API (#274)

Features

  • Check ability to encode / compile before running (#281) (6a53c77)

  • Support CZ gate in Steane code (#297) (e1d2b00)

  • Support Hugr content reactive implement ops passes (#279) (3c720d4)

Bug Fixes

  • Filter type replacements by extensions carried in the encoded hugr (#275) (dc9e05d)

Documentation

  • Add landing page with getting started example (#267) (a2a9c70)

  • Improve formatting and grammar in encode() docstring (#284) (2fdbb74)

Code Refactoring

  • Avoid magic strings when setting QEC policy operation costs (#301) (6e5ad26)

  • Inline state factory conf for the Steane code (#277) (72fb199)

  • Move logical operations into code-first modules and reduce their API (#274) (62a3b35)

  • Rename replace encoder to replacement compiler (#276) (035b360)

  • Rename Steane magic preparation and injection to reduce verbosity (#286) (914f199)

0.0.7 (2026-08-28)

⚠ BREAKING CHANGES

  • Add compound op replacements to ReplaceEncoder and implement t/tdg in Steane architecture (#247)

Features

  • Add compound op replacements to ReplaceEncoder and implement t/tdg in Steane architecture (#247) (7cc15a4)

Bug Fixes

  • Fix signature of try_measure_one_* instantiations (#266) (754d580)

0.0.6 (2026-08-28)

⚠ BREAKING CHANGES

  • Add Steane op for invoking QEC cycles (#255)

  • Rework Steane spec to builder pattern and add methods for QEC policy and state factories (#238)

Features

  • Add Steane op for invoking QEC cycles (#255) (1a8bca3)

  • Add Y, S, Sdg to Steane architecture and test all primitives with verifier (#245) (f7796f3)

  • Instantiate concrete signatures in Iceberg Python bindings (#259) (3f93314)

  • Rework Steane spec to builder pattern and add methods for QEC policy and state factories (#238) (6d20da5)

Documentation

0.0.5 (2026-08-18)

Features

  • Add fallible dynamic qubit allocation to Iceberg extension (#227) (0b72127)

0.0.4 (2026-08-14)

Features

  • Add QEC cycle policy to Steane architecture with Steane and Knill primitives (#214) (06205c9)

  • Reduce serialisation roundtrips in implement ops and offer serialised byte result (#220) (59c480d)

  • Support more Steane operations during encoding (#219) (ece72a1)

Bug Fixes

  • Ensure build wrapper is a function definition (#222) (3b34c50)

0.0.3 (2026-08-12)

⚠ BREAKING CHANGES

  • Add type replacements input to replace encoder (#211)

  • Add convenience instantiation to Iceberg qubit type (#208)

Features

  • Add convenience instantiation to Iceberg qubit type (#208) (b1f2341)

  • Add decode op and measurement type to Steane extensions (#194) (bddb7d0)

  • Add encoder spec and encoding pass for Steane architecture (#158) (e9eb7d3)

  • Add state factories and use for Steane zero state (#209) (63e0a55)

  • Add type replacements input to replace encoder (#211) (88e8fb5)

  • Annotate encoding for packages (#210) (51fa095)

0.0.2 (2026-08-07)

Features

  • Add LogicalMeasurement type and decode op in guppyft.std extension (#145) (6fbbc45)

  • Add PreBlock type and ops to Iceberg extension and bindings (#139) (b44bdcf)

  • Add rust fix/format to justfile (#162) (8617618)

  • add verifier for logical Cliffords (#52) (e6b6c0a)

  • Extensions for Steane logical ops and types (#131) (c7c7041)

Bug Fixes

Documentation

0.0.1 (2026-07-09)

⚠ BREAKING CHANGES

  • Rename angle parameter to phase (#125)

  • Custom op checker and compiler for with and map global ops (#60)

  • Rework encoder pass (#29)

  • Add support for linear input arguments, use concrete function to derive inputs for HUGR op (#25)

  • Remove global swap, add global with and map (#11)

  • Auto generate declarations for operations (#8)

  • Encoder specs provide wrapper functions instead of setup and teardown (#6)

  • Introduce existing encoder pass from Rust and Python (#1)

Features

  • Add dynamic logical qubits, borrowed blocks and associated operations to the Iceberg extension (#70) (426c170)

  • Add Guppy bindings for Iceberg extension (#61) (8d47352)

  • Add Iceberg extension (#42) (0438129)

  • Add more ops to Iceberg extension (#120) (2ff7f3c)

  • Add support for linear input arguments, use concrete function to derive inputs for HUGR op (#25) (3095687)

  • Add support for tuple type as the global variable. (#107) (3fb71ab)

  • Allow configuring all tket passes that are run during encoding (#7) (9148c2c)

  • Auto generate declarations for operations (#8) (2536840)

  • Custom op checker and compiler for with and map global ops (#60) (7b333b0)

  • Derive type replacements from implementation signatures and allow ops with custom instantiations (#122) (bc95f3a)

  • Make measure_all return a future array of bool (#51) (39ac934)

  • Remove global swap, add global with and map (#11) (c34cbb7)

  • Rename angle parameter to phase (#125) (e9da53c)

  • Replace Measurement type with bool during implement_ops pass and force early read (#92) (3ebe29c)

  • Restore CustomValidator for Iceberg ops (#103) (de33300)

  • Use BorrowArray instead of Array for result of measure_all(). (#59) (556341d)

  • Use future-bool types throughout (#57) (a90a404)

Bug Fixes

  • Remove CustomValidator for Iceberg ops (#83) (3e25a1b)

  • Silence failure for missing HUGR extensions when preparing ops for encoding (#22) (59e87fe)

  • Upgrade to latest dependencies and remove git repository references (#87) (7485d79)

Documentation

  • Add README (#18) (bb76707)

  • Improve docstrings for non-destructive measurement ops. (#50) (7c03f9d)

Code Refactoring

  • Encoder specs provide wrapper functions instead of setup and teardown (#6) (847b4e4)

  • Introduce existing encoder pass from Rust and Python (#1) (3b996c0)

  • Rework encoder pass (#29) (af9836d)