- Provider tolerates unrecognized job statuses from the server to ensure forward compatibility. #155
- Bugfix: The
delay
operation is now accepted by the standard transpiler. #151
- Use the native
reset
operation to implement :class:`qiskit.circuit.Reset`. #148
- Bugfix in :class:`IQMOptimizeSingleQubitGates`` where the angles are not properly computed for circuits with prx gates on qubits holding a resonator state, i.e. circuits that require running without move gate validation. #147
- Small note about IQM Client's API deprecation warning added to the user guide. #146
- Removed support for Python 3.9.
- Removed support for
qiskit < 1.0
. - Added support for
qiskit == 1.2
andqiskit-aer == 0.15
. - Updated the documentation.
- :meth:`.IQMBackendBase.qubit_name_to_index` and :meth:`.IQMBackendBase.index_to_qubit_name` now raise an error when using an invalid qubit name or index, rather than returning None.
- Refactored :meth:`.IQMBackend.create_run_request` to improve user experience when using IQM specific run options.
- Moved the circuit serialization logic from :class:`.IQMProvider` to :mod:`iqm.qiskit_iqm.qiskit_to_iqm`.
- For IQM Star quantum architectures, :attr:`.IQMBackendBase.target_with_resonators` represents the full, physical architecture. :attr:`.IQMBackendBase.target` represents a Qiskit-compatible version.
- Using the Qiskit transpiler with :class:`.IQMBackend`:
- You can now use the native Qiskit :func:`transpile` function to transpile a circuit to the IQM Star architecture as long as your initial circuit does not use any resonators.
- The Qiskit transpiler now automatically uses the :class:`.IQMOptimizeSingleQubitGates` pass to
optimize single-qubit gates if
optimization_level > 0
. - There are many new transpiler plugins available that you can use as the
scheduling_method
argument in Qiskit's :func:`transpile` function. You can find them in the Qiskit documentation. - If your circuit contains resonators, and optionally :class:`.MoveGate` operations, you can use the :func:`.transpile_to_IQM` function to transpile your circuit for the IQM Star architecture.
- :func:`.transpile_to_IQM` can now restrict itself to use a subset of the qubits by specifying
the
restrict_to_qubits
argument. You will need to additionally provide a qubit mapping to the :meth:`.IQMBackend.run` method to ensure that the correct qubits are used.
- Bugfix where the :func:`.transpile_to_IQM` did not retain the circuit layout after transpiling.
- Fixed :func:`.IQMFakeDeneb` readout errors. Fidelities were reported as errors. #125
- :attr:`.IQMBackend.target` now contains symmetric gates such as CZ only in the direction they appear in the calibration set. #140
- Deprecated features:
- :func:`.optimize_single_qubit_gates` has been deprecated in favor of using the new transpiler plugins or :func:`.transpile_to_IQM`. Additionally, this is now incorporated into the Qiskit transpiler as documented above.
- In :meth:`.IQMBackend.create_run_request`, and as a result in :meth:`.IQMBackend.run`, the
max_circuit_duration_over_t2
andheralding_mode
options have been deprecated in favor of using the :class:`.CircuitCompilationOptions` class from :mod:`iqm.iqm_client`. - The :class:`.IQMBackend` no longer uses Qiskit's
options
attribute to give run options in favor of using the arguments of the :meth:`.IQMBackend.run` method directly.
- Added Python 3.12 support. #139 <#139>
- Python 3.9 support is deprecated and will be removed in the future.
- Fix compatibility with
iqm-client
V2 APIVariant. #132
- Update user guide to incorporate IQM Resonance. #129
- Multiplexed measurements explained in the user guide. #130
reset
operation explained in the user guide. #127
- Move a part of circuit serialization into :func:`iqm.qiskit_iqm.iqm_provider._serialize_instructions`. #126
- Add support for classically controlled R, RX, RY, X, and Y gates. #123
- Remove the deprecated native operation names
phased_rx
andmeasurement
. #123 - Add support for the Reset instruction. #123
- Use dynamic quantum architecture as transpilation target for :class:`IQMBackend`. #124
- Require
iqm-client >= 20.0
. #124 - Disable attestations on
gh-action-pypi-publish
to fix failing PyPI publishing. #124
- Remove unnecessary build files when publishing documentation. #122
- User guide updated. #120
- User guide and API documentation updated. #117
- Adjustments needed to support Qiskit V1 that are backwards compatible with
qiskit < 1.0
. #114 - Updated Qiskit dependencies and testing to support
qiskit >= 0.45.3 < 1.2
andqiskit-aer >= 0.13 < 0.15
. - Adjusted documentation to recommend the use of :meth:`qiskit.transpile()` or :meth:`transpile_to_IQM()` in combination with :meth:`backend.run()` instead of using :meth:`execute()`.
- Added a DeprecationWarning for use of
qiskit < 1.0
. Users are encouraged to read the Qiskit migration guide to see how they need to change their code.
- Add IQMFakeAphrodite backend #113
- Added the option to change the timeout between waiting for results when a job is submitted. Github issue #108
- Added support for optional MOVE gate validation bypassing for advanced users. #112
- Require
iqm-client >= 18.0
. iqm-client PR #124
- Allow inspecting a run request before submitting it for execution. #115
- Require
iqm-client >= 17.8
. #115
- Clarify the documentation on automatic transpilation. #104
- Added a missing character to the docs. #110
- Added IQMFakeDeneb backend for noisy simulation of the Deneb backend. #109
- Require
iqm-client >= 17.6
. #106
- Show full response error in all cases of receiving a HTTP 4xx error response. #103
- Add new job states to support job delete operation in the backend.
- Update the docstring of
max_circuits
property ofIQMBackend
. #95
- Fix
transpile_example
so that it works also when less than 5 qubits are available. #102
- Fix bug where Qiskit job monitoring could give an error when a job is queued. #99
- Move examples inside the Python package. #100
- Update code examples in user guide. #97
- Computational resonator transpilation is now supported with
transpile_to_IQM
. #96 - Require
iqm-client >= 17.2
. #96 - Define
move
gate asswap
. #96
- Require
iqm-client >= 17.0
#90 - Add MoveGate to model the move operation between qubit and resonator.
- Add
IQMCircuit
wrapper forQuantumCircuit
to allow.move()
operation to be used more easily. - Add a layout pass to ensure correct qubits are selected for transpilation based on quantum architecture.
- Use GitHub Action as a Trusted Publisher to publish packages to PyPI. #94
- Remove multiversion documentation. #92
- Require
iqm-client >= 16.0
. - Remove
circuit_duration_check
fromIQMBackend
options. - Add
max_circuit_duration_over_t2
toIQMBackend
options.
- Require
iqm-client >= 15.2
. Bump dependencies and dev tools. #89
- Add
name
to backends. #88
- Add
IQMFakeApollo
fake backend. #66
- Update user guide with more information of execution timestamps. #85
- Use latest version of
sphinx-multiversion-contrib
to fix documentation version sorting. #84
- Fix typo in how the job status is reported. #83
- Add IQM specific circuit optimization. #81
- Raise warning instead of error when unknown option is passed to
IQMBackend.run
. #82
- Add
circuit_callback
option toIQMBackend
. #80 - Raise error when unknown option is passed to
IQMBackend.run
. Previously they were silently ignored. #80 - Improve handling of options passed to
IQMBackend.run
. #80 - Fix the type of
date
in result object. #80 IQMBackend.run
can now accept circuits containing x, rx, y and ry gates. #80
- Move
qiskit_iqm
package toiqm
namespace. #79
- Update user guide with information of execution timestamps. #78
- Upgrade to qiskit ~= 0.44.1. #77
- Make the
max_circuits
property ofIQMBackend
user-configurable. #77 - Implement
error_message
method forIQMJob
. #77 - Explicitly specify symmetric CZ properties when building the transpilation target. #77
- Upgrade to iqm-client >= 13.2. #76
- Fix two-qubit gate error construction in
IQMFakeBackend
.
- Capture execution timestamps in :meth:`IQMJob.result`.
- More accurate mapping of job statuses in :meth:`IQMJob.status`.
- Documentation fixes.
- Clarify the documentation on backend options. #73
- Support the identity gate. #71
- Add support for Python 3.11. #70
- Implement
cancel
method forIQMJob
. #69
- Update the script link for the Hello world example. #68
- Fix a bug in the Hello world example. #67
- Add readout errors to
IQMErrorProfile
. #50
- Bugfixes for
heralding
run with zero shots returned. #65 - Allow specifying
calibration_set_id
both as string and asUUID
. #65
- Upgrade to IQMClient version 12.4 #61
- Add parameter
circuit_duration_check
allowing to control server-side maximum circuit duration check #61
- Add info about custom calibration set to user guide #59
- Generate license information for dependencies on every release #57
- Upgrade to IQMClient version 12.2 #56
- Upgrade to IQMClient version 12.0 #55
- Bump Qiskit dependency to ~= 0.42.1 #54
- Add facade backend for Adonis by introducing
facade_adonis
backend type #53
- Add request into result metadata #51
- Drop circuit metadata if it is not JSON serializable #49
- Produce
UserWarning
if metadata is dropped #49
- "Pin down" supported Python versions to 3.9 and 3.10. #40
- Configure Tox to skip missing versions of Python interpreters when running tests. #40
- Move project metadata and configuration to
pyproject.toml
. #40
- Check that circuit metadata is JSON serializable #48
- Adding noisy simulation by introducing
IQMFakeAdonis
andIQMFakeBackend
#35
- Provide version information to IQMClient. #45
- Build and publish docs for older versions. #43
- Make the Hello world example even easier to follow. #44
- Add a simple example for getting started. #41
- Use new opaque UUID for
calibration_set_id
. #37
- Construct
IQMJob.circuit_metadata
from data retrieved from the server, if needed. #36
- Upgrade to
qiskit ~= 0.39.1
and remove the life hack of adding measurement gates to the target. #34
- Add
qubit_name_to_index
andindex_to_qubit_name
methods toIQMBackend
. #33 - Fix the indexing order of qubits. #33
- Implement transpiler target for
IQMBackend
. #32
- Remove
settings
option fromIQMBackend.run
. #28
- Enable mypy support. #27
- Move calibration set ID from result's metadata to the individual results' metadata. #25
cortex-cli
is now the preferred way of authentication.
- Add optional
calibration_set_id
parameter toIQMBackend.run
. #20 - Update documentation regarding the use of Cortex CLI. #20
- iqm-client 6.0 support. #21
- Remove
settings_path
fromIQMProvider
and addsettings
option toIQMBackend.run
. #17
- Use metadata returned from iqm-client for minor improvements. #19
- Experimental enabling of batch circuit exection. #18
- Make
settings_path
optional parameter forIQMProvider
. #14 - Requires iqm-client 3.3 if
settings_path
is not specified.
- Use IQM Client's
get_run_status
instead ofget_run
to retrieve status. #13 - Requires iqm-client 3.2
- Allow serialization of
barrier
operations. #12
- Fix code examples in user guide, add missing dependency in developer guide. #8
- Updated documentation layout to use sphinx-book-theme. #6
- Publish
qiskit_iqm
. #4 - Implement functionality to serialize compatible circuits, send for execution and parse returned results. #3
- Project skeleton created.