Skip to content

Releases: qBraid/qbraid-qir

qBraid-QIR 0.2.3

27 Sep 14:41
7f1e90c
Compare
Choose a tag to compare

Release 0.2.3 (Sep 27, 2024)

Summary

➕ New Features

  • Add support for pauli measurement operators in cirq converter (#144)
  • Add support for sizeof operator in openqasm converter (#146)
  • Add complete support for array type in subroutines (#151)

🌟 Improvements

  • Re-factor the BasicQasmVisitor and improve modularity (#142)
  • Add static type checking with mypy (#150 )
  • Improve measurement statement parsing logic and add support for range definition and discrete set (#150)
  • Expanded support for parameters used in gate body expressions. Initially, if a statement inside a gate body used its parameters in arbitrary expressions, the expression was not evaluated correctly as the identifiers were not replaced. (#157). Example -
// previous  
gate my_gate(a, b) q {
    rx(a) q;
    ry(b) q;

    // this was not supported 
    rz(5 * a) q;
}

// current 
gate my_gate(a, b) q {
    rz(a) q;

    // expressions supported now
    rx(a * 3.2) q; 
    ry(a / b + pi) q;
}

📜 Documentation

  • Housekeeping updates for release (#135)
  • Update CHANGELOG.md to add new template (#137)
  • Update CONTRIBUTING.md to mention changelog updates (#140)

🐛 Bug Fixes

  • Fix function block issues where qubit references were not getting populated correctly. Users can now use for, switch and other constructs inside functions. (#141)

⬇️ Dependency Updates

  • Update sphinx-autodoc-typehints requirement from <2.3,>=1.24 to >=1.24,<2.4 (#152)
  • Update sphinx-autodoc-typehints requirement from <2.4,>=1.24 to >=1.24,<2.5 (#153)

PRs Merged

Full Changelog: v0.2.2...v0.2.3

qBraid-QIR 0.2.2

09 Aug 15:51
06b0934
Compare
Choose a tag to compare

Release 0.2.2 (Aug 9, 2024)

Summary

  • Documentation has been refreshed, including updates to the README.md and supported qasm3 constructs, ensuring clarity and accuracy. Dependencies have been upgraded, with the qbraid requirement now supporting versions between 0.7.0 and 0.8.0, the openqasm3[parser] requirement updated to support versions between 1.0.0 and 1.1.0, and Sphinx requirements adjusted to support versions up to 8.1.0.

  • Significant feature enhancements include the addition of support for Autoqasm to QIR conversion, qasm3 subroutines, and implementation for switch constructs. The handling of declarations and assignments has been improved, and a check for variable scope in alias declarations has been added. These updates contribute to better performance and functionality.

  • Several bugs and optimizations have been addressed, such as fixing the classical declaration bug for checking qubits during variable declaration, removing the use of the typing module for type hints, and streamlining the codebase.

➕ New Features

  • Support for Autoqasm -> QIR conversion was added by @rjain37. Validation of autoqasm programs which can be converted to openqasm and thus to qir is added. ( #119 )
  • switch statements are now supported for qasm3-qir converter. Users can now use switch in defining qasm programs and the converter dynamically evaluates which case to take. ( #126 )
  • Added support for qasm3 subroutines. Users can now leverage more powerful constructions of qasm programs with the user of subroutines. Array and Loop support coming soon! ( #128 )

🌟 Improvements

  • Remove typing module for type hints. Since the native types of python can be used as type hints, we remove dependency for typing.List, typing.Tuple, typing.Dict and typing.Set  ( #124 )
  • Declarations and Assignments were improved with support for the array declarations, internal array indexing was changed to mimic pythonic arrays, constant assignments expressions were changed to only consider constant values in their instantiation and introduced implicit type casting for variables. ( #122 )

📜 Documentation

  • Restructured docs for qbraid qir and updated README  ( #115 )
  • Update _version.py  ( #120 )
  • Update authors in citation ( #127 )
  • Update supported qasm3 constructs in qasm3 README ( #130 )

🐛 Bug Fixes

  • Add check for variable scope in alias declaration. Aliases can not contain the same name as an existing variable in scope. ( #121 )
  • Classical declarations were updated to check for naming clash with quantum registers and vice versa. ( #134 )

⬇️ Dependency Updates

  • Update qbraid requirement from <0.7.0,>=0.6.1 to >=0.7.0,<0.8.0 ( #117 )
  • Update openqasm3[parser] requirement from <0.6.0,>=0.4.0 to >=1.0.0,<1.1.0 ( #116 )
  • Update sphinx requirement from ~=7.3.7 to >=7.3.7,<7.5.0 by ( #118 )
  • Update sphinx requirement from <7.5.0,>=7.3.7 to >=7.3.7,<8.1.0 ( #129 )

Full Changelog: v0.2.1...v0.2.2

qBraid-QIR 0.2.1

26 Jun 02:00
948963f
Compare
Choose a tag to compare

Release 0.2.1 (Jun 25, 2024)

Summary

  • The Cirq dependency was bumped.
  • Support was added for qasm3 loop statements.
  • Support was added for qasm3 alias statements.

➕ New Features

  • Support for aliases in qbraid_qir.qasm3.qasm3_to_qir was introduced, allowing for more flexible program definitions. (#102)
  • The implementation of for loops was added, enabling more dynamic control flow in qasm3 programs. (#110)

📜 Documentation

  • The README.md was updated to include the latest supported instructions. (#94)
  • Another update was made to the README.md for further clarity and completeness. (#111)

⬇️ Dependency Updates

  • The Cirq-core requirement was updated from <1.4.0,>=1.3.0 to >=1.3.0,<1.5.0. (#96)
  • The sphinx-autodoc-typehints requirement was updated from <2.2,>=1.24 to >=1.24,<2.3. (#113)

🌟 Improvements

  • Post-release housekeeping tasks were completed to tidy up the codebase. (#92)
  • The Discord icon was updated, and Codecov was added to enhance the project’s CI/CD pipeline. (#95)
  • The project version was bumped to reflect the latest changes. (#114)

qBraid-QIR 0.2.0

10 May 01:12
eb512ad
Compare
Choose a tag to compare

Release 0.2.0 (May 9, 2024)

Summary

  • Added support for OpenQASM 3 conversions.

➕ New Features

  • Drafted the initial Qasm3Module, laying the groundwork for OpenQASM 3 support. (#46)
  • Developed the openqasm3 to QIR visitor, enabling the conversion from OpenQASM 3 to QIR. (#54)
  • Added support for modifiers in the qasm3_qir_converter, expanding the range of supported operations. (#79)
  • Introduced classical variable support to the qasm3_qir_converter, allowing for more comprehensive program conversions. (#85)

📜 Documentation

  • Updated the project version in _version.py to reflect the release changes. (#63)
  • Another update was made to the README.md to include additional information. (#82)
  • Updated the README.md to reflect the supported qasm3 operations. (#86)

⬇️ Dependency Updates

  • Updated the docutils requirement from <0.21 to <0.22. (#84)
  • Updated the sphinx-autodoc-typehints requirement from <2.1,>=1.24 to >=1.24,<2.2. (#87)
  • Updated the sphinx requirement from ~=7.2.6 to ~=7.3.7. (#88)

🌟 Improvements

  • Reviewed and improved the qasm3 module, ensuring robust functionality. (#68)
  • Removed the requirements files and updated workflows to streamline the project setup. (#69)
  • Added the qir-runner simulator and conducted housekeeping tasks for better code organization. (#71)
  • Introduced a results class for the qir-runner simulator, enhancing simulation capabilities. (#72)
  • Improved the tests for the qir-runner, increasing test coverage and reliability. (#73)
  • Expanded the test coverage for the qasm3 converter to ensure accuracy and completeness. (#74)
  • Added alias tests and marked unimplemented features, improving overall code robustness. (#77)
  • Bumped the qbraid dependency to reflect the latest supported versions. (#83)
  • Added a progress table template to track ongoing developments and enhancements. (#89)
  • Prepared the project for release, ensuring all features were finalized and ready for deployment. (#91)

qBraid-QIR 0.1.1

04 Mar 20:43
8663af1
Compare
Choose a tag to compare

Release 0.1.1 (March 4, 2024)

Summary

  • Added examples folder.
  • Fixed the test-containers pyqir install bug.
  • Added a code coverage report.
  • Updated measurement and conditional operator conversions.

➕ New Features

  • Added example notebooks for Azure and Rigetti, showcasing usage and integration. (#49)
  • Created a notebook for Microsoft resource estimation, providing guidance on resource calculation. (#52)
  • Added a lint example notebook to demonstrate linting best practices. (#53)

🌟 Improvements

  • Enhanced code coverage by adding a code coverage report and improving coverage metrics. (#55)
  • Introduced a Codecov badge and a "Launch on qBraid" button to improve visibility and access. (#56)
  • Added a Code of Conduct and updated the README with images and additional information. (#57)
  • Improved code coverage metrics and fixed related issues. (#60)

📜 Documentation

  • Updated the README.md and workflows, and added a new example to provide better guidance and information. (#51)
  • Added and updated templates, pylint configurations, and coverage reporting to enhance project quality. (#55)

⬇️ Dependency Updates

  • Updated the sphinx-autodoc-typehints requirement from <1.26,>=1.24 to >=1.24,<2.1. (#50)

🐛 Bug Fixes

  • Improved measurement and conditional operator conversions for better functionality. (#42)
  • Fixed bugs related to merging and other minor updates. (#26, #41)
  • Fixed issues with the test-container setup, resolving pyqir installation bugs. (#62)

qBraid-QIR 0.1.0

12 Jan 23:27
874b85d
Compare
Choose a tag to compare

Release 0.1.0 (Jan 12, 2024)

Summary

  • First official release
  • cirq_to_qir converter minimal working example

What's Changed

New Contributors

Full Changelog: https://github.com/qBraid/qbraid-qir/commits/v0.1.0