Skip to content

@mtreinish mtreinish released this Aug 22, 2019 · 26 commits to master since this release

Changelog

Deprecated

  • The gates U and CX are being deprecated in favor of u3 and
    cx. (#2380)
  • The gate u0 is being deprecated in favor of using multiple id gates
    to insert delays (#2664)
  • The decorator requires_qe_access is being deprecated in favor of
    online_test.
  • The as_dict method of Qobj is deprecated in favor of to_dict. (#2556)

Added

  • A new pulse instruction, Delay. A Delay occupies a pulse channel for a
    duration of time, blocking other instructions from being inserted in this time. (#2869)
  • Ability to check for equality of pulse Schedule and Instruction. (#2873)
  • Added tests for gate_map and reference images for testing plot_gate_map
  • New CountOpsLongest analysis pass to retrieve the number of operations
    on the longest path of the DAGCircuit. (#2734)
  • Added sech and sech_deriv pulses in qiskit.pulse.pulse_lib.
  • The option vertical_compression was added to the text drawer and
    to the QuantumCircuit.draw method. The option allows to control
    how much room the text circuit drawing takes.
  • The option idle_wires was added to the drawers to control
    if wires without any operation should be included in the drawing. (#2692)
  • Introduced a visualization for the Pass Manager. (#2445)
  • New pulse schedule method Schedule.filter to filter by instruction
    channel, time, and type. (#2597)
  • Decomposition of arbitrary isometries (#2600)
  • Decomposition of diagonal gates (#2600)
  • Decomposition of multiplexed rotation gates (#2600)
  • Decomposition of multiplexed single-qubit unitaries (Option: decompose
    up to a diagonal gate) (#2600)
  • ZYZ decomposition for single-qubit unitaries (#2600)
  • Gray-Synth and Patel–Markov–Hayes algorithms for synthesis of
    CNOT-Phase and CNOT-only (linear) circuits (#2457)
  • Added n-qubit unitaries to BasicAer simulator basis gates (#2342)
  • Added a random_circuit function under qiskit.circuit.random
    (#2553)
  • Added equiv method to Operator and Statevector classes for
    testing if two objects are equivalent up to global phase (#2910)
  • Added output_name as a transpiler parameter to set the name of
    output circuits (#2745)
  • Simple expressions of Parameters can now be created via the four basic math
    operations (+,-,*,/). (#2537)
  • A ParmeterVector class has been added to ease the construction of circuits
    requiring a large number of parameters. (#2379)
  • dag.draw() method to visualize DAGCircuit objects (#3016)

Changed

  • Intervals are now defined by start and stop, rather than begin and end.
  • TimeslotCollections now are sorted by default and have more efficient merges.
  • Pulse samples are now clipped if their norm is between 1 and 1+epsilon.
    Otherwise an error is raised.
  • Schedule.instructions now returns with time-ordering.
  • More informative errors are now raised if qubit_lo_freq and
    meas_lo_freq are not supplied to assemble_schedules. (#2833)
  • pulse.samplers module has now been moved to pulse.pulse_lib.samplers. (#2881)
  • The number of memory slots required will now be inferred from the supplied
    schedules if memory_slots is not supplied.
  • All circuit drawers now express most commonly used fractions
    of PI (#2808).
  • Set default repetition time to be the first available.
  • Pulse commands may now start with capitalized letters.
  • The pylatexenc and pillow requirements are now optional. These
    are only used by the latex and latex_source circuit
    visualization backends. To continue using them ensure these are
    installed. (#2451)
  • When adding a register to a circuit, an error will now be raised if
    a register of the same name is already present. Previously, an error
    would only be raised if the same register was added twice.
  • Qubits and classical bits are not represented as a tuples anymore,
    but as instances of Qubit and Clbit respectively. (#2414)
  • The ApplyLayout pass is incorporated in all preset pass managers to
    delineate a virtual circuit from a physical circuit (#2672)
  • Mapping passes (CXDirection, Swap passes, CheckMap, CheckCnotDirection)
    now operate on a register-less circuit corresponding to
    an already embedded physical circuit. (#2672)
  • Replaces LegacySwap by faster, more stable StochasticSwap pass (#2672)
  • Uses level 1 by default as transpiler optimization level (#2672)
  • Change Snapshot signature to match simulator.snapshot (#2592)
  • DAGCircuit.width() formerly returned number of qubits, now returns total
    number of qubits + classical bits (#2564)
  • Functions assuming the former semantics of DAGCircuit.width() now call
    DAGCircuit.num_qubits() (#2564)
  • DAGCircuit.num_cbits() renamed to DAGCircuit.num_clbits() (#2564)
  • Changed definition of Cu3Gate to to equivalent to the canonical
    definition of a controlled U3Gate (#2755)
  • coupling_map now required to validate a backend.configuration() (#2836)
  • The method QuantumCircuit.count_ops now returns an OrderedDict instead of a dict.
  • If layout information is available in
    the circuit, it will be included to the circuit drawing. This can be removed
    using the option with_layout=False in the method
    QuantumCircuit.draw. (#2739)
  • Q-sphere visualization is enhanced and corrected (#2932)
  • Shorter CH gate definition involving only 1 CX (#2837)
  • Now PassManager.draw() (without any argument) will return an in-memory PIL image.

Removed

  • The ability to set the Timeslots for a pulse Instruction at initialization.
  • The previously deprecated functions
    qiskit.visualization.plot_state and
    qiskit.visualization.iplot_state have been removed. Instead use
    the specific functions for each plot type (#2325).
  • International documentation of outdated readme etc (#2302)
  • Removed deprecated options in execute, transpile, and assemble.
    Removed deprecated compiler.
  • Removed deprecated qcvv in tools. Removed deprecated converters
    qobj_to_circuits and circuits_to_qobj (#2301)
  • The previously deprecated qiskit._util module has been removed.
    Use qiskit.util instead. (#2329)
  • The logging tools in qiskit.tools.logging are removed. (#2387)
  • The qiskit.qiskiterror module has been removed. Please use
    qiskit.exceptions instead. (#2399)
  • Removed previously deprecated DAGCircuit methods (#2542)
  • Removed CompositeGate class, in favor of adding Instruction
    objects directly (#2543)
  • Removed ignore_requires and ignore_preserves options from
    PassManager (#2565).

Fixed

  • Fixes a bug where the CmdDef was getting built without buffers on channels.
  • Fixed bug in Pulse for multiple parameters being added (#2742)
  • Fixed bug in Pulse for CmdDef arguments (#2741)
  • Fixed bug in Operator and SuperOp for initializing from circuit
    containing gates without an explicit matrix definition (#2723)
  • Possible to decompose SU(4) gate into non-CNOT basis with
    TwoQubitDecomposer
  • Fixes a bug that removed id gates from circuit. id gates are
    like a wait command and will never be removed (#2663)
  • Fixed bug in CommutationAnalysis pass affecting conditional gates (#2669)
  • Fixed bug in measure sampling for BasicAer Qasm simulator if a qubit
    was measured into more than one classical bit (#2735)
  • Correctly serialize complex numbers with a nonzero real part
  • Fixed bug in measure sampling for BasicAer Qasm simulator if only a
    subset of qubits are measured (#2790)
  • Parameter objects can be serialized and communicated between
    sub-processes (#2429)
  • Parameterized circuits no longer need to be transpiled individually (#2864)
Assets 2

@mtreinish mtreinish released this Jun 14, 2019 · 359 commits to master since this release

Changelog

Fixed

  • Fixed an issue with latex circuit drawer backend that could lead to an
    empty image output (#2531)
  • Fixes for issues with the backend monitors for recent changes to IBMQ
    backends (#2637)
  • Fixed an issue where a TimeSlotCollection object would be mutated
    by the is_mergable_with() method (#2639)
Assets 2

@mtreinish mtreinish released this May 29, 2019 · 359 commits to master since this release

Changelog

Fixed

  • Corrected the deprecation warning message for
    qiskit.converters.qobj_to_circuits (#2350)
  • Fixed execute() and transpile() functions to enable setting
    optimization level 0. (#2370)
  • Set the swapper with the seed transpiler for optimization level 2 and 3
    (#2361)
  • Fix default basis gate set for other transpiler passes (#2357)
  • Fix the docstring for transpile to include optimization_level 3 (#2367)
  • Fix spacing in the text circuit drawer (#2382)
  • Fix for too strict math sanitization pulse instructions (#2397)
  • Arugments to assemble_schedule were not actually optional, ensure
    they're required (#2398)
  • Fix for framchange instructions being converted to a string instead of a
    float (#2437)
  • Fix for rep_times as a float, now it's an integer (#2438)
  • Fix type error for integer framechange instructions (#2458)
  • Fix for missing cython source files in sdist (#2436)
  • Fix for different pulse schedules created with the same name (#2431)
  • Only create a single AquireInstruction for all qubits (#2485)
  • Stop modifying layout in stochastic swap pass (#2507)
  • Only call CXDirection pass on optimization_level=3 if coupling map is
    provided (#2526)
  • Fix optimization_level=0 without a coupling map (#2509)
Assets 2

@mtreinish mtreinish released this May 2, 2019 · 359 commits to master since this release

0.8.0 - 2019-05-02

Added

  • Added exact and approximate decomposition of SU(4) to arbitrary supercontrolled basis
  • Introduced schedule lo configuration. (#2115)
  • Introduced pulse schedule assembler. (#2115)
  • Builtin library of continuous pulses and builtin library of discrete pulses which are obtained
    by sampling continuous pulses with default sampling strategy.
  • Sampler decorator and standard sampler library for conversion of continuous pulses
    to discrete SamplePulse (#2042).
  • Core StochasticSwap routine implimented in Cython (#1789).
  • Added QuantumChannel classes SuperOp, Choi, Kraus, Stinespring, PTM, Chi to
    quantum_info for manipulating quantum channels and CPTP maps.
  • Added Operator object to quantum_info for representing matrix operators.
  • Introduced the backend defaults model and endpoint for pulse backends (#2101).
  • meas_level to result schema (#2085).
  • Core StochasticSwap routine implemented in Cython (#1789).
  • New EnlargeWithAncilla pass for adding ancilla qubits after a Layout
    selection pass (#1603).
  • New Unroll2Q pass for unrolling gates down to just 1q or 2q gates (#1614).
  • Added support for register slicing when applying operations to a register (#1643).
  • Added in new parameter justify to the text, mpl and latex circuit drawers to say how the
    circuit should be aligned. (#1725, #1797, #1977)
  • Added function for purity of a mixed state in qiskit.quantum_information
    (#1733)
  • Added parameter to the TextProgressBar to allow the output to be sent to a
    different output stream
  • Added a __qiskit_version__ parameter to the qiskit namespace. This will
    contain a dictionary of versions for all installed qiskit elements. (#1885).
  • Added a RunConfig object for configurations related to running an
    experiment (e.g. shots, memory) (#1856)
  • Added a TranspileConfig object for configurations related to transforming
    circuits (e.g. basis_gates, coupling_map, initial_layout) (#1856)
  • Added a qiskit.compiler namespace for all functions that transpile, schedule
    and assemble circuits and pulses (#1856)
  • Added support for passing a list of basis_gates, coupling_map etc. to the
    qiskit.compiler.transpile() function, each corresponding to one of the circuits (#2163)
  • Added a qiskit.compiler.assemble_circuits() function to generate qobj from some
    circuits and a RunConfig (#1856)
  • execute() and assemble() allow setting a qobj_header, of type
    QobjHeader or dict, to add extra information to the qobj (and thus result).
  • Register indexing supports negative indices (#1875)
  • Added new resource estimation passes: Depth, Width, Size, CountOps, and
    NumTensorFactors, all grouped in the ResourceEstimation analysis pass.
  • Added nodes_on_wire() to DAGCircuit which returns an iterator over all the
    operations on the given wire
  • Added new properties to an Instruction:
    num_qubits, num_clbits (#1816).
  • Added a QuantumCircuit.append public method for appending arbitrary instructions
    to some qubits and clbits in the circuit (#1816).
  • Added an Instruction.definition property that defines a composite instruction
    in terms of other, simpler instructions (#1816).
  • Added an Instruction.mirror() method that mirrors a composite instruction
    (reverses its sub-instructions) (#1816).
  • Added an PassManager.passes() method that returns a list of the passes that
    have been added to the pass manager, including options and flow controllers.
  • Added a PassManager.run() that transforms a QuantumCircuit according to its
    pass schedule and returns a QuantumCircuit.
  • Added a qiskit.quantum_info.random for generating random states, unitaries, etc (#2119).
  • Added a qiskit.quantum_info.synthesis for algorithms that synthesize circuits (#2119).
  • Added a NoiseAdaptiveLayout pass to compute a backend calibration-data aware initial
    qubit layout. (#2089)
  • Gates and instructions in a circuit accept integers as parameters to refer to
    wires instead of named bits.
  • Added a OptimizeSwapBeforeMeasure pass that removes the swap gates when they
    are followed by a measurement instruction, moving the latter to the proper wire. (#1890)
  • Added a RemoveDiagonalGatesBeforeMeasure pass that removes the diagonal gates when they
    are followed by a measurement instruction. (#2208)
  • Added a CommutativeCancellation pass that cancels self-inverse gates and combines
    rotations about the Z axis, leveraging previously-found gate commutation relations. (#2012)
  • Add an option for using a user config file to enable changing default
    settings for various functions in qiskit. Right now it only supports setting
    the default circuit drawing backend. (#2122)
  • Added a Collect2qBlocks pass that analyzes the circuit for uninterrupted sequences
    of gates (blocks) acting on 2 qubits. (#2134)
  • Added a ConsolidateBlocks that turns previously-collected blocks of any size
    into equivalent Unitary operators in the circuit. (#2134)
  • Added support for parameterized circuits. (#2103)
  • Added preset PassManagers that offer predetermined pipelines of transpiler passes. (#2163)

Changed

  • require scipy>=1.0, use scipy.stats.unitary_group.rvs for random_unitary().
  • two_qubit_kak decomposition works with Operator or raw matrix input objects.
  • process_fidelity works with QuantumChannel and Operator object inputs.
  • Backend defaults values are no longer required (#2101).
  • QuantumCircuit properties more self-consistent and no longer need DAG (#1993).
  • The most connected subset in DenseLayout is now reduced bandwidth (#2021).
  • plot_histogram now allows sorting by Hamming distance from target_string (#2064).
  • FunctionalPulse is no longer a class and instead is a decorator, functional_pulse
    that returns a SamplePulse when called. (#2043)
  • Changed average_data to accept observable input in matrix form (#1858)
  • Change random_state to take in dim over number of qubits (#1857)
  • The Exception subclasses have been moved to an .exceptions module
    within each package (for example, qiskit.exceptions.QiskitError) (#1600).
  • The QiskitTestCase and testing utilities are now included as part of
    qiskit.test and thus available for third-party implementations, with
    convenience test cases for providers and backends. (#1616, #1844)
  • The snapshot instruction now takes label and snap_type instead of
    slot (#1615).
  • The test folders have been reorganized to match the python modules (#1625)
  • The circuits_to_qobj no longers uses the unrollers (#1629)
  • The previously deprecated default output of circuit_drawer() (using latex
    and falling back to mpl) is no longer present. Instead the default output
    is the ascii art text output backend.
  • Changed param to params in Instruction (#1665).
  • dag_drawer and plot_gate_map are available via importing
    qiskit.tools.visualization. They will raise at the point of use, if
    dependencies are not installed (#1669).
  • The qiskit.validation schemas are now strict and raise a more specific
    ModelValidationError (#1695).
  • The default transpile pipeline will now add a barrier before the set of
    final measurements when compiling for both simulators and devices (#1591).
  • Purity function in qiskit.tools.qi.qi calls new version in
    qiskit.quantum_information and issues deprecation warning (#1733)
  • Updated dag.node_counter to return the current number of nodes (#1763)
  • The argument basis_gates used in compile, execute, and transpile
    is not longer a comma-separated string but a list of strings. For example,
    this basis ['u1','u2','u3','cx'] should be used instead of 'u1,u2,u3,cx'
    (#1333)
  • Methods on the DAGCircuit which previously returned node_ids and/or dicts now
    return DAGNodes
  • The Qobj classes have been reimplemented using models and schemas, as the
    rest of spec-defined entities. (#1909).
  • The rzz gate is now represented as a line when printed in text (#1957).
  • Text drawer has support for multi-q gates (#1939).
  • Separate Qobj into PulseQobj and QasmQobj (#1969).
  • It is possible to define a layout as a list of integers. This maps the ordered list
    of virtual circuit qubits to physical qubits as defined by the list of integers (#1946).
  • Instructions no longer have context about where they are in a circuit. Instead,
    the circuit keeps this context. So Instructions are now light-weight and only
    have a name, num_qubits, num_clbits and params (#1816).
  • The old syntax for attaching a gate to the circuit then modifying it is no longer
    supported (e.g. circuit.s(qr).inverse() or circuit.s(qr).c_if(cr, 4)).
    Instead, you must first modify the gate then attach it (#1816).
  • QuantumCircuit.data now contains a list of tuples, where each tuple is a
    (instruction, qarg, carg) (#1816).
  • The visualization subpackage has moved from qiskit.tools.visualization to
    qiskit.visualization. The public API (which was declared stable in
    the 0.7 release) is still accessible off of qiskit.tools.visualization.
    (#1878)
  • Layout object can now only be constructed from a dictionary, and must be bijective (#2157).
  • transpile() accepts initial_layout in the form of dict, list or Layout (#2157).
  • Not specifying a basis in execute() or transpile() no longer defaults to unrolling
    to the ['u1', 'u2', 'u3', 'cx'] basis. Instead the default behavior is to not unroll,
    unless specifically requested (#2166).
  • Instruction.copy() is now a shallow copy instead of deep (#2214)
  • Layout and CouplingMap classes are now accessible from qiskit.transpiler (#2222).

Deprecated

  • The methods prefixed by _get in the DAGCircuit object are being renamed
    without that prefix (see #1346)
  • Changed elements in couplinglist of CouplingMap from tuples to lists
    (#1666).
  • Unroller bases must now be explicit, and violation raises an informative
    QiskitError (#1802).
  • The qiskit.tools.qcvv package is deprecated in favor of Qiskit Ignis (#1884).
  • The qiskit.compile() function is now deprecated in favor of explicitly
    using the qiskit.compiler.transpile() function to transform a circuit followed
    by qiskit.compiler.assemble() to make a qobj out of it.
  • qiskit.converters.qobj_to_circuits() has been deprecated and will be
    removed in a future release. Instead
    qiskit.compiler.disassemble_circuits() should be used to extract
    QuantumCircuit objects from a compiled qobj. (#2137)
  • The qiskit.transpiler.transpile() function is deprecated in favor of
    qiskit.compiler.transpile() (#2166).
  • The seed_mapper argument in transpile() and execute() is deprecated in favor of
    seed_transpile(), which sets the seed for all stochastic stages of the transpiler (#2166).
  • The seed argument is execute() is deprecated in favor of seed_simulator (#2166).
  • The pass_manager argument in transpile() is deprecated. Instead, the
    pass_manager.run() methdod can be used directly to transform the circuit (#2166).
  • The qiskit._util module is deprecated and replaced by qiskit.util.
    qiskit._util will be removed in the 0.9 release. (#2154)

Fixed

  • Fixed #1892, whereby inheriting from QuantumRegister or ClassicalRegister would
    cause a QiskitError in instruction.py (#1908).
  • Fixed #829 by removing dependence on scipy unitary_group (#1857).
  • Fixed a bug with measurement sampling optimization in BasicAer
    qasm_simulator (#1624).
  • Fixed a bug where barriers didn't plot over all qubits when using matplotlib (#1718).
  • Fixed a minor conda env bug in Makefile (#1691).
  • Fixed a bug in BasicMapper pass operating over multiple registers (#1611).
  • Fixed a bug in BarrierBeforeFinalMeasurements which incorrectly moved measurements
    used in conditional operations (#1705).
  • Fixed a bug that with transpile ignoring initial layout when
    coupling map is provided (#1711).
  • Fixed a bug in the definition of the rzz gate (#1940).
  • Fixed a bug in DAGCircuit.collect_runs() that did not exclude conditional gates (#1943).
  • Fixed a mapping issue with layouts on non-adjacent qubits, by adding ancillas (#2023).
  • Fixed a bug in which an initial_layout could be changed even if it made the circuit
    compatible with the device coupling_map (#2036).
  • Fixed qobj_to_circuits for circuits that contain initialize instructions
    (#2138)

Removed

  • The previously deprecated functions plot_circuit(),
    latex_circuit_drawer(), generate_latex_source(), and
    matplotlib_circuit_drawer() from qiskit.tools.visualization have
    been removed. The circuit_drawer() function from the same module should
    be used instead.
  • The previously deprecated keys 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.
  • Removed the wrapper folder as part of the post 0.7 cleanup (#1613).
  • Removed the python wrappers of the legacy simualtors now that
    Qiskit Aer is out (#1615).
  • Removed simulator instructions save, load, wait, noise
    as unsupported in Aer (#1615).
  • Removed circuit.add as deprecated (#1627)
  • Removed the unroller (#1629)
  • Removed deprecated result methods (#1659)
  • Removed deprecated couplingdict kwarg from CouplingMap (#1666)
  • Removed deprecated transpile_dag() format kwarg (#1664)
  • Removed deprecated Pauli v, w, and pauli_group case arg as int (#1680)
  • Removed deprecated state_fidelity() function from tools.qi (#1681)
  • Removed QISKitError in favor of QiskitError. (#1684)
  • The IBMQ provider (qiskit.providers.ibmq) has been moved to its own
    package (pip install qiskit-ibmq-provider). (#1700)
  • compiled_circuit_qasm has been removed from the Qobj header, since it
    was part of the pre-qobj specification (#1715).
  • Removed the wigner plotting functions plot_wigner_function,
    plot_wigner_curve, plot_wigner_plaquette, and plot_wigner_data
    (#1860).
  • Removed Instruction.reapply() method (#1816).
Assets 2

Changelog

Fixed

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

@atilag atilag released this Dec 19, 2018

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()). The raw data is accessible through Result.data()
    (#1404).
  • The transpile() function kwarg format has been removed and will
    always return a circuit object. Instead you'll need to manually convert the
    output with the functions provided in qiskit.converters.
Assets 2

@atilag atilag released this Oct 7, 2018

Changelog

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

@atilag atilag released this Oct 4, 2018

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).
Assets 2

@atilag atilag released this Jul 19, 2018

Changed

  • Add new backend names support, with aliasing for the old ones.
Assets 2
You can’t perform that action at this time.