Recent Releases of qbraid-qir

qbraid-qir - qBraid-QIR 0.4.0

Release 0.4.0 (June 17, 2025)

Summary

➕ New Features

  • Added Adaptive Profile Support as defined by the QIR Specification for QASM conversions (#225)
  • Edited Custom Profile to Base Profile as defined by the QIR Specification for QASM conversions (#228)

🌟 Improvements

  • Improved coverage for qbraid_qir with additional tests for the gate maps for QASM 3 conversions. ( #227 )

⬇️ Dependency Updates

  • Bump codecov/codecov-action from 5.4.2 to 5.4.3. (#223)
  • Bump pyqasm version from >=0.3.2, <0.4.0 to >=0.4.0, <0.5.0. (#231)
  • Update cirq-core requirement from <1.5.0,>=1.3.0 to >=1.3.0,<1.6.0 (#229)

New Contributors

  • @Gmin2 made their first contribution in https://github.com/qBraid/qbraid-qir/pull/227
  • @feelerx made their first contribution in https://github.com/qBraid/qbraid-qir/pull/225

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.3.2...v0.4.0

- Python
Published by TheGupta2012 12 months ago

qbraid-qir - qBraid-QIR 0.3.2

Release 0.3.2 (April 25, 2025)

Summary

📜 Documentation

  • Add deploy to github pages and version bump workflows (including automation to update citation file) (#208)

⬇️ Dependency Updates

  • Update pyqasm version to >=0.3.2, <0.4.0 (#220)

PRs Merged

  • Update license badge link [no ci] by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/206
  • Update license in pyproject.toml [no ci] by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/207
  • Update sphinx-autodoc-typehints requirement from <3.1,>=1.24 to >=1.24,<3.2 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/205
  • gh pages + bump version workflows by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/208
  • update docker scripts to apache-2.0 by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/209
  • Bump actions/setup-python from 4 to 5 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/211
  • Bump codecov/codecov-action from 4.4.1 to 5.4.0 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/210
  • Update gh-pages.yml [no ci] by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/212
  • Update README.md [no ci] by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/213
  • Update pyqasm requirement from <0.3.0,>=0.2.1 to >=0.2.1,<0.4.0 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/216
  • Update pyqasm version to >=0.3.2, < 0.4.0 by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/220
  • Bump codecov/codecov-action from 5.4.0 to 5.4.2 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/218
  • Bump project version to 0.3.2 by @github-actions in https://github.com/qBraid/qbraid-qir/pull/221

New Contributors

  • @github-actions made their first contribution in https://github.com/qBraid/qbraid-qir/pull/221

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.3.1...v0.3.2

- Python
Published by ryanhill1 about 1 year ago

qbraid-qir - qBraid-QIR 0.3.1

Release 0.3.1 (March 3, 2025)

Summary

➕ New Features

  • ctrl and negctrl modifier support added with pyqasm>=0.2.1 (#204)

🌟 Improvements

📜 Documentation

  • Changed project from GPL to Apache 2.0 license (#198)

🐛 Bug Fixes

  • Fix type error for integer in external gate call argument (#202)

⬇️ Dependency Updates

  • Update sphinx-autodoc-typehints requirement from <2.6,>=1.24 to >=1.24,<3.1 (#193)
  • Update pyqasm dependency from "pyqasm>=0.1.0,<0.2.0" to "pyqasm>=0.2.1,<0.3.0" (#204)

👋 Deprecations

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.3.0...v0.3.1

- Python
Published by TheGupta2012 about 1 year ago

qbraid-qir - qBraid-QIR 0.3.0

Release 0.3.0 (Dec 31, 2024)

Summary

➕ New Features

  • Add support for externally linked gates in QASM3 (#182). Users can now supply a list of external gates to the unroll method and the unroller will leave these gates as is. Usage - ```python In [14]: from qbraidqir.qasm3 import qasm3to_qir

In [15]: qasm = """OPENQASM 3.0; ...: include "stdgates.inc"; ...: gate mygate(p0) gateq0, _gateq1 { ...: h _gateq1; ...: cx _gateq0, _gateq1; ...: rz(p0) _gateq1; ...: cx _gateq0, _gateq1; ...: h _gateq_1; ...: } ...: bit[2] c; ...: qubit[2] q; ...: ry(pi/2) q[0]; ...: mygate(pi/2) q[0], q[1];"""

In [16]: result = qasm3toqir(qasm, external_gates=["mygate"])

In [17]: str(result).splitlines() Out[17]: ["; ModuleID = 'program-295790fc-c761-11ef-9fef-cae339f58536'", 'sourcefilename = "program-295790fc-c761-11ef-9fef-cae339f58536"', '', '%Qubit = type opaque', '%Result = type opaque', '', 'define void @program-295790fc-c761-11ef-9fef-cae339f58536() #0 {', 'entry:', ' call void @quantumrtinitialize(i8* null)', ' call void @quantumqisrybody(double 0x3FF921FB54442D18, %Qubit* null)', ' call void @quantumqismygatebody(double 0x3FF921FB54442D18, %Qubit* null, %Qubit* inttoptr (i64 1 to %Qubit*))', ' call void @quantumrtresultrecordoutput(%Result* null, i8* null)', ' call void @quantumrtresultrecordoutput(%Result* inttoptr (i64 1 to %Result), i8 null)', ' ret void', '}', '', 'declare void @quantumrtinitialize(i8*)', '', 'declare void @quantumqisrybody(double, %Qubit*)', '', 'declare void @quantumqismygatebody(double, %Qubit, %Qubit)', '', 'declare void @quantumrtresultrecordoutput(%Result, i8)', '', 'attributes #0 = { "entrypoint" "outputlabelingschema" "qirprofiles"="custom" "requirednumqubits"="2" "requirednumresults"="2" }', '', '!llvm.module.flags = !{!0, !1, !2, !3}', '', '!0 = !{i32 1, !"qirmajorversion", i32 1}', '!1 = !{i32 7, !"qirminorversion", i32 0}', '!2 = !{i32 1, !"dynamicqubitmanagement", i1 false}', '!3 = !{i32 1, !"dynamicresult_management", i1 false}'] ```

🌟 Improvements

  • Update QIR-Runner docker container to ubuntu:24.04 as base image (#173)
  • Update lazy imports in QIR, and add linalg tests (#176)
  • Changed examples notebook to sub-module linked to qbraid-lab-demo repo. (#178)
  • Improved typing in qbraid_qir.qasm3.linalg (#178)
  • Updated project metadata and README in anticipation of release v0.3 (#178)

📜 Documentation

  • Updated sphinx docs pages with PyQASM API reference links (#174)
  • Updated custom CSS so that stable/latest drop-down is visible for navigation. Before blended in white with background (#185)
  • Updated examples sub-module links, and added note in CONTRIBUTING.md about how to so (#185)
  • Updated CONTRIBUTING.md with latest linters commands instructions (#185)

🐛 Bug Fixes

  • Fix broken links for notebook examples (#180)

⬇️ Dependency Updates

  • Added pyqasm as project dependency (#173)
  • Updated pyqasm and qbraid dependencies (#181 #183)
  • Bump pyqasm version to 0.1.0 (#189)
  • Update qbraid requirement from <0.9.0,>=0.8.3 to >=0.8.3,<0.10.0 (#191)

👋 Deprecations

  • Removed qbraid_qir.qasm3.linag module in favor of pyqasm.linalg (#190)

New Contributors

  • @Sola85 made their first contribution in https://github.com/qBraid/qbraid-qir/pull/182

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.2.3...v0.3.0

- Python
Published by TheGupta2012 over 1 year ago

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 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 -

```c++ // 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 https://github.com/qBraid/qbraid-qir/pull/135
  • Update CHANGELOG.md by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/137
  • Update CHANGELOG.md by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/139
  • Update CONTRIBUTING.md by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/140
  • Fix for with subroutines by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/141
  • Add measurement basis change support for cirq_qir by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/144
  • Refactoring the Qasm3Visitor by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/142
  • Add implementation for sizeof in openqasm by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/146
  • Add mypy static types to qbraid-qir by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/150
  • array support for QASM3 subroutines by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/151
  • Update sphinx-autodoc-typehints requirement from <2.3,>=1.24 to >=1.24,<2.4 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/152
  • Update README.md by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/154
  • Update sphinx-autodoc-typehints requirement from <2.4,>=1.24 to >=1.24,<2.5 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/153
  • Add support for param update in gate param expr by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/157
  • Update CHANGELOG.md by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/158
  • Add semantic checker for qasm3 by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/155
  • update checker and bump version by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/161

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.2.2...v0.2.3

- Python
Published by TheGupta2012 over 1 year ago

qbraid-qir - 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, 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: https://github.com/qBraid/qbraid-qir/compare/v0.2.1...v0.2.2

- Python
Published by ryanhill1 almost 2 years ago

qbraid-qir - qBraid-QIR 0.2.1

Release 0.2.1 (Jun 25, 2024)

Summary

  • bump cirq depedency
  • add support for qasm3 loop statements
  • add support for qasm3 alias statements

What's Changed

  • post-release housekeep by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/92
  • Update README.md for supported instrs by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/94
  • update discord icon + add codecov by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/95
  • Update cirq-core requirement from <1.4.0,>=1.3.0 to >=1.3.0,<1.5.0 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/96
  • For loop implementation by @ejthomas in https://github.com/qBraid/qbraid-qir/pull/110
  • Update README.md by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/111
  • Support aliases for qbraid_qir.qasm3.qasm3_to_qir by @king-p3nguin in https://github.com/qBraid/qbraid-qir/pull/102
  • Update sphinx-autodoc-typehints requirement from <2.2,>=1.24 to >=1.24,<2.3 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/113
  • bump version by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/114

New Contributors

  • @ejthomas made their first contribution in https://github.com/qBraid/qbraid-qir/pull/110
  • @king-p3nguin made their first contribution in https://github.com/qBraid/qbraid-qir/pull/102

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.2.0...v0.2.1

- Python
Published by ryanhill1 almost 2 years ago

qbraid-qir - qBraid-QIR 0.2.0

Release 0.2.0 (May 9, 2024)

Summary

  • Add support for OpenQASM 3 conversions

What's Changed

  • Qasm3Module Draft by @olgOk in https://github.com/qBraid/qbraid-qir/pull/46
  • Update _version.py by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/63
  • qasm3 review by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/68
  • Developing the openqasm3 to QIR visitor by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/54
  • remove reqs files update workflows by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/69
  • qir-runner simulator + housekeep by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/71
  • results class for qir-runner simulator by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/72
  • improve runner tests by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/73
  • Improve coverage for qasm3 converter by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/74
  • alias test + notimplemented by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/77
  • Update README.md by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/82
  • bump qbraid dependency by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/83
  • Add support for modifiers by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/79
  • Update docutils requirement from <0.21 to <0.22 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/84
  • Update README.md with qasm3 supported OPs by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/86
  • Update sphinx-autodoc-typehints requirement from <2.1,>=1.24 to >=1.24,<2.2 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/87
  • Update sphinx requirement from ~=7.2.6 to ~=7.3.7 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/88
  • progress table template by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/89
  • Add classical variable support to qasm3_qir_converter by @TheGupta2012 in https://github.com/qBraid/qbraid-qir/pull/85
  • prepare release by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/91

New Contributors

  • @olgOk made their first contribution in https://github.com/qBraid/qbraid-qir/pull/46
  • @TheGupta2012 made their first contribution in https://github.com/qBraid/qbraid-qir/pull/54

Full Changelog: https://github.com/qBraid/qbraid-qir/compare/v0.1.1...v0.2.0

- Python
Published by ryanhill1 about 2 years ago

qbraid-qir - qBraid-QIR 0.1.1

Release 0.1.1 (March 4, 2024)

Summary

  • Added examples folder
  • Fixed test-containers pyqir install bug
  • Added code coverage report
  • Updates to measurement and conditional operator conversions

What's Changed

  • Mwp by @rjain37 in https://github.com/qBraid/qbraid-qir/pull/26
  • merging by @rjain37 in https://github.com/qBraid/qbraid-qir/pull/41
  • cirq classically controlled ops + measurement updates by @rjain37 in https://github.com/qBraid/qbraid-qir/pull/42
  • azure + rigetti example notebook by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/49
  • Update sphinx-autodoc-typehints requirement from <1.26,>=1.24 to >=1.24,<2.1 by @dependabot in https://github.com/qBraid/qbraid-qir/pull/50
  • README, workflows, and new example by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/51
  • Create microsoftresourceestimatation.ipynb by @skushnir123 in https://github.com/qBraid/qbraid-qir/pull/52
  • lint example notebook by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/53
  • templates + pylint + cov by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/55
  • codecov badge + launch on qBraid button by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/56
  • add code of conduct + readme images and other info by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/57
  • improved code-cov by @skushnir123 in https://github.com/qBraid/qbraid-qir/pull/60
  • test-container fixes by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/62

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

- Python
Published by ryanhill1 about 2 years ago

qbraid-qir - 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 https://github.com/qBraid/qbraid-qir/pull/1
  • update README by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/3
  • update gitignore, status badge, pr template by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/4
  • contributing + readme update by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/5
  • outfile placeholder by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/8
  • setting up test structure by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/10
  • Adding fixtures by @skushnir123 in https://github.com/qBraid/qbraid-qir/pull/9
  • first draft template cirq module by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/11
  • Adding some more utility functions and mock test by @skushnir123 in https://github.com/qBraid/qbraid-qir/pull/13
  • format, headers, test passes, pre-process by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/19
  • Consistency across visitor with qids type by @skushnir123 in https://github.com/qBraid/qbraid-qir/pull/21
  • Rohan by @rjain37 in https://github.com/qBraid/qbraid-qir/pull/24
  • Some changes for MWP by @priyansh-1902 in https://github.com/qBraid/qbraid-qir/pull/25
  • clean up code + measurement dev by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/34
  • qir runner image + test fixes by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/36
  • Added tests and expanded preprocessing by @skushnir123 in https://github.com/qBraid/qbraid-qir/pull/38
  • dumps and powgate fixes by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/39
  • fix grid qubit bug convert all to line contiguous line qubits by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/43
  • update docs + bump version for initial release by @ryanhill1 in https://github.com/qBraid/qbraid-qir/pull/44

New Contributors

  • @ryanhill1 made their first contribution in https://github.com/qBraid/qbraid-qir/pull/1
  • @dependabot made their first contribution in https://github.com/qBraid/qbraid-qir/pull/2
  • @skushnir123 made their first contribution in https://github.com/qBraid/qbraid-qir/pull/9
  • @priyansh-1902 made their first contribution in https://github.com/qBraid/qbraid-qir/pull/25

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

- Python
Published by ryanhill1 over 2 years ago