Skip to content

Releases: Qiskit/qiskit

Qiskit Terra 0.7.2

01 May 15:08
0.7.2
13bd519
Compare
Choose a tag to compare

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

04 Mar 21:30
Compare
Choose a tag to compare

Changelog

Fixed

  • Fixed a bug with measurement sampling optimization in BasicAer
    qasm_simulator (#1624).

Qiskit Terra 0.7.0

19 Dec 12:39
Compare
Choose a tag to compare

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 the qiskit.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() and from_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 and backend_overview Jupyter magics,
    as well as plot_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 setting memory=True in compile()/execute(),
    and retrieve them from result.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 the result() 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:
  • The qiskit.tools.visualization.circuit_drawer() method now returns
    a matplotlib.Figure object when the mpl output is used and a
    TextDrawer object when text output is used. (#1224, #1181)
  • Speed up the Pauli class and extended its operators (#1271 #1166).
  • IBMQ.save_account() now takes an overwrite 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.status() (#1301).
    • backend.configuration() (and __init__) (#1323).
    • backend.properties(), returning None for sims (#1331, #1401).
    • qiskit.Result (#1360).
  • 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 to qiskit.providers (#1531).
  • qiskit.backends.aer has been removed in favor of
    qiskit.providers.builtinsimulators (Python simulators) and
    qiskit.providers.legacysimulators (C++ simulators) (#1484)
  • Aer in qiskit 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 module BasicAer which provides the
    Python simulators and LegacySimulators which provides the old C++
    simulators in qiskit-terra. (#1484)

Deprecated

  • plot_circuit(), latex_circuit_drawer(), generate_latex_source(),
    and matplotlib_circuit_drawer() from qiskit.tools.visualization are
    deprecated. Instead the circuit_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() and qiskit.wrapper.load_qasm_file()
    functions are deprecated and the QuantumCircuit.from_qasm_str() and
    QuantumCircuit.from_qasm_file() contstructor methods should be used instead
    (#1172)
  • The plot_barriers and reverse_bits keys in the style kwarg dict
    are deprecated, instead the qiskit.tools.visualization.circuit_drawer()
    kwargs plot_barriers and reverse_bits should be used instead. (#1180)
  • The transpile_dag() function format kwarg for emitting different
    output formats is deprecated (#1319).
  • Several methods of qiskit.Result have been deprecated (#1360).
  • The functions plot_state() and iplot_state() have been depreciated.
    Instead the functions plot_state_*() and iplot_state_*() should be
    called. (#1359)
  • The skip_transpiler arg has been deprecated from compile() 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 in plot_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 in IBMQJob 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
    in qiskit.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 the qiskit.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 the circuit_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() and backend.calibration() have been fully
    deprecated, in favour of backend.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 for len() and indexing have been
    removed, along with the functions that perform post-processing (#1351).
  • The get_snapshot() and get_snapshots() method from the Result
    class has been removed. Instead you can access the snapshots in a Result
    using Result.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 the Result.get_xxx() methods
    (i.e. get_counts(), get_memory(), get_statevector(),
    get_unitary()...
Read more

Qiskit Terra 0.6.1

07 Oct 08:54
58f5ba9
Compare
Choose a tag to compare

Changelog

  • Re-package Linux wheel to fix a problem with the native simulator

Qiskit Terra 0.6.0

04 Oct 10:02
a3c67a5
Compare
Choose a tag to compare

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 to IBMQ.load_accounts().

Changed

  • Schema tests in tests/schemas/test_schemas.py replaced with proper
    unit test (#834).
  • Renamed QISKit to Qiskit in the documentation. (#634)
  • Use Qobj as the formally defined schema for sending information to the devices:
    • introduce the qiskit.qobj module. (#589, #655)
    • update the Qobj JSON schema. (#668, #677, #703, #709)
    • update the local simulators for accepting Qobj as input. (#667)
    • update the Result class. (#773)
  • 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() or plot_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 the plot_histogram() function is now
    deprecated. A field of the same name should be used in the option
    dictionary kwarg instead. (#866)
  • Breaking change: backend.properties() instead of backend.calibration()
    and backend.parameters() (#870)

Removed

  • Removed the QuantumProgram class. (#724)

Fixed

  • Fixed get_ran_qasm methods on Result 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

19 Jul 13:44
Compare
Choose a tag to compare

Changed

  • Add new backend names support, with aliasing for the old ones.

QISKit SDK 0.5.6

06 Jul 10:56
badebbc
Compare
Choose a tag to compare

Changed

  • Rename repository to qiskit-terra (#606).
  • Update Bloch sphere to QuTiP version (#618).

Removed

  • Remove OpenQuantumCompiler (#610).

Fixed

  • Fixed broken process error and simulator slowdown on Windows (#613).
  • Fixed yzy_to_zyz bugs (#520, #607) by moving to quaternions (#626).

QISKit SDK 0.5.5

02 Jul 10:00
1219800
Compare
Choose a tag to compare

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 now status['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

  • Fix issue with unintended inversion of initializer gates (#573).
  • Fix issue with skip_transpiler causing some gates to be ignored silently (#562).

QISKit SDK 0.5.4

11 Jun 13:18
2dd4770
Compare
Choose a tag to compare

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

29 May 10:28
df613ef
Compare
Choose a tag to compare

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