Version 27.4.1 (2025-12-02)
===========================
Bug fixes
---------
- Fix version ranges in python package dependencies.
Version 27.4.0 (2025-11-19)
===========================
Features
--------
- Add new error types ``PayloadTooLargeError`` and ``TooManyRequestsError`` used by IQMServer in REST API responses.
- Add a shortcut ``Setting.sweep(values)`` to create a ``Sweep``.
Bug fixes
---------
- When adding a DataArray with the name of an existing DataArray to a dataset using :func:``add_data_array``,
update the attributes of the DataArray itself.
Version 27.3.0 (2025-10-06)
===========================
Features
--------
- Minor update to ``format_deprecated`` to accept datetimes only in one format for consistency.
Version 27.2.0 (2025-10-03)
===========================
Bug fixes
---------
- Skip following mypy imports to iqm-data-definitions until errors are fixed. :issue:`SW-1670`
Version 27.1.0 (2025-09-19)
===========================
Features
--------
- Add chip layout to hold the coordinates of the chip design record.
Version 27.0.0 (2025-09-12)
===========================
Breaking changes
----------------
- Remove deprecated sweeps.
Version 26.33.0 (2025-09-03)
============================
Features
--------
- Enable ruff rule for missing annotations and mark exemptions.
Version 26.32.0 (2025-08-27)
============================
Bug fixes
---------
- Fix empty list of editable software packages.
Version 26.31.0 (2025-08-13)
============================
Bug fixes
---------
- Catch deprecation warning for pkg resources.
Version 26.30.0 (2025-08-11)
============================
Bug fixes
---------
- Fix SettingNode.merge producing wrong paths/names in certain programmatic usage.
Version 26.29.0 (2025-07-24)
============================
Features
--------
- Added log level to :class:`StationControlError`.
Version 26.28.0 (2025-07-09)
============================
Features
--------
- Enable mypy type checking in CI and add temporary type ignores to the source code. :issue:`SW-1615`
Version 26.27.0 (2025-07-04)
============================
Features
--------
- Setting now has a private field _source and an associated property which can be used to store e.g. the observation that is the source of the Setting's value.
Version 26.26.0 (2025-07-02)
============================
Bug fixes
---------
- Fix type errors raised by mypy.
Version 26.25.0 (2025-06-17)
============================
Features
--------
- Add missing jinja2 requirement
Version 26.24.0 (2025-06-17)
============================
Bug fixes
---------
- Bump iqm-pulse dependency. No functional changes.
Version 26.23.0 (2025-06-17)
============================
Features
--------
- Improve errors in :mod:`exa.common.src.exa.common.errors.station_control_errors`.
Version 26.22.0 (2025-06-13)
============================
Features
--------
- Rename ``server_errors.py`` to ``station_control_errors.py`` for better clarity.
- Add two new :class:`StationControlError` subclasses, :class:`BadGatewayError` and :class:`GatewayTimeoutError`.
Version 26.21.0 (2025-06-10)
============================
Features
--------
- Refine error code mapping in :mod:`exa.common.errors.server_errors`. :issue:`SW-1515`
Version 26.20.0 (2025-05-21)
============================
Features
--------
- Fix cocos path in ruff isort to run isort for cocos correctly.
Version 26.19.0 (2025-05-20)
============================
Features
--------
- Bump NumPy dependency to 1.26.4.
- Bump ``iqm-data-definitions``.
Version 26.18.0 (2025-05-12)
============================
Features
--------
- Changes in CI and image build logic, no functional changes.
Version 26.17.1 (2025-05-12)
============================
- Test patch versioning, no functional changes. :issue:`SW-1429`
Version 26.17.0 (2025-05-09)
============================
Features
--------
- Modify :func:`get_connected_probe_lines` such that it also works for qubits without readout, :issue:`QPUC-603`.
Version 26.16.0 (2025-05-06)
============================
Bug fixes
---------
- Fix copy deprecation warning.
Version 26.15.0 (2025-04-29)
============================
Features
--------
- Add method ``ChipTopology.get_connected_coupler_map``, which returns a dictionary mapping couplers to components based on the output of ``ChipTopology.get_connecting_couplers``.
Version 26.14.0 (2025-04-22)
============================
Features
--------
- Trigger new version with improved CI workflow
Version 26.13.0 (2025-04-11)
============================
Bug fixes
---------
- Update license
Version 26.12.0 (2025-04-10)
============================
Features
--------
- Fix vulnerability issue with YAML loading, use safe_load to avoid potential harmful remote code execution.
:issue:`SW-1378`
Version 26.11.0 (2025-04-07)
============================
Features
--------
- Add new error class ConflictError designed for client-server communication via station control client.
:issue:`SW-1361`
Version 26.10.0 (2025-04-07)
============================
Features
--------
- Fix package version in published docs footers, :issue:`SW-1392`.
Version 26.9.0 (2025-04-03)
===========================
Feature
*******
- Format code and enable PEP 604 in linting rules, :issue:`SW-1230`.
Version 26.8.0 (2025-04-02)
===========================
Features
********
- Update the documentation footer to display the package version.
Version 26.7.0 (2025-04-01)
===========================
Features
--------
- Use standard process of deprecation. No functional changes. :issue:`SW-450`
Version 26.6.0 (2025-03-21)
===========================
Features
********
* Rename QPU chip types, based on either "crystal" or "star" architecture and number of qubits. For example,
"crystal_5" or "star_6". For "mini" chips, like "mini_crystal_20", the number is not based on the actual number
of qubits but to the chip it's trying to "minimize" instead, like "crystal_20". :issue:`SW-1059`
Version 26.5.0 (2025-03-19)
===========================
Bug fixes
---------
- Fix Parameters with element_indices having those indices duplicated in the name when deserialised
Version 26.4.0 (2025-03-11)
===========================
Features
--------
- Bump pulla
Version 26.3.0 (2025-03-05)
===========================
Features
--------
- Add new error classes designed for client-server communication via station control client.
- Remove general RequestError and use new specific error classes instead.
Version 26.2.0 (2025-03-03)
===========================
Bug fix
-------
- Fix numpy numeric types serialization in sweeps
Version 26.1.0 (2025-02-28)
===========================
Bug fix
-------
- Fix protobuf deserialisation to not align SettingNode names
Version 26.0.0 (2025-02-27)
===========================
Features
--------
Breaking changes
****************
- Remove Pydantic based ``ParameterModel``, ``SettingModel``, ``SettingNodeModel``, and ``SweepModel``,
and inherit ``Parameter``, ``Setting``, ``SettingNode``, and ``Sweep`` from Pydantic model directly.
As a result, the signature of usage has changed. :issue:`SW-798`
- Instead of ``copy``, ``model_copy`` (with an optional ``update`` parameter) should be used.
- For deserialization, for now, use :meth:`SettingNode.deserialize` (Pydantic native approach will be implemented later)
- ``FunctionSweep`` and ``FunctionOptions`` has been deleted.
- :class:`.SettingNode` now supports "the path notation" when inserting/getting nodes
- Example: ``settings["flux.my.new.path.foo"] = SettingNode(...)`` adds the specified node under the specified path.
Any missing subnodes will be added.
- :class:`.SettingNode` and :class:`.Setting` now have an attribute ``path`` which will be populated by their relative
path within the settings tree when inserting/creating the node. The base class will also automatically align the name
of a node with its path, but there is an attribute ``align_name`` which can be set to ``False`` to not align
(used e.g. in the controllers section of the EXA settings tree).
- Remove deprecated ``QCMClient.get_chad`` and ``QCMClient.get_qubit_design_properties``.
Features
--------
- Settings can now be declared read-only by setting ``read_only = True`` when
initialising the setting.
- Modified the html representation of settings tree to support read_only settings.
- Methods :meth:`.SettingNode.get_gate_node_for_locus`, :meth:`.SettingNode.get_gate_properties_for_locus`,
:meth:`.SettingNode.get_default_implementation`, and :meth:`.SettingNode.get_locus_node_paths_for` added
for accessing EXA-specific gate/characterization nodes in the settings tree.
- Methods :meth:`.SettingNode.add_for_path` and :meth:`.get_node_for_path` that facilitate dealing with long paths
in setting trees.
in setting trees.
- ``Sweep.options`` is deprecated, use ``Sweep.data`` instead. ``data`` can be still generated using different
sweep options.
- ``ExponentialSweep``, ``FixedSweep``, and ``LinearSweep`` are deprecated, use ``Sweep`` instead.
- Split ``DataType.NUMBER`` to ``DataType.FLOAT`` and ``DataType.INT``. ``DataType.NUMBER`` is now handled as a
deprecated alias for ``DataType.FLOAT``.
Version 25.34.0 (2025-02-06)
============================
Bug fixes
---------
- Bump mechanize test dependency.
Version 25.33.0 (2025-02-04)
============================
Features
--------
- Refactor codebase to new lint rules. No functional changes. :issue:`SW-467`
Version 25.32.0 (2025-02-04)
============================
Features
--------
- Refactor codebase to new lint rules. No functional changes. :issue:`SW-467`
Version 25.31.0 (2025-01-28)
============================
Features
********
- Support broader range of `numpy` versions and verify compatibily with ruff, see migration guide `https://numpy.org/doc/stable/numpy_2_0_migration_guide.html`.
Version 25.30.0 (2025-01-28)
============================
Bug Fixes
---------
- Method ``ChipTopology.get_all_common_resonators`` can never return a set containing components which are not
computational resonators.
Version 25.29.0 (2025-01-27)
============================
Features
--------
- Bump version for an updated repo organization. No functional changes. :issue:`SW-1042`
Version 25.28.0 (2025-01-08)
============================
Features
--------
- Remove gitlab links from public pages. :issue:`SW-776`
Version 25.27.0 (2024-12-19)
============================
Features
********
- Bumps xarray
Version 25.26.0 (2024-12-12)
============================
Features
--------
- Bump exa-experiments
Version 25.25.0 (2024-12-11)
============================
Features
--------
- Fix public PyPI publishing. :issue:`SW-776`
Version 25.24.0 (2024-12-11)
============================
Features
--------
- Change license info to Apache 2.0. :issue:`SW-776`
Version 25.23.0 (2024-12-09)
============================
Features
--------
Fix extlinks to MRs and issues in sphinx docs config :issue:`SW-916`
Version 25.22.0 (2024-12-05)
============================
Features
--------
- Fix intersphinx reference paths in docs :issue:`SW-916`
Version 25.21.0 (2024-12-04)
============================
Test
****
- Adds unit test for sorting couplers
Version 25.20.0 (2024-12-04)
============================
Features
--------
- Bump version for an updated repo organization. No functional changes. :issue:`SW-665`
Version 25.19.0 (2024-11-29)
============================
Features
--------
- Include computational resonators as possible locus components for `DEFAULT_2QB_MAPPING`, which is used for slow CZ
gates, required for :issue:`GBC-589`.
Version 25.18.0 (2024-11-27)
============================
Features
--------
- Expand allowed CHEDDAR versions in `qcm_data_client` to include versions 2.x.
Version 25.17.0 (2024-11-19)
============================
Features
--------
- Bump version for an updated repo organization. No functional changes. :issue:`SW-774`
Version 25.16.0 (2024-11-15)
============================
Bug fixes
---------
- Remove iqm-internal web links in customer docs artifacts.
Version 25.15.0 (2024-11-08)
============================
Features
--------
- New changelog workflow, no functional changes. :issue:`SW-774`
Version 25.14 (2024-10-30)
==========================
- Bump Pydantic to version 2.9.2, :issue:`SW-804`.
Version 25.13 (2024-10-28)
==========================
- Bump NumPy to version 1.25.2.
Version 25.12 (2024-10-24)
==========================
- Add sweep validation to :func:`convert_sweeps_to_list_of_tuples` function.
Version 25.11 (2024-10-11)
==========================
- Add :func:`get_all_common_resonators`
Version 25.10 (2024-10-02)
==========================
- Bump `iqm-data-definitions` to 2.0.
Version 25.9 (2024-09-23)
=========================
- Bump dependency `requests` to version 2.32.3
Version 25.8 (2024-09-10)
=========================
Features
--------
- Add ``EmptyComponentListError``.
Version 25.7 (2024-08-23)
=========================
Bug fix
-------
- Fix :meth:`Setting.__eq__` not working between values of type ``np.ndarray`` and ``None``.
Version 25.6 (2024-08-16)
=========================
Bug fix
-------
- Fix `QCMDataClient.get_chip_design_record` not working on remote targets.
Version 25.5 (2024-08-15)
=========================
Features
--------
- Add `QCMDataClient.get_chip_design_record`. Can be used in place of `get_chad`. :issue:`EXA-2077`
- Deprecate `QCMDataClient.get_qubit_design_properties` as the chip design_record (CHEDDAR) contains the same data.
- Add more utility methods to `ChipTopology`.
Version 25.4 (2024-07-12)
=========================
Features
--------
- Add an optional fallback URL to `QCMDataClient`.
Version 25.3 (2024-07-05)
=========================
Features
--------
- Add `_repr_html_` method for :class:`SettingNode`. This method overrides the
default `repr` in notebooks. :issue:`EXA-1975`
Version 25.2 (2024-07-04)
=========================
Features
--------
- Add couplers to data components of :class:`ChipTopology`. :issue:`EXA-2056`
Version 25.1 (2024-06-27)
=========================
Features
--------
- First changelog for exa-common. No functional changes.