What’s New in Karabo 2.21.0

Release date is 12 December 2024.

Summary – Release highlights

This release updates the software stack and addresses some technical debts, like:

  • C++: replacing log4ccp with spdlog
  • Framework: Updating Python to 3.12
  • Framework: Update the C++ standard to C++20

Adjustments to the authorization logic enforced by Karabo Authentication are also in. Another important change is that all API’s provide the callee in the device implementation in lastCommand for a property reconfiguration and furthemore report faulty device plugins after device server restart. Previously these log messages were not forwarded. Additionally, karabo-middlelayerserver are able to run on a windows machine and all servers provide their user information in the instance info.

Requesting network information from the DaemonManager will now only provide the requested host details.

For the KaraboGUI, the relevant changes are:

  • Miniconda is no longer used, miniforge used instead
  • Provide history for Text Log widget (https://git.xfel.eu/Karabo/Framework/-/merge_requests/8718 )
  • Authentication changes: - GUI components - including in Daemon Manager - are disabled, when the required access level is not met. A tooltip shows why they are disabled. Especially, the context menu items in the Topology panels and Project panel. - Karabo-cinema and concert also honours authentication
  • Option to Compare configuration of one device with another (of same class )
  • Configuration Preview dialog (When fetches from past) options to show only currently editable properties.
  • Numpy upgraded to version 2.X
  • Scene2py can make use of multiple children elements
  • GUI extension - dependency management independently, using the ‘Check for update’ Dialog.

Breaking Changes

All API

  • A Table element value update will not send the schema as attribute anymore. Instead a boolean is provided.
  • Change directory of config db to var/data/config_db instead of using the hidden karabo folder.

Dependency Updates

  • This release contains a major Python update to 3.12 (was 3.11).
  • The C++ standard for the Framework has been updated to C++ 20 (was C++ 17).
  • log4cpp was replaced by spdlog, an actively maintained and evolving logging library.

Bug Fixes

Features

Refactor

Performance

Documentation

Tools