Releases: Qiskit/qiskit
Releases · Qiskit/qiskit
Qiskit Terra 0.7.2
Changelog
Fixed
- A potential issue where the backend configuration schema validation would
improperly reject valid responses from the API (#2258)
Qiskit Terra 0.7.1
Changelog
Fixed
- Fixed a bug with measurement sampling optimization in BasicAer
qasm_simulator (#1624).
Qiskit Terra 0.7.0
Changelog
Added
- Added DAG visualizer which requires
Graphivz <https://www.graphviz.org/>
_
(#1059) - Added an ASCII art circuit visualizer (#909)
- The QuantumCircuit class now returns an ASCII art visualization when treated
as a string (#911) - The QuantumCircuit class now has a
draw()
method which behaves the same
as theqiskit.tools.visualization.circuit_drawer()
function for visualizing
the quantum circuit (#911) - A new method
hinton
can be used on
qiskit.tools.visualization.plot_state()
to draw a hinton diagram (#1246) - Two new constructor methods,
from_qasm_str()
andfrom_qasm_file()
, to
create a QuantumCircuit object from OpenQASM were added to the
QuantumCircuit class. (#1172) - New methods in QuantumCircuit for common circuit metrics:
size()
,depth()
,width()
,count_ops()
,num_tensor_factors()
(#1285) - Added
backend_monitor
andbackend_overview
Jupyter magics,
as well asplot_coupling_map
(#1231) - Added a
Layout
object (#1313) - New
plot_bloch_multivector()
to plot Bloch vectors from a tensored state
vector or density matrix. (#1359) - Per-shot measurement results are available in simulators and select devices.
Request them by settingmemory=True
incompile()
/execute()
,
and retrieve them fromresult.get_memory()
(#1385). - Added a
qiskit.converters
module for translation between commonly used
representations of a circuit:dag_to_circuits
,circuits_to_dag
,
qobj_to_circuits
,circuits_to_qobj
,ast_to_dag
. - PassManager can schedule passes at init time (#1510).
- Added a
.qobj()
method for IBMQ and local simulator Jobs (#1532). - New Decompose pass for decomposing a gate according to a rule (#1487).
- New Unroller pass in the transpiler for unrolling up to some basis (#1455).
- New BarrierBeforeFinalMeasurements pass for preventing final
measure reorder (#1538). - New CommutationAnalysis and CommutationTransformation transpiler
passes for modifying a DAG based on gate commutativity relations (#1500). - New transpiler mapper pass: BasicSwap (#1270).
- New transpiler mapper pass: LookaheadSwap (#1140).
- New transpiler mapper pass: StochasticSwap (#1520).
- New CXDirection pass for fixing the direction of cx gates (#1410).
- New CheckMap pass for checking if circuit meets mapping requirements (#1433).
- New Optimize1QGate pass for combining chains of 1q rotations (#1442).
Changed
- Evolved pass-based transpiler to support advanced functionality (#1060)
.retrieve_job()
and.jobs()
no longer returns results by default,
instead the result must be accessed by theresult()
method on the job
objects (#1082).- Make
backend.status()
dictionary conform with schema. - The different output backends for the circuit_drawer() visualizations
have been moved into separate private modules in
qiskit.tools.visualizations
. (#1105, #1111) - DAG nodes contain pointers to Register and Instruction objects, rather
than their string names (#1189). - Upgraded some external dependencies to:
- networkx>=2.2 (#1267).
- The
qiskit.tools.visualization.circuit_drawer()
method now returns
a matplotlib.Figure object when thempl
output is used and a
TextDrawer
object whentext
output is used. (#1224, #1181) - Speed up the Pauli class and extended its operators (#1271 #1166).
IBMQ.save_account()
now takes anoverwrite
option to replace an existing
account on disk. Default is False (#1295).- Backend and Provider methods defined in the specification use model objects
rather than dicts, along with validation against schemas (#1249, #1277,
#1350). The updated methods include: backend.provider()
is now a method instead of a property (#1312).- Remove local backend (Aer) fallback (#1303)
- The signatures for the plotting functions in
qiskit.tools.visualization._counts_visualization.py
,
qiskit.tools.visualization._state_visualization.py
, and
qiskit.tools.visualization.interactive
have been modified to make them
in-line with standard Matplotlib calling conventions (#1359). - Remove local backend (Aer) fallback (#1303).
- DAGCircuits store Instruction and Register objects, instead of name
references. The DAGCircuit class methods are updated accordingly (#1210). transpile()
now takes QuantumCircuit(s) to QuantumCircuit(s), and DAG
processing is only done internally (#1397).- The different unrollers are deprecated. The only unrolling happens
from DAG to DAG (#1210). - Moved all the circuit modules into a circuit module but for most users it
is still imported in the top level for QuantumCircuit, QuantumRegister,
ClassicalRegister qiskit.backends
has been renamed toqiskit.providers
(#1531).qiskit.backends.aer
has been removed in favor of
qiskit.providers.builtinsimulators
(Python simulators) and
qiskit.providers.legacysimulators
(C++ simulators) (#1484)Aer
inqiskit
root module depends on having the
qiskit-aer package installed, by default it is not present. Instead there are
2 new provider instances in the root moduleBasicAer
which provides the
Python simulators andLegacySimulators
which provides the old C++
simulators in qiskit-terra. (#1484)
Deprecated
plot_circuit()
,latex_circuit_drawer()
,generate_latex_source()
,
andmatplotlib_circuit_drawer()
from qiskit.tools.visualization are
deprecated. Instead thecircuit_drawer()
function from the same module
should be used. (#1055)- The current default output of
circuit_drawer()
(using latex and falling
back on python) is deprecated and will be changed in the future. (#1055) - The
qiskit.wrapper.load_qasm_string()
andqiskit.wrapper.load_qasm_file()
functions are deprecated and theQuantumCircuit.from_qasm_str()
and
QuantumCircuit.from_qasm_file()
contstructor methods should be used instead
(#1172) - The
plot_barriers
andreverse_bits
keys in thestyle
kwarg dict
are deprecated, instead theqiskit.tools.visualization.circuit_drawer()
kwargsplot_barriers
andreverse_bits
should be used instead. (#1180) - The
transpile_dag()
functionformat
kwarg for emitting different
output formats is deprecated (#1319). - Several methods of
qiskit.Result
have been deprecated (#1360). - The functions
plot_state()
andiplot_state()
have been depreciated.
Instead the functionsplot_state_*()
andiplot_state_*()
should be
called. (#1359) - The
skip_transpiler
arg has been deprecated fromcompile()
and
execute()
in favor of using the PassManager directly.
Fixed
- Fixed a variety of typos throughout sources (#1139)
- Fixed horizontal spacing when drawing barriers before CCNOT gates in latex
circuit plots (#1051) - Use case insensitive matching when comparing premium account URLs. (#1102)
- Fixed AerJob status when the submitted Job is in a PENDING state. (#1215)
- Add fallback for when CPU count can't be determined (#1214)
- Fix
random_state
from returning nan (#1258) - The Clifford simulator
run()
method now works correctly with the updated
AerJob usage (#1125) - Fixed an edge case when connection checks would raise an unhandled exception
(#1226) - Fixed a bug where the transpiler moved middle-of-circuit measurements to the
end (#1334) - The
number_to_keep
kwarg inplot_histgram()
now functions correctly
(#1359). - parallel_map no longer creates a progress bar for a single circuit (#1394).
- The
timeout
parameter is now passed into the inner_wait_for_submission
function inIBMQJob
from_wait_for_result
(#1542).
Removed
- Remove register, available_backends (#1131).
- Remove tools/apps (#1184).
- Removed the dependency on
IBMQuantumExperience
, as it is now included
inqiskit.backends.IBMQ
(#1198). matplotlib
is no longer in the package requirements and is now an
optional dependency. In order to use any matplotlib based visualizations
(which includes theqiskit.tools.visualization.circuit_drawer()
mpl
output,
qiskit.tools.visualization.plot_state
,
qiskit.tools.visualization.plot_histogram
, and
qiskit.tools.visualization.plot_bloch_vector
you will now need to ensure
you manually install and configure matplotlib independently.- The
basis
kwarg for thecircuit_drawer()
function to provide an
alternative list of basis gates has been removed. Instead users should adjust
the basis gates prior to visualizing the circuit. (#1151) backend.parameters()
andbackend.calibration()
have been fully
deprecated, in favour ofbackend.properties()
(#1305).- The
qiskit.tools.file_io
module has been removed. Conversion between
qiskit.Result
and json can be achieved using.to_dict()
and
.from_dict()
directly (#1360). - The
qiskit.Result
class method forlen()
and indexing have been
removed, along with the functions that perform post-processing (#1351). - The
get_snapshot()
andget_snapshots()
method from theResult
class has been removed. Instead you can access the snapshots in a Result
usingResult.data()['snapshots']
. - Completed the deprecation of
job.backend_name()
,job.id()
, and the
backend_name
parameter in its constructor. - The
qiskit.Result
class now does post-processing of results returned
from backends if they are called via theResult.get_xxx()
methods
(i.e.get_counts()
,get_memory()
,get_statevector()
,
get_unitary()
...
Qiskit Terra 0.6.1
Changelog
- Re-package Linux wheel to fix a problem with the native simulator
Qiskit Terra 0.6.0
Changelog
Added
- Added
SchemaValidationError
to be thrown when schema validation fails (#881) - Generalized Qobj schema validation functions for all qiskit schemas (#882).
- Added decorator to check for C++ simulator availability (#662)
- It is possible to cancel jobs in non comercial backends (#687)
- Introduced new
qiskit.IBMQ
provider, with centralized handling of IBMQ
credentials (qiskitrc file, environment variables). (#547, #948, #1000) - Add OpenMP parallelization for Apple builds of the cpp simulator (#698).
- Add parallelization utilities (#701)
- Parallelize transpilation (#701)
- New interactive visualizations (#765).
- Added option to reverse the qubit order when plotting a circuit. (#762, #786)
- Jupyter notebook magic function qiskit_job_status, qiskit_progress_bar (#701, #734)
- Add a new function
qobj_to_circuits
to convert a Qobj object to
a list of QuantumCircuit objects (#877) - Allow selective loading of accounts from disk via hub/group/project
filters toIBMQ.load_accounts()
.
Changed
- Schema tests in
tests/schemas/test_schemas.py
replaced with proper
unit test (#834). - Renamed
QISKit
toQiskit
in the documentation. (#634) - Use
Qobj
as the formally defined schema for sending information to the devices: - Use
get_status_job()
for checking IBMQJob status. (#641) - Q network hub/group/project credentials replaced by new url format. (#740)
- Breaking change:
Jobs
API simplification. (#686) - Breaking change: altered tomography APIs to not use QuantumProgram. (#818)
- Breaking change:
BaseBackend
API changed, properties are now methods (#858) - When
plot_histogram()
orplot_state()
are called from a jupyter
notebook if there is network connectivity the interactive plots will be used
by default (#862, #866) - Breaking change:
BaseJob
API changed, any job constructor must be passed
the backend used to run them and a unique job id (#936). - Add support for drawing circuit barriers to the latex circuit drawer. This
requires having the LaTeX qcircuit package version >=2.6.0 installed (#764)
Deprecated
- The
number_to_keep
kwarg on theplot_histogram()
function is now
deprecated. A field of the same name should be used in theoption
dictionary kwarg instead. (#866) - Breaking change:
backend.properties()
instead ofbackend.calibration()
andbackend.parameters()
(#870)
Removed
- Removed the QuantumProgram class. (#724)
Fixed
- Fixed
get_ran_qasm
methods onResult
instances (#688). - Fixed
probabilities_ket
computation in C++ simulator (#580). - Fixed bug in the definition of
cswap
gate and its test (#685). - Fixed the examples to be compatible with version 0.5+ (#672).
- Fixed swap mapper using qubits after measurement (#691).
- Fixed error in cpp simulator for 3+ qubit operations (#698).
- Fixed issue with combining or extending circuits that contain CompositeGate (#710).
- Fixed the random unitary generation from the Haar measure (#760).
- Fixed the issue with control lines spanning through several classical registers (#762).
- Fixed visualizations crashing when using simulator extensions (#885).
- Fixed check for network connection when loading interactive visualizations (#892).
Qiskit Terra 0.5.7
Changed
- Add new backend names support, with aliasing for the old ones.
QISKit SDK 0.5.6
QISKit SDK 0.5.5
Changelog
Added
- Retrieve IBM Q jobs from server (#563, #585).
- Add German introductory documentation (
doc/de
) (#592). - Add
unregister()
for removing previously registered providers (#584). - Add matplotlib-based circuit drawer (#579).
- Adding backend filtering by least busy (#575).
Changed
- Remove backend filtering in individual providers, keep only in wrapper (#575).
- Single source of version information (#581)
- Bumped IBMQuantumExperience dependency to 1.9.6 (#600).
- For backend status,
status['available']
is nowstatus['operational']
(#609). - Added support for registering third-party providers in
register()
(#602).
Removed
- Remove OpenQuantumCompiler (#610).
- Remove Clifford simulator from default available_backends, until its stable
release (#555). - Remove ProjectQ simulators for moving to new repository (#553).
Fixed
QISKit SDK 0.5.4
Changelog
Added
Performance improvements:
remove deepcopies from dagcircuit, and extra check on qasm() (#523)
Changed
Rename repository to qiskit-core (#530).
Repository improvements: new changelog format (#535), updated issue templates (#531).
Renamed the specification schemas (#464).
Convert LocalJob tests into unit-tests. (#526)
Move wrapper load_qasm_* methods to a submodule (#533).
Removed
Remove Sympy simulators for moving to new repository (#514)
Fixed
Fix erroneous density matrix and probabilities in C++ simulator (#518)
Fix hardcoded backend mapping tests (#521)
Removed _modifiers call from reapply (#534)
Fix circuit drawer issue with filename location on windows (#543)
Change initial qubit layout only if the backend coupling map is not satisfied (#527)
Fix incorrect unrolling of t to tdg in CircuitBackend (#557)
Fix issue with simulator extension commands not reapplying correctly (#556)
QISKit SDK 0.5.3
Changelog
- Added load_qasm_file / load_qasm_string methods
- Fixed a crash in the cpp simulator for some linux platforms
- Dependencies version bumped
- Fixed some minor bugs