Releases: unitaryfund/mitiq
v0.39.0
Highlights
We've made updates to our documentation, beginning with the completion of the first section of the Pauli Twirling user guide, which offers a comprehensive introduction to this feature. Additionally, we've added a new tutorial on CDR (Clifford Data Regression) using Qrack as an efficient near-Clifford simulator. This demonstrates a workflow that harnesses the speed of Qrack in the CDR training phase, while providing users with an in-depth look at how to integrate Mitiq and Qrack effectively.
📓 Documentation
- Complete first section of Pauli Twirling user guide (#2454) [@cosenal]
- Hide primary sidebar from certain pages of the documentation (#2424) [@purva-thakre]
- CDR Tutorial with Qrack (#2451) [@bdg221]
🧑🏽💻 Developer Improvements
- Separate docs build workflow (#2441) [@purva-thakre]
- clean and git ignore all coverage reports (#2443) [@cosenal]
- Ignore _about.py in pytest coverage (#2379) [@purva-thakre]
- use date to make version unique for testpypi uploads (#2436) [@natestemen]
📦 Dependency Updates
- Update scipy requirement from <=1.13.1,>=1.10.1 to >=1.10.1,<=1.14.0 (#2420) [@dependabot]
v0.38.0
Changelog
Version 0.38.0
Highlights
🚀 As of this release, thanks to @natestemen, we are officially supporting Python 3.12 and dropping Python 3.9.
🌉 As part of UnitaryHack 2024, new contributor @NnguyenHTommy fixed a Qiskit to Cirq gate conversion error by implementing a fallback mechanism to decompose and transpile the Qiskit circuit into native Cirq gates.
🌀 Another Unitary Hacker, @EmilianoG-byte added functionality to simulate noise specifically on CNOT and CZ gates when using the Pauli Twilring technique to symmetrize errors.
🔉 As hinted in last release's spoilers, @purva-thakre has implemented the noise scaling functionality required for the Layerwise Richardson Extrapolation (LRE) technique, which allows a more fine-grained control over the amount of noise in circuits compared to the standard unitary folding method.
✨ Enhancements
- Noise Scaling for LRE (#2347) [@purva-thakre]
- Issue #2354 Fix - qiskit QFT gates error during conversion (#2404) [@NnguyenHTommy]
- Simulate noise for CNOT and CZ gates in Pauli Twirling (#2397) [@EmilianoG-byte]
🛠️ Maintenance and Upkeep Improvements
- Update readme (#2421) [@purva-thakre]
- Update README with Github discussion link (#2419) [@bdg221]
- Update contributing guide (#2382) [@purva-thakre]
🧑🏽💻 Dev Environment Improvements
- Used trusted publishers for testpypi publishing (#2320) [@natestemen]
- bump min python version for intersphinx map (#2425) [@natestemen]
- Support python 3.12 and drop 3.9 (#2066) [@natestemen]
📦 Dependency Updates
- Bump qibo from 0.2.8 to 0.2.9 (#2430) [@dependabot[bot]]
- Update qiskit requirement from ~=1.1.0 to ~=1.1.1 (#2414) [@dependabot[bot]]
- Bump pyscf from 2.6.0 to 2.6.2 (#2415) [@dependabot[bot]]
v0.37.0
Highlights
✨ Stacking quantum error mitigation techniques is a primary area of focus in Mitiq. In this release, @jordandsullivan introduced a Tutorial on composing Digital Dynamical Decoupling (DDD) and Zero Noise Extrapolation (ZNE).
🗒️ »Download Notebook«: Users have now the option to download tutorials in Jupyter .ipynb
format directly from our documentation. We hope this will encourage experimentation with existing tutorials.
🤐 Lastly, a spoiler on what's upcoming: a Request for Comments document by @purva-thakre on adding Layerwise Noise-Scaling and Multivariate Richardson Extrapolation has been reviewed and approved. These techniques will soon make their way into Mitiq, stay tuned!
Enhancements
- Add the RFC LRE link (#2329) [@purva-thakre]
- Example stacking DDD and ZNE (#2345) [@jordandsullivan]
- Add download notebook link in docs (#2363) [@cosenal]
- Add example near-Clifford circuit simulators with links (#2367) [@bdg221]
Maintenance and upkeep improvements
- Remove qiskit-ibm-provider (#2342) [@andre-a-alves]
- Delete old version of diagram, as unnecessary (#2364) [@jordandsullivan]
- Remove duplicate readme entry in toctree (#2362) [@jordandsullivan]
- Update glossary (#2355) [@purva-thakre]
- Update QSE diagram to call module mitiq.qse, add versions to images, update references to point to v2 image (#2361) [@jordandsullivan]
- Updated docstring for
generate_mirror_circuits
(#2353) [@jordandsullivan] - Pretty print supported programs enum (#2352) [@cosenal]
Dev environment improvements
- Document tip for easily generating release note (#2398) [@cosenal]
- Missing unit tests for benchmarking circuits (#2366) [@purva-thakre]
📦 Dependency updates
- Bump pyscf from 2.5.0 to 2.6.0 (#2396) [@dependabot[bot]]
- Update qiskit-aer requirement from ~=0.14.0.1 to ~=0.14.2 (#2393) [@dependabot[bot]]
- Update scipy requirement from <=1.13.0,>=1.10.1 to >=1.10.1,<=1.13.1 (#2380) [@dependabot[bot]]
- Bump qibo from 0.2.7 to 0.2.8 (#2385) [@dependabot[bot]]
- Update qiskit requirement from ~=1.0.2 to ~=1.1.0 (#2369) [@dependabot[bot]]
- Update pennylane-qiskit requirement from ~=0.35.1 to ~=0.36.0 (#2350) [@dependabot[bot]]
- Update pennylane requirement from ~=0.35.1 to ~=0.36.0 (#2349) [@dependabot[bot]]
v0.36.0
Version 0.36.0
Highlights
Support for Qiskit 1.0: Mitiq now fully supports programs written in Qiskit 1.0, thanks to the contributions of André Alves!
Enhanced Package Requirements: We've clarified the requirements for frontend packages. Each frontend is now available as an "extra" within the Mitiq package. For instance, to use Mitiq with Qiskit, simply run:
pip install mitiq[qiskit]
and similarly for all other supported integrations.
This ensures compatibility between all dependency packages required by Mitiq for frontend integration and those in the user's environment.
Quantum Error Mitigation methods: Users can now discover the available quantum error mitigation techniques by executing:
mitiq.qem_methods()
This function provides an accessible way to understand the module naming of each technique supported by Mitiq.
Thanks to @andre-a-alves, @cosenal, @jordandsullivan, @Misty-W, @purva-thakre for the PRs in this milestone.
Enhancements
- Created method to get available QEM methods in mitiq (#2298) [@jordandsullivan]
- Define type for frontend supported programs (#2276) [@cosenal]
- Introduce requirement setup for integrations (#2303) [@cosenal]
Maintenance and upkeep improvements
- Upgrade Qiskit to 1.0.2 (#2269) [@andre-a-alves]
- Remove unused folding functions (#2289) [@jordandsullivan]
- Use Jupyter cache in gh workflow docs build (#2279) [@cosenal]
- Run linkcheck on 'release' PR workflow (#2332) [@cosenal]
Dev environment improvements
- Rename master branch to main (#2263) [@jordandsullivan]
- Pre-commit hook with style checks (#2264) [@cosenal]
- Indicate master is under development (#2258) [@natestemen]
- Remove unused devcontainer (#2302) [@cosenal]
📦 Dependency updates
- Bump myst-parser from 2.0.0 to 3.0.1 (#2333) [dependabot[bot]]
- Bump bqskit and scipy (#2262) [dependabot[bot]]
- Bump qibo from 0.2.4 to 0.2.7 (#2268) [dependabot[bot]]
🧑💻 Dev Dependency updates
v0.35.0
Version 0.35.0
In this milestone, we've continued our work to support Qibo by providing a new tutorial, adding related Qibo-conversion functionality to the API-doc, and added Qibo to our main list of supported frontends. We've also added the capability to use rotated randomized benchmarking circuits as part of the calibrator. These circuits provide expectation values ranging from 0 to 1 when measuring the probability that the output state is in the ground state. Having circuits with a wide range of expectation values is an important benchmarking task, and make a great test for finding the correct error mitigation technique/parameters. If you find any bugs/inconveniences in working with these updates make sure to open an issue so we are able to fix it ASAP!
This release also contains contributions from two new Mitiq contributors, and Unitary Fund team members Alessandro and Jordan! Welcome both, and looking forward to many more contributions! Well done making your first contribution so quickly 🏎️💨!
Commits
- Exit early when circuit type is not supported (#2252) [@cosenal]
- adding rotated randomized benchmarking circuits to calibrator (#2248) [@FarLab]
- add qibo + rearrange frontend order (#2249) [@purva-thakre]
- Fix examples link in README.md (#2242) [@jordandsullivan]
- add link to discussions as a way to contribute (#2234) [@natestemen]
- use python 3.11 for RTD (#2231) [@natestemen]
- fix pennylane tutorial (#2232) [@natestemen]
- Add qibo example to docs (#2220) [@francescsabater]
- replace
black
,flake8
, andisort
withruff
(#2222) [@natestemen] - pin qibo version (#2221) [@natestemen]
- Add Qibo conversions to documentation (#2214) [@nathanshammah]
- Added warning filter to ignore warning (#2211) [@bdg221]
- remove redundant imports (#2206) [@natestemen]
- Indicate master is under development (#2205) [@natestemen]
📦 Dependency updates
- Update pennylane-qiskit requirement from ~=0.34.0 to ~=0.34.1 (#2198) [@dependabot]
- Update qiskit-ibm-provider requirement from ~=0.8.0 to ~=0.10.0 (#2196) [@dependabot]
- Update pennylane requirement from ~=0.34.0 to ~=0.35.1 (#2227) [@dependabot]
- Update pennylane-qiskit requirement from ~=0.34.1 to ~=0.35.1 (#2225) [@dependabot]
- Bump stimcirq from 1.12.1 to 1.13.0 (#2236) [@dependabot]
- Bump stim from 1.12.1 to 1.13.0 (#2237) [@dependabot]
🧑💻 Dev Dependency updates
- Bump all documentation dependencies (#2179) [@dependabot]
- Bump pytest-cov from 4.0.0 to 5.0.0 (#2240) [@dependabot]
v0.34.0
Changelog
Version 0.34.0
Announcing support for Qibo, a newly integrated frontend in Mitiq! 📣 Qibo is an "end-to-end open source platform for quantum simulation, self-hosted quantum hardware control, calibration and characterization".
Thank you to new contributor Francesc Sabater for excellent work integrating Qibo and Mitiq! Thanks also to new contibutor Sam Burdick for fixing our readme.
This release also includes a refactoring of part of the Mitiq shadows module, mitiq.shadows.classical_postprocessing
, for speed of execution and code readability.
📓 Documentation
We've continued to enhance our (legendary!) documentation with:
- Addition of a security policy document
- Faster execution of the learning-based PEC tutorial in CI
Commits
- Add support for qibo circuits (#2102) [@francescsabater]
- Reduce doc build time for learning representations (#2165) [@Misty-W]
- Create SECURITY.md (#2162) [@nathanshammah]
- Fix typo in README.md (#2173) [@smburdick]
- Refactor classical postprocessing in shadows module (#2152) [@natestemen]
- Fix broken link in
combine_rem_zne.md
(#2156) [@Misty-W]
📦 Dependency updates
- Bump openfermion from 1.6.0 to 1.6.1 (#2182) [@dependabot]
- Update amazon-braket-sdk requirement from ~=1.68.3 to ~=1.69.0 (#2177) [@dependabot]
- Bump pyscf from 2.4.0 to 2.5.0 (#2176) [@dependabot]
- Update amazon-braket-sdk requirement from ~=1.66.0 to ~=1.68.3 (#2175) [@dependabot]
- Update qiskit-aer requirement from ~=0.13.1 to ~=0.13.2 (#2157) [@dependabot]
- Bump pytest from 7.1.3 to 8.0.0 (#2167) [@dependabot]
- Update amazon-braket-sdk requirement from ~=1.65.1 to ~=1.66.0 (#2155) [@dependabot]
- Update pennylane-qiskit requirement from ~=0.33.1 to ~=0.34.0 (#2154) [@dependabot]
- Update pennylane requirement from ~=0.33.1 to ~=0.34.0 (#2153) [@dependabot]
- Update qiskit-ibm-provider requirement from ~=0.7.3 to ~=0.8.0 (#2151) [@dependabot]
v0.33.0
v0.32.0
Version 0.32.0
Happy holidays, and happy (almost) new year!! ❄️☃️🎄🎊 This will be our last release of the year, and we'd like to thank everyone who has contributed to Mitiq over the past 12 months. We've accomplished so much in the way of error mitigation this year, and we couldn't have done it without the support and time given by the volunteers.
Thank you!
The calibrator logs have been revamped for to support result discovery and analysis. The Calibrator.run
method now support two options: flat
and cartesian
to display the experiment results in either a linear fashion, or grid-like. Results here have been truncated for brevity.
>>> calibrator.run(log="flat")
┌──────────────────────────┬────────────────────────────────────┬────────────────────────────┐
│ benchmark │ strategy │ performance │
├──────────────────────────┼────────────────────────────────────┼────────────────────────────┤
│ Type: ghz │ Technique: ZNE │ ✔ │
│ Num qubits: 2 │ Factory: Linear │ Noisy error: 0.04 │
│ Circuit depth: 2 │ Scale factors: 1.0, 2.0, 3.0 │ Mitigated error: 0.02 │
│ Two qubit gate count: 1 │ Scale method: fold_gates_at_random │ Improvement factor: 2.0 │
├──────────────────────────┼────────────────────────────────────┼────────────────────────────┤
│ Type: ghz │ Technique: ZNE │ ✘ │
│ Num qubits: 2 │ Factory: Linear │ Noisy error: 0.04 │
│ Circuit depth: 2 │ Scale factors: 1.0, 3.0, 5.0 │ Mitigated error: 0.0658 │
│ Two qubit gate count: 1 │ Scale method: fold_global │ Improvement factor: 0.6076 │
├──────────────────────────┼────────────────────────────────────┼────────────────────────────┤
│ Type: ghz │ Technique: ZNE │ ✘ │
│ Num qubits: 2 │ Factory: Richardson │ Noisy error: 0.98 │
│ Circuit depth: 33 │ Scale factors: 1.0, 3.0, 5.0 │ Mitigated error: 1.03 │
│ Two qubit gate count: 14 │ Scale method: fold_global │ Improvement factor: 0.9515 │
└──────────────────────────┴────────────────────────────────────┴────────────────────────────┘
>>> calibrator.run(log="cartesian")
┌────────────────────────────────────┬────────────────────────────┬────────────────────────────┐
│ strategy\benchmark │ Type: ghz │ Type: mirror │
│ │ Num qubits: 2 │ Num qubits: 2 │
│ │ Circuit depth: 2 │ Circuit depth: 33 │
│ │ Two qubit gate count: 1 │ Two qubit gate count: 14 │
├────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
│ Technique: ZNE │ ✘ │ ✘ │
│ Factory: Richardson │ Noisy error: 0.03 │ Noisy error: 1.0 │
│ Scale factors: 1.0, 2.0, 3.0 │ Mitigated error: 0.09 │ Mitigated error: 1.03 │
│ Scale method: fold_global │ Improvement factor: 0.3333 │ Improvement factor: 0.9709 │
├────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
│ Technique: ZNE │ ✘ │ ✔ │
│ Factory: Richardson │ Noisy error: 0.03 │ Noisy error: 1.0 │
│ Scale factors: 1.0, 3.0, 5.0 │ Mitigated error: 0.0563 │ Mitigated error: 0.97 │
│ Scale method: fold_global │ Improvement factor: 0.5333 │ Improvement factor: 1.0309 │
├────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
│ Technique: ZNE │ ✘ │ ✔ │
│ Factory: Linear │ Noisy error: 0.03 │ Noisy error: 1.0 │
│ Scale factors: 1.0, 3.0, 5.0 │ Mitigated error: 0.0417 │ Mitigated error: 0.9975 │
│ Scale method: fold_global │ Improvement factor: 0.72 │ Improvement factor: 1.0025 │
└────────────────────────────────────┴────────────────────────────┴────────────────────────────┘
New benchmarking circuits: mitiq.benchmarks
now contains a function generate_random_clifford_t_circuit
which does what it says on the tin. Special shoutout to new UF team member Farrokh Labib (@FarLab) for this contribution.
from mitiq.benchmarks import generate_random_clifford_t_circuit
clifft = generate_random_clifford_t_circuit(
num_qubits=2,
num_oneq_cliffords=5,
num_twoq_cliffords=5,
num_t_gates=5
)
print(clifft)
# 0: ───────────@───S───T───@───H───T───X───T───T───@───@───────
# │ │ │ │ │
# 1: ───S───T───@───────────X───────────@───S───────@───X───S───
The Executor.run
method now supports a single circuit instance in addition to a list for ease of use when working with a single circuit.
- executor.run([circuit])
+ executor.run(circuit)
Faster Tests! Working on Mitiq has never been easier to develop with a faster (by 36%) test suite.
📓 Documentation
This release contains quite a few documentation improvements, including
- New workflow images to elucidate the workflow for for using the
mitiq.shadows
module (available here) - A reorganized API-doc which should be easier to navigate
- General clean up of the CDR user guide pages
Commits
- Clarify CDR training docs regarding the use of a markov chain monte carlo (#2130) [@natestemen]
- Update workflow images in documentation (#2034) [@purva-thakre]
- 2115 pauli twirling callibration of expectation estimation shadow needs continue (#2116) [@bdg221]
- Add randomized clifford+T benchmarking circuits. (#2118) [@FarLab]
- Frontend/Backend docs clean up (#2124) [@natestemen]
- Speed up tests using mocks (#2126) [@natestemen]
- resolve flaky mirror QV circuit test (#2127) [@natestemen + @Misty-W]
- Simplify expectation_estimation_shadow code (#2113) [@bdg221]
- Refactor calibration logs (#2074) [@kozhukalov]
- Organize API-doc (#2104) [@purva-thakre]
- add support for single circuit on exeuctor run method (#2099) [@EmilianoG-byte]
📦 Dependency updates
- Update qiskit-ibm-provider requirement from ~=0.7.2 to ~=0.7.3 (#2122) [@dependabot]
- Update cirq requirement from <1.3.0,>=1.0.0 to >=1.0.0,<1.4.0 (#2107) [@dependabot]
- Update pennylane requirement from ~=0.32.0 to ~=0.33.1 (#2091) [@dependabot]
- Update pennylane-qiskit requirement from ~=0.32.0 to ~=0.33.0 (#2081) [@dependabot]
- Bump stim/stimcirq from 1.12.0 to 1.12.1 (#2106) [@dependabot]
- Update amazon-braket-sdk requirement from ~=1.59.2 to ~=1.64.1 (#2089 + #2094 + #2114 + #2123) [@dependabot]
- Update scipy requirement from <=1.11.3,>=1.5.0 to >=1.5.0,<=1.11.4 (#2095) [@dependabot]
🧑💻 Dev Dependency updates
- Bump myst-nb from 0.17.1 to 1.0.0 (#2090) [@dependabot]
- Bump pandas from 2.1.2 to 2.1.3 (#2093) [@dependabot]
- Bump matplotlib from 3.8.0 to 3.8.1 (#2084) [@dependabot]
- Bump isort from 5.12.0 to 5.13.2 (#2120 + #2125) [@dependabot]
- Bump actions/setup-python from 4 to 5 (#2112) [@dependabot]
Release v0.31.0
Changelog
Version 0.31.0
Released November 2, 2023
Summary
This release contains several documentation improvements and some new additions. Quantum subspace expansion (QSE) is added to the user guide (thanks @bubakazouba). Thanks to our first time contributors @dubeyPraY for a new tutorial on using PennyLane and Mitiq in calculating the energy landscape of a simple variational circuit and @kozhukalov for adding the PEC noise level and calculated error to the calibration logs. We also removed support for python 3.8.
All changes
- Second incremental speed up of Mitiq tests [@Misty-W]
- More general conversion decorator and fix conversion bug in PEC (#2064) [@andreamari]
- Added Example for Mitiq in simple landscape for Pennylane (#2048) [@dubeyPraY]
- Indicate under active development on master (#2054) [@Misty-W]
- 2029 update contributing docs.md for references thumbnails viewing rtd build (#2053) [@bdg221]
- Add noise level to the PEC calibration log (#2045) [@kozhukalov]
- 2024 reduce documentation build time after classical shadows added (#2058) [@bdg221]
- Clean up GitHub CI (#2069) [@natestemen]
- remove binder directory (#2071) [@natestemen]
- drop support for python 3.8 (#2068) [nate stemen]
- Include calculated error in calibrator logs (#2038) [@kozhukalov]
- Adds QSE user guide (#1976) [@bubakazouba]
Dependency updates
- Bump openfermion from 1.5.1 to 1.6.0 (#2078) [@dependabot]
- Update qiskit-aer requirement from ~=0.12.2 to ~=0.13.0 (#2076) [@dependabot]
- Bump pandas from 2.1.1 to 2.1.2 (#2077) [@dependabot]
- Update qiskit requirement from ~=0.44.2 to ~=0.44.3 (#2073) [@dependabot]
- Update scipy requirement from <=1.11.2,>=1.5.0 to >=1.5.0,<=1.11.3 (#2031) [@dependabot]
- Update qiskit-ibm-provider requirement from ~=0.7.1 to ~=0.7.2 (#2072) [@dependabot]
- Update amazon-braket-sdk requirement from ~=1.55.1 to ~=1.59.2 (#2070) [@dependabot]
- Bump pyscf from 2.3.0 to 2.4.0 (#2055) [@dependabot]
- Update qiskit requirement from ~=0.44.1 to ~=0.44.2 (#2041) [@dependabot]
- Update qiskit-ibm-provider requirement from ~=0.7.0 to ~=0.7.1 (#2059) [@dependabot]
- Bump matplotlib from 3.7.3 to 3.8.0 (#2020) [@dependabot]
- Bump pandas from 2.0.3 to 2.1.1 (#2023) [@dependabot]
- Update pennylane-qiskit requirement from ~=0.31.0 to ~=0.32.0 (#1980) [@dependabot]
- Update seaborn requirement from ~=0.12.2 to ~=0.13.0 (#2037) [@dependabot]
New Contributors
- @kozhukalov made their first contribution in #2038
- @dubeyPraY made their first contribution in #2048
Full Changelog: v0.30.0...v0.31.0
Release v0.30.0
Changelog
Version 0.30.0
Released October 13, 2023
Summary
This release contains several documentation improvements and some new additions.
The classical shadows documentation has been improved (including a tutorial!) by @Min-Li. The Pauli Twirling method is added to the user guide (thanks @Aaron-Robertson and @purva-thakre). There is a new tutorial applying both zero-noise extrapolation (ZNE) and Clifford Data Regression (CDR) to quantum simulation, for the 1D Ising chain, in Cirq, by @farzadkianvash, a new contributor! The documentation has been further improved and unified by @Misty-W and @natestemen.
In terms of additions, a new type of benchmark quantum circuits, "rotated" randomized benchmarking (RB) quantum circuits have been added by @Misty-W, for more general benchmarks.
All changes
- Add a tutorial for simulating Ising 1-D chain with Cirq with ZNE and CDR [@farzadkianvash]
- Add section on quantum noise to user guide (#2036) [@Misty-W]
- New QEM benchmarking method: "rotated" RB circuits (#2028) [@Misty-W]
- Add Pauli Twirling (PT) User Guide (#1848) [@Aaron-Robertson @purva-thakre]
- Documentation cleanup (#2008) [@natestemen]
- Remove draft workflow from Github Actions (#2019) [@purva-thakre]
- Improve documentation of Classical Shadows (#2026) [@Min-Li]
- Classical Shadows: Add tutorial (#1945) [@Min-Li]
Dependency updates
- Update amazon-braket-sdk requirement from ~=1.54.1 to ~=1.55.1 (#2016) [@dependabot]
- Bump matplotlib from 3.7.2 to 3.7.3 (#2011) [@dependabot]
What's Changed
- Bump matplotlib from 3.7.2 to 3.7.3 by @dependabot in #2011
- [Classical Shadows 5] Shadows/RShadows tutorial by @Min-Li in #1945
- Add missing section in classical shadows example by @Min-Li in #2026
- Remove draft workflow by @purva-thakre in #2019
- Update amazon-braket-sdk requirement from ~=1.54.1 to ~=1.55.1 by @dependabot in #2016
- Documentation cleanup by @natestemen in #2008
- Pauli Twirling (PT) User Guide by @Aaron-Robertson in #1848
- New QEM benchmarking method: "rotated" RB circuits by @Misty-W in #2028
- Add section on quantum noise to user guide by @Misty-W in #2036
- Added a tutorial for simulating Ising 1-D chain using mitiq with cirq… by @farzadkianvash in #2002
- Prepare v.0.30.0 release by @nathanshammah in #2050
- Update CHANGELOG.md version typo by @nathanshammah in #2051
New Contributors
- @farzadkianvash made their first contribution in #2002
Full Changelog: v0.29.0...v0.30.0