Release Notes - Pre-release versions
Pre-Release 26.7.0b2
Release date 22.05.2026
Requires: LabOne 26.4
Supports: Applications Library 26.7.0b2
DSL
- Functionality Added the
quantum_element_uidsproperty to theQPUclass, which returns the list of quantum element UIDs in the QPU. - Functionality Added
reset_oscillator_phasetolaboneq.simple.dslnamespace. This function existed already but was not directly exposed. It resets the phase of the oscillator associated with a given logical signal. - Documentation Added documentation and unit tests for the list of real-time sweepable parameters vs near-time only parameters.
Compiler
- Functionality The compiler now raises an exception when an SHF oscillator intermediate frequency (IF) has an absolute value >= 1 GHz. SHF instruments do not support IF frequencies in this range.
- Bug Fix Fixed a bug where compilation would fail when a chunked sweep contained both the driving parameter and the derived parameter.
- Bug Fix Fixed a bug where differences in comments produced excessively long, uncompressed SeqC.
- Bug Fix Fixed a bug where a minor rounding error biased phase increments by up to +0.3 µrad.
- Removal Removed
LabOneQInstrumentortraces:laboneq.compiler.scheduleandlaboneq.compiler.generate-code. Capturing compiler traces from Python now requireslaboneq.instrumentation.tracing.laboneq_tracing().
Automation
- Functionality Added error tracking and visualization for failed layer executions. The exceptions from
run_layer_executableare recorded via a new AutomationStatus.ERROR status and error attribute, with errored nodes blinking yellow-to-red in the web viewer and displaying the error message in the info panel on click. - Functionality Multiple automation web viewers can now run simultaneously. Each
start_web_viewercall launches an independent server on its own port for a separateAutomationinstance. - Functionality Improved the "Node results" image discovery for nodes with multiple quantum elements by searching for the target quantum element UID in the results image file names if the node key string is not found.
- Bug Fix Fixed a bug in the automation web viewer, where the "Node results" section of the node info panel sometimes displayed the results of the previously-clicked node.
Workflows
- Bug Fix Fixed a bug where passing workflow OptionBuilder options directly to a task called outside a workflow context raised a ValueError.
Serializer
- Functionality Updated the Experiment serializer to support a richer set of values as pulse parameters.
Previously the Experiment serializer supported only a limited basic set of pulse parameter types:
- float, int, str, bool, complex
- SweepParameter, LinearSweepParameter
- list[SweepParameter], list[LinearSweepParameter]
This set of types proved too restrictive for some use cases.
Now the Experiment serializer supports an extended set of types for pulse parameters:
- int, float, complex, str, bytes, bool, None, SweepParameter or LinearSweepParameter
- lists of the above
- dictionaries of the above with str keys
The lists and dictionaries may be nested and need not have homogeneous element types.
The previous Experiment serializer format was version 4. The new format is version 5.
Applications Library
- Removal Removed support for
qubit/qubits/parametric_amplifierarguments of typeQuantumElement/QuantumElements/TWPAin experiment workflows. Removed support forquantum_elementsarguments of typeQuantumElementsin thetemporary_quantum_elements_from_qputask. Please pass the quantum element UIDs instead of the quantum element instances.
Pre-Release 26.7.0b1
Release date 08.05.2026
Requires: LabOne 26.4
Supports: Applications Library 26.7.0b1
Compiler
- Functionality Changed exception type from
RuntimeErrortoLabOneQExceptionwhen an invalid device combination is provided.
Controller
- Bug Fix Fixed a bug where the assignment vector calculation for multi-state discrimination on SHFQA was incorrect. The calculation is now delegated to zhinst-utils.
- Removal Removed device setup hot-reloading.
Workflows
- Functionality Improved the performance of the automation web viewer so that it runs smoothly with up to 200 quantum elements per layer. The front end has been simplified and all transitions are now entirely done natively by the browser.
Pre-Release 26.4.0b5
Release date 09.04.2026
Requires: LabOne 26.1
Supports: Applications Library 26.4.0b5
Functionality
- Added
SectionTimingMode.STRICTfor sections and acquire loops. When enabled, the compiler raises an error if any timing value (section length, pulse length, repetition time) requires padding to fit the required grid, rather than silently padding.RepetitionMode.AUTOis incompatible with strict mode and also raises an error. - The
inject_resultspathsrun experiment option is now of typelist[Path | str], i.e. a list of paths to serializedResultsobjects. If multiple file paths are provided, then theResultsobjects are combined. - Renamed controller API endpoints to match new naming scheme, added stubs for sync controller API.
Bug Fixes
- Fixed a bug where pulse replacements did not persist over near-time steps in situations where, besides the replacement(s), the near-time loop is used to sweep some pulse properties as well (the pulse being replaced, or another one).
- Fixed a bug where near-time pulse replacement replaced the wrong waveform if the pulse being replaced was in different positions in different near-time steps (can happen when matching against the near-time loop index and defining structurally different entries for different cases).
- Fixed a bug where delay compensation for input latency on SHFQA when using LRT was inaccurate. Users are advised to update their integration kernel estimations as this change affects signal latency.
- Fixed a bug where auto chunking, when chunking was not necessary, produced a different compilation result than when auto chunking was not enabled.
Applications Library
- The functionality to determine the length of the measure
section on
laboneq.dsl.quantum.QPUwas not compatible with all types of qubits. It only worked with tunable transmons.
To avoid confusion and bugs with other types of qubits, the functionality has
been moved to TunableTransmonOperations.measure_section_length.
The method on laboneq.dsl.quantum.QPU will be deprecated and removed in a
future releases.
Deprecation Notices
- Deprecated the methods
CompiledExperiment.replace_pulseandCompiledExperiment.replace_phase_increment. NOTE: the methodsRuntimeContext.replace_pulseandRuntimeContext.replace_phase_incrementare not deprecated and can still be used to apply replacements in NT callbacks (these methods leave the compiled experiment unchanged). - Deprecated
QPU.measure_section_length. The method is only meaningful for certain types of qubits, so it will be moved to the implementations ofQuantumOperationsin thelaboneq-applicationsrepository instead.
Pre-Release 26.4.0b4
Release date 27.03.2026
Requires: LabOne 26.1
Supports: Applications Library 26.4.0b4
Bug Fixes
- Fixed a bug where acquisition delay was not compensated in LRT mode. Users no longer need to manually add a port delay offset to the acquire signal when using long readout.
- Fixed a bug where hold-off errors from a previous experiment could cause subsequent experiments to crash.
- Fixed a bug where match-case against a near-time sweep parameter always executed the first case only.
- Fixed a bug in the Applications Library where several analysis methods did not properly support experiment results with multiple shots.
Applications Library
- Added the
result_handleargument to thecalibration_traces_rotation.calculate_qubit_population_2dfunction, useful for storing multiple measurement outcomes per qubit.
Pre-Release 26.4.0b3
Release date 13.03.2026
Requires: LabOne 26.1
Supports: Applications Library 26.4.0b3
Functionality
- Added a new attribute
result_propertiesforCompiledExperimentthat for each result handle contains information about the result array (the shape and the axis names). - Added support for injecting serialized experiment results into workflows via the
inject_resultsoption, enabling reuse of previously recorded runs for emulation or testing.
Bug Fixes
- Fixed a bug where
attrsattributes were incorrectly labeled as bothclass-attributeandinstance-attributein the documentation. - Fixed a bug where
axis_namein experiment results contained names of internal derived parameters. - Fixed a bug where near-time frequency sweep of QA acquire oscillator with hardware modulation did not work on SHFQA devices with the LRT option without requiring spectroscopy acquisition type.
- Fixed a bug where loops using SW oscillators were incorrectly compressed (re-rolled), causing all sweep iterations to reuse the same pre-computed waveform regardless of the accumulated oscillator phase.
- Fixed a bug in the
temporary_qpufunction, where quantum elements and topology edges were not being copied correctly.
Documentation
- Updated the code examples in the reference documentation for the
amplitude_fineexperiment.
Applications Library
- Breaking change For the following non-
contribexperiments, theevaluation_parametersargument has been added to replace theevaluation_parameter,evaluation_parameter_thresholds, andevaluation_fit_r2_thresholdsarguments:amplitude_fine,ampltiude_rabi,qubit_spectroscopy, andramsey.
For the following non-contrib experiments, the evaluation_parameters argument, as well as a template evaluate_experiment task, has been added: dispersive_shift, drag_q_scaling, echo, lifetime_measurement, resonator_spectroscopy, and time_traces.
For the following contrib experiments, the evaluation_parameters argument, as well as a template evaluate_experiment task, has been added: calibrate_cancellation, scan_pump_parameters, signal_propagation_delay, time_rabi, and zz_coupling_strength_exp.
Consequently, all experiments with an update_qpu task now also have an evaluate_experiment task and an evaluation_parameters argument.
For all experiments, all arguments apart from session, qpu, and qubit/qubits/parametric_amplifier are now keyword arguments.
Pre-Release 26.4.0b2
Release date 27.02.2026
Requires: LabOne 26.1
Supports: Applications Library 26.4.0b2
Functionality
- Near-time Callbacks now receive an object implementing
RuntimeContextas their first argument instead of aSession. No changes are required to existing callback function definitions except when they use the accessors to experiment data, calibrations, connection state, or the device setup. In these cases, the required data must be submitted via the function arguments. It is still recommended to rename the parameter fromsessiontoruntime_contextand update the type hint, if present. - Long readout pulses on SHFQA devices are now automatically compressed without requiring the
can_compressparameter when using hardware with long readout time support. ModulationType.AUTOon QA devices in integration mode now resolves toHARDWAREonly when the device has the LRT option and the acquisition length exceeds 2 µs; shorter acquisitions default toSOFTWAREto avoid silent phase-averaging errors and NCO limitations. Long acquisitions (> 2 µs) without LRT now raise a compile-time error. Spectroscopy mode is unchanged and always resolves toHARDWARE.- Refactored the abstract base classes for the LabOne Q Automation framework (currently in beta), due to be officially released in v26.04.
Bug Fixes
- Fixed a bug where UHFQA AWG status check failed after AWG ready logic change in 26.1.0.
- Fixed a bug where hardware modulation was not applied when using a short readout on SHFQA with an LTR option.
- Fixed a bug where stale SHFQA integration kernel downsampling factor persists across sequential experiment runs within the same session.
- Fixed a bug where deserialization of a compiled experiment that uses local feedback would fail.
- Fixed a bug where deserialization of a scheduled experiment with RAW acquisition would fail.
Documentation
- Fix inaccurate description of the
add_resetargument tobatch_experiment. The argument adds a reset operation not an active reset operation. Whether the reset is active or passive is determined by the implementation provided by the quantum operations of the QPU.
Deprecation Notices
- Deprecated the legacy serializer provided by
laboneq.dsl.serializationandlaboneq.core.serialization. These will be removed in LabOneQ 26.7. Uselaboneq.serializersinstead.
Applications Library
- The
TunableTransmondemo_platform(n_qubits)andtunable_transmon_setup(n_qubits)functions were extended to support arbitrary numbers of qubits. Previously they supported at most six. The SHFQC and HDAWG instrument names and addresses in the setup were made unique by appending a count to them. - Refactored the workflow automation subclasses for the LabOne Q Automation framework (currently in beta), due to be officially released in v26.04.
Pre-Release 26.4.0b1
Release date 13.02.2026
Requires: LabOne 26.1
Supports: Applications Library 26.4.0b1
Functionality
Sessionnow supports automatic system profile fetching and caching when connecting to hardware. Use the newsystem_profileparameter in theSessionconstructor to explicitly provide a profile, or let it auto-load from cache when needed.- Ported event list generation (required for Pulse Sheet Viewer) from Python to Rust for improved performance.
- Added the abstract base classes for the LabOne Q Automation framework (currently in beta), due to be officially released in v26.04.
Bug Fixes
- Fixed a bug where a read timeout occurred when running LRT after non-LRT, due to LabOne Q enabling MSD by default even for two states for non-LRT experiments. MSD is now explicitly disabled for LRT.
- Fixed a bug where hardware modulation was not applied when using a short readout on SHFQA with the LRT option.
- Fixed a bug where
OutputSimulatordid not properly decompress long readout (LRT) waveforms on SHFQA, so that simulated output did not match the full hardware playback. - Fixed a bug where SHFQA in Spectroscopy mode did not play a readout pulse if
can_compress=Trueis passes to a readout pulse while LRT option is being used. - Fixed a bug where PSV crashed if a zero-length trigger was present.
- Fixed a bug where automatic measure section length in QPU did not take readout pulse into account.
- Fixed a bug where creating an experiment in a different thread than where LabOne Q was originally imported caused a crash.
Removals from the Codebase
- Removed the deprecated
DataStoreclass and associated SQLite-based data storage functionality.
Documentation
- Added TWPA quantum element to the reference documentation index.
- Fixed the link to the contribution guideline in the readme.
Applications Library
- Added the workflow automation subclasses for the LabOne Q Automation framework (currently in beta), due to be officially released in v26.04.
- Breaking change Edited the signature of Qubit Spectroscopy, Amplitude Rabi, and Ramsey experiment workflows, such that workflow parameters are keyword only. The remaining workflows will be updated in time for the official LabOne Q Automation release in v26.04.
- Added the
evaluate_experimenttask to the Qubit Spectroscopy, Amplitude Rabi, and Ramsey experiment workflows. The remaining workflows will be updated in time for the official LabOne Q Automation release in v26.04. - Added a new
"continuous"option for specifying kernel pulses for acquire and measurement integration kernels onTunableTransmons. The new option causes the hardware to integrate for the entire integration length, weighting all samples equally. This is useful for performing very long integrations where the pulse samples would not fit into the device memory.
Pre-Release 26.1.0b4
Release date 16.01.2026
Requires: LabOne 25.10
Supports: Applications Library 26.1.0b4
Functionality
- Extended auto chunking to handle sweeps limited by the maximum number of acquired results. When a sweep exceeds the instrument's result memory capacity, it can now automatically be split into smaller chunks, each acquiring fewer results to fit within the hardware limit.
- Calculate result shapes at compile time and make them available via
compiled_experiment.scheduled_experiment.result_shape_info.shapes. - Breaking change Transpose the last two dimensions of the shape of RAW acquisition results in case of multiple handles with the same name - before:
(..., handle, samples), after:(..., samples, handle). This brings the axis corresponding to the multiple handles to the same location as for the case of non-RAW acquisition. - Implemented Ramsey spectroscopy experiment under
laboneq.testing.experiments.
Bug Fixes
- Fixed a bug where the compiler would output unnecessary log warnings about dropping the imaginary part of a waveform on RF signals.
- Fixed a bug where result shaping failed (array broadcasting error) in case of multiple different handles on the same signal and inside different case blocks.
- Fixed a bug where acquisition commands inside match-case blocks produced incorrect result shapes and contents: an extra dimension was added, with actual results placed at the beginning of the array and the remainder filled with
NaNs. - Breaking change Fixed a bug where result type was incorrect when there is only a single acquisition for a handle in the entire experiment. Before:
np.complex128, After:np.ndarray. - Fixed a bug where referencing an invalid section in
play_afterin a right-aligned section did not raise an error. - Fixed a bug where
FolderStorededuplication treated numpy arrays that containNaNs as unequal to themselves, storing them repeatedly. - Fixed a bug where type validation did not support
TypeAliasTypefrom Python 3.12+ and numpy 2.4+. - Fixed a bug where a minimum width for the Lorentzian fit in the fitting helper functions was not set, sometimes causing division by zero errors.
Documentation
- Added the Subsampling Techniques for Achieving Waveform Precision in Picoseconds tutorial and support code to perform subsampling delay adjustments.
Deprecation Notice
- The
qubits/qubit/parametric_amplifierargument of typeQuantumElementsis deprecated for all experiment workflows in v26.1.0 and will no longer be supported in v26.4.0. Please pass an argument of typelist[str] | strinstead, i.e., the quantum element UIDs instead of the quantum element instances. Thetemporary_parameterspositional argument was added to the followingcontribexperiment workflows:amplitude_rabi_chevron,signal_propagation_delay,single_qubit_randomized_benchmarking,spin_locking,time_rabi, andtime_rabi_chevron. This is a breaking change if calling these experiment workflows with theoptionspositional argument.
Pre-Release 26.1.0b3
Release date 19.12.2025
Requires: LabOne 25.10
Supports: Applications Library 26.1.0b3
Functionality
- Added type hint validation for signal calibration objects using typeguard. Assigning a value of the incorrect type to a calibration object will now immediately raise a TypeError rather than failing during compilation or execution.
- Improved unused sweep parameter detection. The compiler will now raise an error whenever the experiment or device setup contains a sweep parameter that is not registered in any sweep, excluding derived sweep parameters where registering the parent is sufficient
Bug Fixes
- Fixed a bug where the HDAWG would not start if previously used cores were now unused.
- Fixed a bug where the local event loop was pinned to the thread instead of the session, preventing the same session from being invoked from multiple threads, even when concurrent calls were properly synchronized by the user.
- Fixed a bug where execution would time out when reading large amounts of data, particularly in single-shot mode and over slow connections.
- Fixed a potential memory overflow issue: data from unused integrators was accumulating until the end of the experiment.
- Fixed a bug where the Pipeliner was not executing when SHFQC was present in the setup but not used in the chunked experiment.
- Fixed a bug where the
playcommand withoutpulseandmarkersdid not work when the markerwaveformwas a sampled pulse. - Fixed a bug where registration of derived parameters in near-time execution loops failed.
- Fixed a bug (introduced in v2.61.0) that prevented standalone HDAWG cores from synchronizing properly.
- Fixed a bug in the
FolderStoreserializer to support dictionaries ofQuantumElementandQuantumParameterobjects whose keys are tuples of strings, as explained in the FolderStore serializer documentation. Without this, supplying temporary topology edge parameters totemporary_qpuwould fail to save thetemporary_parameterspassed, because edges are passed as tuples of the form(tag, q0.uid, q1.uid). For example,("coupler", "q0", "q1"). With this change,temporary_parametersare saved correctly. - Fixed a bug where using the first internal-only channel with the RTR option triggered a false exception.
- Fixed a bug where a SYNCIGNORED error occurred in standalone SHFQC when running a non-chunked experiment right after a chunked one in the same session.
- Fixed a bug where the error message was unclear when feedback acquisition or measure line 'port_delay' calibration was swept.
Documentation
- Updated the FolderStore documentation to clarify that only dicts of QuantumElement
or QuantumParameters whose keys are strings or tuples of strings may be serialized
by the
FolderStoreserializer.
Applications Library
- Breaking change Changed
calibrate_cancellationworkflow to set pump cancellation attenuation and phase to 0.0 when cancellation is off - Support using SG channels for flux lines in
TunableTransmonQubitand inTunableCoupler
Pre-Release 26.1.0b2
Release date 04.12.2025
Requires: LabOne 25.10
Supports: Applications Library 26.1.0b2
Functionality
- Added type hint validation for signal calibration objects using typeguard. Assigning an value of the incorrect type to a calibration object will now immediately raise a
TypeErrorrather than failing during compilation or execution.
Bug Fixes
- Fixed a bug where
ModulationType.AUTOincorrectly forced SOFTWARE modulation for INTEGRATION acquisitions even when the long readout time option (LRT) is available.ModulationType.AUTOnow resolves to HARDWARE modulation when LRT is available on the targeted instrument. - Fixed issue where section triggers were not shown in Pulse Sheet Viewer.
- Fixed the serialization of the
auto_chunkingparameter ofExperimentsweeps. Previously this parameter was not serialized. Experiments saved before this version of LabOne Q are treated as thoughauto_chunkingwas set toFalse.
Documentation
- Extended the example notebook for the benchmarking package to also display data from 2-qubit RB and to show fractional time spent in different compilation steps.
Pre-Release 26.1.0b1
Release date 20.11.2025
Requires: LabOne 25.10
Supports: Applications Library 26.1.0b1
Functionality
-
Added the function
add_signalto thebuild_experimentDSL built-ins. This function is a wrapper forExperiment.add_signaland allows the user to add a signal with or without an experiment context. -
Removed restriction where a single sweep parameter could not drive multiple hardware
Oscillatorfrequencies. Now a single sweep parameter can be used across multiple different oscillators.
Bug Fixes
- Fixed a bug where acquire pulses were missing in Pulse Sheet Viewer when multiple kernels were used.
Documentation
-
Added the Time-Resolved Photon Number experiment together with a How-to Guide.
-
Updated the Ramsey example for spin qubits in the Spin Qubit Pulse Sequences with the HDAWG How-to Guide.
-
Corrected the repetition settings in the Amplitude Calibration with Error Amplification How-to Guide.
Applications Library
- Added the ZZ Coupling Characterization experiment together with a How-to Guide.