Release Notes
Release 2.61.0
Release date 09.10.2025
Requires: LabOne 25.07
Includes: Applications Library 2.15.0
Notes & Important Changes
Functionality
- Added automated chunking support to the OpenQASM transpiler. The new "automated_chunking" parameter may be passed to
exp_from_qasm_list
or.batch_experiment
. The "pipeliner"batch_mode
was renamed to "chunking" to more accurately reflect what it does and to align with terminology used in the rest of LabOne Q. - The
update
method of the QPU class has been extended to allow updating the edge parameters in theQPUTopology
in addition to the parameters of the quantum elements. Have a look at this tutorial to learn how to use theqpu.update
method for edge parameters. - Modified the
Experiment
,Section
, andDeviceSetup
classes to prevent the accidental creation of new attributes (by making them slotted). Breaking change As a result of this, the__dict__
attribute is no longer accessible for these classes. - Added the
Workflow.replace_task
method, which recursively replaces all occurrences of a task in a workflow with a different user-defined task. For more information, please see the Replacing the tasks section of the Workflows tutorial.
Applications Library
- Added the
flux_range
attribute toTunableTransmonQubitParameters
, which controls the maximum output in the flux channel. - Added the
TunableCoupler
andTunableCouplerParameters
classes.
Deprecation notice
Note
The update_quantum_elements
method in the QPU
class has been deprecated and will be removed at the end of January 2026.
Please use the more general update
method instead, which can update the parameters
for both quantum elements and topology edges.
Note
The Qubit
and Transmon
classes are not yet considered stable and their APIs might still change in future versions.
Their parent QuantumElement
class has been updated with version 2.44, making it much simpler to create your own implementation of a qubit object.
Note
The temporary_modify
task from the Applications library has been deprecated and will be removed at the end of January 2026.
Please use temporary_qpu
and, if needed, temporary_quantum_elements_from_qpu
instead.
Bug Fixes
- Fixed a hardware null-offset error on UHF and enhanced the emulator to validate input types, raising clear errors for unsupported values.
- Fixed phase-reset handling for hardware-modulated and multiplexed signals, enabling correct per-signal resets and timing. Previously, reset_oscillator_phase could be ignored or affect the wrong signals, and necessary timing gaps weren’t inserted, causing incorrect phases at pulse start. For more details, check out the section
Explicit Phase Resets in DSL
on the page Amplitude and Phase of Pulses andPhase Resets
in the Section tutorial. - When instantiating a
QPU
object with multiple quantum operations, theQPU
is now attached to the resultingCombinedOperations
object. This means that the QPU is now also an attribute of its combined quantum operations, which is particularly useful for accessing the QPU topology from within a new quantum operation definition. - Fixed a bug in
contrib/single_qubit_randomized_benchmarking.py
which was causing the RB pulses to be added twice.
Documentation
- Added the Using the QPU topology with quantum operations section to the QPU topology tutorial.
Known Issues
- Using the
reset_signal_oscillator_phase()
on signals of typerf_signal
is currently not supported. - Using
OpenQASMTranspiler.batch_experiment
with QASM programs that contain native measurement operations will lead to an unexpected shape of the returned data. To ensure the correct shape, measurement operations should be removed from the OpenQASM program, and.batch_experiment
should be called with the option fieldadd_measurement=True
, which will add the measurement operations to the LabOne QExperiment
during the import step (see our tutorial for more details). - Using the internal scope to acquire raw traces on multiple channels of an SHFQA in a single experiment is only possible if the timing of all acquisitions is equal between instrument channels.
- Using runtime checks of the sequencer playback through the
disable_runtime_checks=False
argument ofsession.connect()
, is currently not possible when the experiment contains real-time feedback or is using the on-device PRNG. In the latter case, unintended error messages may be produced if the option is used. - When using the pipeliner in an experiment by specifying a
chunk_count
parameter in a sweep, the number ofacquire
commands in each chunk currently needs to be equal. Typically, this means that the number of sweep steps within each chunk has to be the same. - When using
OutputSimulator
or pulse sheet viewer with an experiment using the pipeliner or near-time sweeping, currently only the first sequence step will be displayed. - When delaying logical signal lines of type
rf_signal
via thedelay_signal
calibration property, allrf_signal
s on the same sequencer core must be set to the same delay. - When delaying logical signal lines on the SHFQA via the
delay_signal
calibration property, the delays for the measure and acquire line must be the same; the measure pulse delay is not added to the acquire pulse delay as on the UHFQA. We recommend to useport_delay
for now. - When creating a section with very short content (below the device's minimum waveform length), the compiler may fail to map the experiment to valid SeqC, and will generate an error. As a workaround in these cases, manually add delays to the sequence.
Previous versions
- Release 2.60.1
- Release 2.60.0
- Release 2.59.0
- Release 2.58.0
- Release 2.57.0
- Release 2.56.0
- Release 2.55.0
- Release 2.54.0
- Release 2.53.0
- Release 2.52.0
- Release 2.51.0
- Release 2.50.0
- Release 2.49.0
- Release 2.48.0
- Release 2.47.0
- Release 2.46.0
- Release 2.45.0
- Release 2.44.0
- Release 2.43.0
- Release 2.42.0
- Release 2.41.0
- Release 2.40.0
- Release 2.39.0
- Release 2.38.0
- Release 2.37.0
- Release 2.36.0
- Release 2.35.0
- Release 2.34.0
- Release 2.33.1
- Release 2.33.0
- Release 2.32.0
- Release 2.31.0
- Release 2.30.0
- Release 2.29.0
- Release 2.28.0
- Release 2.27.1
- Release 2.27.0
- Release 2.26.0
- Release 2.25.0
- Release 2.24.0
- Release 2.23.0
- Release 2.22.0
- Release 2.21.0
- Release 2.20.1
- Release 2.20.0
- Release 2.19.0
- Release 2.18.0
- Release 2.17.0
- Release 2.16.0
- Release 2.15.0
- Release 2.14.0
- Release 2.13.0
- Release 2.12.0
- Release 2.11.0
- Release 2.10.0
- Release 2.9.0
- Release 2.8.0
- Release 2.7.0
- Release 2.6.0
- Release 2.5.0
- Release 2.4.0
- Release 2.3.0
- Release 2.2.0
- Release 2.1.0
- Release 2.0.0
- prior to Release 2.0.0