Releases: qBraid/qbraid-qir
qBraid-QIR 0.2.3
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 inopenqasm
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
- housekeeping updates by @ryanhill1 in #135
- Update CHANGELOG.md by @TheGupta2012 in #137
- Update CHANGELOG.md by @TheGupta2012 in #139
- Update
CONTRIBUTING.md
by @TheGupta2012 in #140 - Fix
for
with subroutines by @TheGupta2012 in #141 - Add measurement basis change support for
cirq_qir
by @TheGupta2012 in #144 - Refactoring the
Qasm3Visitor
by @TheGupta2012 in #142 - Add implementation for
sizeof
in openqasm by @TheGupta2012 in #146 - Add
mypy
static types toqbraid-qir
by @TheGupta2012 in #150 array
support for QASM3 subroutines by @TheGupta2012 in #151- Update sphinx-autodoc-typehints requirement from <2.3,>=1.24 to >=1.24,<2.4 by @dependabot in #152
- Update README.md by @TheGupta2012 in #154
- Update sphinx-autodoc-typehints requirement from <2.4,>=1.24 to >=1.24,<2.5 by @dependabot in #153
- Add support for param update in gate param expr by @TheGupta2012 in #157
- Update
CHANGELOG.md
by @TheGupta2012 in #158 - Add semantic checker for qasm3 by @TheGupta2012 in #155
- update checker and bump version by @ryanhill1 in #161
Full Changelog: v0.2.2...v0.2.3
qBraid-QIR 0.2.2
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, theopenqasm3[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 useswitch
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 ofsubroutines
. 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 fortyping.List
,typing.Tuple
,typing.Dict
andtyping.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
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
qBraid-QIR 0.2.0
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
toQIR
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
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
qBraid-QIR 0.1.0
Release 0.1.0 (Jan 12, 2024)
Summary
- First official release
cirq_to_qir
converter minimal working example
What's Changed
- initial repo setup by @ryanhill1 in #1
- update README by @ryanhill1 in #3
- update gitignore, status badge, pr template by @ryanhill1 in #4
- contributing + readme update by @ryanhill1 in #5
- outfile placeholder by @ryanhill1 in #8
- setting up test structure by @ryanhill1 in #10
- Adding fixtures by @skushnir123 in #9
- first draft template cirq module by @ryanhill1 in #11
- Adding some more utility functions and mock test by @skushnir123 in #13
- format, headers, test passes, pre-process by @ryanhill1 in #19
- Consistency across visitor with qids type by @skushnir123 in #21
- Rohan by @rjain37 in #24
- Some changes for MWP by @priyansh-1902 in #25
- clean up code + measurement dev by @ryanhill1 in #34
- qir runner image + test fixes by @ryanhill1 in #36
- Added tests and expanded preprocessing by @skushnir123 in #38
- dumps and powgate fixes by @ryanhill1 in #39
- fix grid qubit bug convert all to line contiguous line qubits by @ryanhill1 in #43
- update docs + bump version for initial release by @ryanhill1 in #44
New Contributors
- @ryanhill1 made their first contribution in #1
- @dependabot made their first contribution in #2
- @skushnir123 made their first contribution in #9
- @priyansh-1902 made their first contribution in #25
Full Changelog: https://github.com/qBraid/qbraid-qir/commits/v0.1.0