Changelog

August 27, 2026 Β· View on GitHub

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.

Types of changes:

  • New Features: for new features.
  • Improvements: for improvements to existing functionality.
  • Documentation: for any additions to documentation.
  • Bug Fixes: for any bug fixes.
  • Dependency updates: for any dependency changes
  • Deprecations (optional): for soon-to-be removed features.

[Unreleased]

βž• New Features

🌟 Improvements

  • Added a .github/CODEOWNERS file designating @TheGupta2012 as code owner, matching the convention in qBraid/qBraid and qBraid/pyqasm. This declares ownership only; requiring code owner review is a separate branch protection setting, which stays off. (#298)
  • Added an OpenSSF Scorecard workflow that grades the repository's supply-chain practices, uploads the result to code scanning as SARIF, and publishes the score to the public Scorecard API. (#300)
  • PyPI releases now authenticate with trusted publishing (OIDC) instead of the long-lived PYPI_API_TOKEN repository secret. publish.yml and pre-release.yml request id-token: write so pypa/gh-action-pypi-publish mints a short-lived credential, and the action attaches PEP 740 attestations to files published after this merges. (#299)

πŸ“œ Documentation

  • Added SECURITY.md documenting the supported version range and a private vulnerability disclosure path via GitHub Security Advisories. (#296)

πŸ› Bug Fixes

  • Fixed qasm3_to_qir raising a bare AssertionError (with an empty message) for programs that address physical qubits, e.g. h \$0;. Physical qubits are valid OpenQASM 3 and are what Qiskit emits when a circuit is transpiled against a backend (qasm3.dumps(transpile(circuit, backend))), but they survive unrolling as plain Identifier nodes rather than IndexedIdentifier, which the visitor assumed. They now lower to the QIR qubit of the same index ($3 is qubit 3), and the entry point declares enough qubits to cover the highest index used. Operands the visitor cannot lower now raise Qasm3ConversionError with a message instead of an empty AssertionError. (#290)
  • Fixed the cudaqβ†’squin tests (test_bell_state, test_ghz_state) failing under the typed-pointer pyqir (0.11.x) CI leg. cudaq 0.15+ emits opaque-pointer QIR (QIR 2.0) that only pyqir 0.12+ can parse, so these tests are now gated on pyqir_uses_opaque_pointers(). (#292)

⬇️ Dependency Updates

  • Updated pyqasm requirement from >=0.4.0,<1.1.0 to >=1.0.4,<1.1.0, which is the first release that preserves physical qubits in reset statements rather than rewriting them to the internal pulse register. (#290)
  • Bumped actions/checkout from 6 to 7 (#289)

πŸ‘‹ Deprecations

Past releases

Release notes for earlier versions are published on the Releases page.