What’s New in Karabo 2.17.4

Another patch release for the toml support for the karabo depends mechanism.

Detailed Merge-Log

  • DEPS: Pip install with –nodeps (toml support) !7991

What’s New in Karabo 2.17.3

This patch release contains a very important backport for the AMQP integration and a pip dependency update. Installations using AMQP should use this version minimum.

Detailed Merge-Log

  • DEPS: 2.17.X receives a pip update !7849
  • AMQP: Do not run Karabo [un]subscribe handlers on AMQP event loop (BACKPORT to 2.17.X) !7900

What’s New in Karabo 2.17.2

A patch release for the datalogging in case property retrievals are not successful. Now, for every request a new connection to the database is established in the DataLogReader. Before, a single connection has been created and reused. A connection closure went unnoticed and left the DataLogReader without use.

Detailed Merge-Log

  • C++: InfluxDbClient instances with per slot lifetimes in InfluxLogReader !7839

What’s New in Karabo 2.17.1

A dedicated release for backward compatibility of datalogging after the introduction of schema chunking.

Detailed Merge-Log

  • C++/Influx: Fix reading of new schema if old schema was written pre-2.17.0 (backport to 2.17.X) !7658
  • Influx/C++: Avoid unneeded map look-ups in the log reader (Backport to 2.17.X). !7660

What’s New in Karabo 2.17.0

Release scheduled for the 02.06.2023.

Summary – Release highlights

  • Add support to AlmaLinux 9. !7256
  • MDL: New Configurable coroutine function set_setter(h, only_changes=False) provided. This is the analogon to Configurable.set, but calling the internal setter functions for the descriptors.
  • ALL API: A new slot slotGetConfigurationSlice is available that provides the configuration of selected paths.
  • ALL API: The device property lastCommand will now also show the senderId, e.g. “calledSlot <- DEVICE/THAT/CALLED”
  • MDL: slotGetProperties function provided that calls slotGetConfigurationSlice. The function takes a list of paths or a single path as input.
  • GUI: A new code editor with linting based on QScintilla is provided
  • GUI: Macros can be run in debug mode. This mode starts the macros on a selected macro server that is running in development mode.
  • GUI: A new set of widgets (controllers) is provided for floating points (formatting)
  • GUI: Addition of dedicated alarm widgets for numbers (floats and integers)
  • GUI: Data Analysis dialog option provided for VectorGraph widgets
  • GUI: The mainwindow title bar reflects now the loaded project
  • Ubuntu 22 Support: Backported to 2.16.4
  • TOOLS: karabo scripts autocompletes services, e.g. karabo-kill, karabo-stop, …
  • DataLoggers: Provide schema chunking for very large schemas

Features

  • InstanceStatus Widget can be added to the scene
  • ALL API: Device servers: Can be started with serverFlags description (Enum)
  • InfluxLogger readers can have two URL addresses, one dedicated for history of a single property and one for retrieval of the schema and full configuration of a device.
  • karabo-startrabbitmq added to the framework to start a RabbitMQ broker locally in a docker container

Bugfixes

  • C++: Fixed data logger connection failure handling (Cherrypicked in 2.16.1)

Breaking Changes

  • Drop Ubuntu18 support from CI

Change of behaviour

  • Change default broker address to AMQP
  • MDL: coslot is deprecated, use slot instead
  • GUI: By default the property alarm color for devices in the Configurator is now disabled. This is intended as the Configurator can only evaluate static alarms defined by the device schema. To view property specific alarms, please use the alarm panel. To turn this feature back on, please use the Application Configuration dialog* accessible via the menu bar of the client.
  • GUI: Device scene links cannot be created from the device property availableScenes anymore. They become a scene tool widget and have to be created from the scene panel toolbar or via dragging a device onto a scene. Device scene links don’t trigger itself monitoring of a device.
  • GUI: A macro is selected now in the project panel if started and connected (view of code panel)
  • GUI-Common: Geometry traits (width, height, x, y, …) are now casted integers. This is fully backward and forward compatible with the previous float setting. Hence, in device provided scenes these values appear as integers from now on.
  • ALL API: Log-events do not generate a broker message anymore. For logging messages, please retrieve the last log messages on demand via the karabo gui client interface or view the local log file.
  • ALL API: Heartbeat resurrection: If a device suddenly appears to sent a heartbeat, the listening device will request the full instance info manually. This is a preparation to avoid sending the full instanceInfo with every heartbeat in an upcoming release.
  • MDL: Provide set_setter on Configurable
  • ALL API: slotGetConfiguration does not contain Slots as keys
  • GUI Server: Remove ‘requestFromSlot’ and update integration tests.
  • C++: Add deviceId to exception message of Device::get
  • DEPS: jinja2, async_timeout and pytest_rerunfailures added or updated

Detailed Merge-Log

Graphical User Interface

  • GUI: Also send empty names for device scene links !7434
  • GUI: Controller documentation for 2.17.X !7586
  • GUI: Don’t expand macro controller on double click !7483
  • GUI: Enable to restore scenes in project reload (Backport 2.17.X) !7516
  • GUI: Provide scope for gui app fixture !7436
  • GUI: Start own contributing for the GUI !7439
  • GUI: Test controls display image graph is updated for pyTest !7446
  • GUI: Transport alarm graph test to pytest !7407
  • GUI: Transport controllers/display/tests/test_label.py to pytest !7418
  • GUI: Transport colorbool test to pytest !7410
  • GUI: Transport controllers/display/tests/test_lamp.py to pytest !7419
  • GUI: Transport controllers/display/tests/test_lineedit.py to pytest !7420
  • GUI: Transport controllers/display/tests/test_multicurvegraph.py to pytest !7421
  • GUI: Transport controllers/display/tests/test_scatter.py to pytest !7423
  • GUI: Transport controllers/display/tests/test_singlebit to pytest !7424
  • GUI: Transport daemon test to pytest !7411
  • GUI: Transport errorbool test to pytest !7413
  • GUI: Transport eval controller test to pytest !7438
  • GUI: Transport icon command controller test to pytest !7440
  • GUI: Transport icons controller test to pytest !7442
  • GUI: Transport sparkline controller test to pytest !7444
  • GUI: Transport state graph controller test to pytest !7445
  • GUI: Transport statecolor controller test to pytest !7454
  • GUI: Transport statefulicon controller test to pytest !7455
  • GUI: Transport textlog controller test to pytest !7464
  • GUI: Transport time label controller test to pytest !7465
  • GUI: Transport vector bar graph controller test to pytest !7466
  • GUI: Transport vector fill test to pytest !7468
  • GUI: Transport vector graph controller test to pytest !7469
  • GUI: Transport vector hist graph controller test to pytest !7471
  • GUI: Transport vector roll graph controller test to pytest !7472
  • GUI: Transport vector scatter controller test to pytest !7473
  • GUI: Transport vector xy graph controller test to pytest !7490
  • GUI: Transport webcam controller test to pytest !7492
  • GUI: Transport widget node controller test to pytest !7493
  • GUI: Resolve “Macro Editor: Adjust font size”Closes #204 !7291
  • GUI: Protect reactive login dialog from not set port number !7288
  • GUI: Provide server development flag visibility on server icons !7286
  • GUI: Use serverFlags on macro’s to start a macro on a development macro server”Closes #199 !7292
  • GUI: Provide floating controllers for formatting and alarms !7293
  • GUI: Handle exception when using NDARRAY_ELEMENT without type !7301
  • GUI: Prevent stable macros to run on development macro servers !7305
  • GUI: Add AlarmInteger controllers !7304
  • GUI: Make sure we can always request a class schema when a server goes down !7315
  • GUI: Provide option to show the filter key column in FilterTableElement and toggle quickly Closes #142 !7306
  • GUI: Show error on debug run if no development server is present !7351
  • GUI: Define macro toolbar tabbing order !7354
  • GUI: Set time range exact on RequestDialog in trendline Closes #191 !7264
  • GUI: Show a macro after successful instantiation !7302
  • GUI: Macro Editor: Replace functionality replaces the next occurrence instead of current selection Closes #245 !7353
  • GUI: Replace All should not replace a text more than once. Closes #243 !7349
  • GUI: Macro Editor - Find Toolbar should update the search hit count on code changes Closes #244 !7350
  • GUI: Expose method to get MacroEditor text, to Squish !7311
  • GUI: Icons Widget-TextDialog. Show items in a Combobox. !7275
  • GUI: Enable hovering over selected widgets !7179
  • GUI: Target tool show log values. !7167
  • Revert “GUI: Enable to build scenes with offline devices” !7190
  • GUI: Change Target Tool Legend color. !7191
  • GUI: Cleanup the code from axis item !7199
  • GUI: Change font size/weight for List widget. Closes #136 !7194
  • GUI: Provide full information on changes of configuration in dialog !7188
  • GUI: Clean up time label test !7200
  • GUI: Disable dynamic sorting on Topology Tree.Closes #152 !7211
  • GUI: Set the dynamicSortFilter to False in Configurator and test the swap model !7182
  • GUI: Handle slash in the file name on saving Macro.Closes #146 !7208
  • GUI: Graceful toolbutton in testing of scintilla editor !7213
  • GUI: Question Dialog on running unsaved Macro.Closes #158 !7225
  • GUI: Close log dialog on disconnect !7235
  • GUI: Initialize models with defaults from bindings if desired !7234
  • GUI: Change schema handling in configurator !7237
  • GUI: Optimize status widget !7223
  • GUI: Icons Widget - Show the messagebox with no parent !7247
  • GUI: Provide a toolbar in cinema mode !7178
  • GUI: Provide a table controller panel on double click in configurator !7253
  • GUI: Cleanup double click event in scene view !7279
  • GUI: Move editor to double click and not device scene !7271
  • GUI: Flake base binding controller !6933
  • GUI: Better handling of Bool editing in the List Edit Dialog. !6910
  • GUI: Provide simple background task engine !6932
  • GUI: Provide toolbar in Configuration Editor when in cinema mode !6940
  • GUI: Add validator again to list regex edit !6939
  • GUI: Minor optimization on device filter model selection !6979
  • GUI: Reconfigurable tables become state aware !6919
  • GUI: Prevent VectorBool to be considered for TableVectorButton !6921
  • GUI Server: Remove ‘requestFromSlot’ and update integration tests. !6903
  • GUI: Update dependencies for the GUI: Priority to external conda-forge !6920
  • GUI: Remove not required column in project view !6957
  • GUI: Put index ref protection in filter model !6959
  • GUI: Use native filtering in Configurator filter model !6966
  • GUI: Improve image node validation !6964
  • GUI: Allow to sort by time in project dialog !6965
  • GUI: Use native recursive filtering in the navigation models !6977
  • GUI: Data type casting for config singleton !6971
  • GUI: Add logger to karabogui api !6952
  • GUI: Move test out of unittest framework. !6953
  • GUI: Provide option to retrieve default scene on TableStringButton !6942
  • GUI: Toggle configurator property alarm coloring !6937
  • GUI: DeviceSceneLink becomes a SceneTool widget !6987
  • GUI: Align reason text for messagebox !7092
  • GUI: Macro Editor - Find Toolbar : Validate the search string !7139
  • GUI: Improvements in Macro editor Find Toolbar. !7135
  • GUI: Make configurator flags more performant !7142
  • GUI: Add offline information to device scene link !6991
  • GUI: OK button should accept the KaraboMessageBox dialog. !6993
  • GUI: Rename Table Device Dialog to Topology Device Dialog !6997
  • GUI: Group Link tasks in a menu !6994
  • GUI: Implement InstanceStatus widget !6996
  • GUI: Add objectName to ColorBarWidget !7003
  • GUI: Cleanup the trendline implementation from Qwt !7004
  • GUI: Provide a parent for macro report message box !7033
  • GUI: Fix pathparser transport to Python 3.8 !7037
  • GUI: Add AccessMode to Configurator Popup !7041
  • GUI: Move priority to own conda mirror again !7034
  • GUI: AlarmModel parent index alignment !7035
  • GUI: Remove archive warning from getConfigurationFromPast !7086
  • GUI: Change copyright notice for about dialog !7087
  • GUI: Scintilla based Macro editor. !7082
  • GUI: Enhance scintilla editor with scripting in background !7089
  • GUI: Enable to build scenes with offline devices !7146
  • GUI: Fix table binding default value extraction !7158
  • GUI: linter for Macro editor. !7160
  • GUI: Icons for Code Quality Check buttons. !7175
  • GUI: Tests for linters in Macro Editor !7176
  • GUI: Fix macro template for code quality !7165
  • GUI: Manually create scintilla api for autocompletion !7090
  • GUI: Crosshair roi at full integer pixel position. !7095
  • GUI: Find and Replace for scintilla-editor. !7102
  • GUI: Scintilla Editor - Allow to mix tab and spaces. !7113
  • GUI: Highlight the search hits in the Macro editor. !7121
  • GUI: Protect edit of table controller when there is no binding !7145
  • GUI: Fix slice for RGB images !7148
  • GUI: Move shared code to common. !7376
  • GUI: Show development server icon for cpp !7372
  • GUI: Bugfix: set correct stylesheet for command with confirmation !7358
  • GUI: notify only on number of erased generic requests !7361
  • GUI: Remove slider note and add extensions note !7359
  • GUI: Provide more comfortable alarm configuration in alarm dialog !7370
  • GUI: Provide Project Name in main window title !7368
  • GUI: Transport checkbox test to pytest !7388
  • GUI: Transport detector graph test to pytest !7390
  • GUI: Transport list test to pytest !7389
  • GUI: Migrate AlarmController test to pytest !7380
  • GUI: Refactor command test to pytest !7379
  • GUI: Align mainwindow title, strip Project !7394
  • GUI: Provide feedback about duplicated devices in project load !7392
  • GUI: Data Analysis Dialog : initial Version !7356
  • GUI: Transport detector graph signal test to pytest !7405
  • Common: Refactor link reader and writer for the models !6992
  • Common: Convert geometry traits to casting integers !7298
  • Common: Remove old plot widget models !7341 !7321

MDL/Native core

  • Native: Implement Enum helpers from Schema !6990
  • Native: validate defaultValue for VectorString !7005
  • Native: Allow None as default for VectorRegexString !7007
  • Native: Allow RegexString to have None as default Closes #18 !7008
  • Native: Protect hash repr from unknown hash types !7012
  • MDL Test: Add missing timeout protections in output injection test !7458
  • MDL: Add DeviceServerBase to namespace !7456
  • MDL: Align delete client test !7485
  • MDL: Align disconnect test of macrosCloses #322 !7482
  • MDL: Cleanup remote test and make setNoWait test sleep independent !7453
  • MDL: Create a topology macro and add to namespace !7416
  • MDL: Cross test refactor for pytest !7448
  • MDL: Don’t close channels automatically for services with broadcasts, as they… (2.17.X Port) !7576
  • MDL: Gracefully shutdown ikarabo, avoid closing channel directly !7429
  • MDL: Increase timeout in connectDevice test !7467
  • MDL: Protect DaemonManager against quick down/up call from an operator (Port 2.17) !7557
  • MDL: Provide broker scheme validationCloses #256 and #257 !7457
  • MDL: Provide get_image_data helper with path declaration (Port to 2.17.X) !7540
  • MDL: Protect NoEventLoop from launching tasks when going down !6938
  • MDL: Don’t start the AsyncTimer again when the loop is closed, provide success feedback and is_running method !6946
  • MDL: Add create_instanceId to testing namespace and enhance !6941
  • Use ‘aiormq’ package for AMQP MDL integration !7045
  • MDL: Refactor heartbeat mixin test !7061
  • MDL: Choose automatic acknowledgement and disable publisher confirms !7069
  • MDL: Optimize lock access in signal binding and unbinding !7070
  • MDL: Remove flakyness of output reconnect test !7072
  • MDL: Change order of shutdown cleanup !7071
  • MDL-AIORMQ: Only subscribe to broadcast messages when required !7074
  • MDL: Enhance pytest loop tests with instance attachment !7065
  • MDL: Cleanup amqp broker !6999
  • MDL: Set event loop in async device test !6918
  • MDL: Assignment.INTERNAL in sanitize_write_configuration !6955
  • MDL: Rely on instanceGone to remove Child of server !6960
  • MDL: Bulk update of prints via timer !6883
  • MDL: Provide slotGetConfigurationSlice to get single properties via a remote call !6842
  • MDL: Make sure macro instances destruct their print timer at the end !6974
  • MDL: Provide set_setter on Configurable !6975
  • MDL: Provide a test for loop equal None in timer destruction !6984
  • MDL: Deprecate and remove network logging !6985
  • MDL: Remove log methods from all brokers !6998
  • MDL: Set correct parenthesis on publish !7016
  • MDL: Use multiple connections - revert using a single connection !7017
  • MDL: Align AMQP Connection with JMS !7019
  • MDL: Maintain exit stack with asyncio event instead !7021
  • MDL: Remove manual shutdown of executor and trust the loop stop !7020
  • MDL: Provide async send, call and emit for AMQP !7023
  • MDL: Use asynchronous heartbeat in AMQPCloses #27 and #26 !7024
  • MDL: Provide async disconnect and connect in AMQP !7027
  • MDL: Remove flakyness from pipeline reconnection test in AMQP !7025
  • MDL: Refactor AsyncDeviceTest and event_loop !7055
  • MDL: Attach pid to server logger message and attach instance to task !7049
  • MDL: Fix the flakyness of the monitor shutdown test !7100
  • MDL: Move utils test to pytest infrastructure !7103
  • MDL: Move synchronization test to pytest !7104
  • MDL: Include caller in lastCommand !7112
  • MDL: Stabilize injected output channel injection test !7110
  • MDL: Teardown wait tests with state unknown in macro test !7111
  • MDL: Make sure the MacroSlot updates on cancellation !7107
  • MDL: Fix flaky device node test !7117
  • MDL: Adjust macro waituntil test !7119
  • MDL: Adjust once more the remote pipeline injection test !7118
  • MDL: Align signalfunction parsing for amqp !7115
  • MDL: Provide countdown context manager and use in cancellation of macros !7116
  • MDL: Ensure future for publish on amqp, not call soon !7109
  • MDL: One more addition to the flaky print test !7106
  • MDL: Formally set eventloop to None after thread is done !7125
  • MDL: Allow Assignment.INTERNAL descriptors to have no default value !7126
  • MDL: Synchronously shutdown device on ikarabo exit !7124
  • MDL: Use async context to enter remote device for macros !7131
  • MDL: Protect ikarabo shutdown from exceptions !7133
  • MDL: Provide a consume_beats for the device server !7134
  • MDL: Port client test to pytest !7137
  • MDL: Add Device server and cache log to namespace !7140
  • MDL: Refactor Monitor test and provide assertLogs and run test decorator !7060
  • MDL: Refactor inject node test !7063
  • MDL: Refactor json test for pytest !7062
  • MDL: Refactor macro test for pytest !7064
  • MDL: String formatting in amqp broker !7075
  • MDL: Remove all amqp broker extra treatment !7077
  • MDL: Mark async fixture with pytest_asyncio !7093
  • MDL: relax flaky test of timeit decorator !7096
  • MDL: Await to stop heartbeat_task explicitly for jms !7097
  • MDL: Align flakyness of device timer test !7099
  • MDL: Provide isStringSet and directly use in getDevice and connectDevice !7094
  • MDL: Fix flaky print macro test !7098
  • MDL: Refactor remote device test !7079
  • MDL: Unify broker interface !7083
  • MDL: Refactor remote pipeline test for pytest !7080
  • MDL: Refactor device_test for pytest !7084
  • MDL: Provide convenient async timer handling. They are always stopped and destroyed. !6976
  • MDL: Suggestion to use deviceId as a queue name !7143
  • MDL: Align macro slot state update for AMQP !7162
  • MDL: Provide slot reply test with state update !7161
  • MDL: Provide a device ordering test for slots and properties !7132
  • MDL: Test order between slot calls and signal emission !7152
  • MDL: Move message order test code out of PropertyTestMDL !7156
  • MDL: Remove flakyness of output change schema test !7155
  • MDL: Provide Heartbeat consume implementation for AMQP !7136
  • MDL: Add a test for a mandatory vector !7157
  • Common: Cleanup scene link models !6988
  • ikarabo: Command lines don’t have a logger !6913
  • AMQP: Activate integration tests again !7073
  • Remove archive from instanceInfo completely. Closes #61 !7174
  • MDL: Increase join timeout in cli test: test_delete !7216
  • MDL: Robust timeit test !7215
  • MDL: Move KaraboJSONEncoder to native data !7192
  • MDL: Make NoEventLoop awaitable to cycle the loop !7123
  • MDL: Configure AMQP Broker queues with expiry time and max length !7217
  • MDL: Adjust macro cancel async slot test with sleepUntil !7222
  • MDL: Another flaky delete_test fix for CLI !7219
  • MDL: Adjust pipeline injected channel test with sleep !7233
  • MDL: Transport pipeline test to pytest !7128
  • MDL: Again fix the flaky delete and cancel tests !7245
  • MDL: Close all proxies on instance shutdown quickly !7232
  • MDL: Only drop for heartbeat queue and align the queue name !7249
  • MDL: Fix another flaky pipeline context test !7250
  • Native: Provide test for popping value from Table with QuantityValue !7141
  • MDL: Fix another flaky output channel test !7248
  • MDL: Heartbeat mixin calls for instanceInfo on zombie !7138
  • MDL test: Delay assert in macro_test !7257
  • Common: Scene2py can consider a different children name !7243
  • MDL: Align flaky topology cli test !7258
  • MDL: Enable optional dependencies for MDL only installations !7154
  • MDL: Add slotDeviceUp to bound server !7273
  • MDL: Align heartbeat queue for max length !7267
  • MDL: Remove ‘archive’ key from the instanceInfo for macros. !7283
  • MDL: Add timestamp to messages from openmqc !7180
  • MDL: Fix flakyness of macro cancel test !7169
  • MDL: Add async waitUntil test for macro !7166
  • MDL: Remove output schema test flakyness !7183
  • MDL: Remove pipeline channels graceful on cancellation !7170
  • MDL: Cleanup heartbeat implementation !7147
  • MDL: Test cross waits for raw channel count !7231
  • MDL: Unify slot and coslot !7393
  • MDL: No task for slot !7401
  • MDL: Close channel in AMQP !7400
  • MDL: Call soon in a macro and avoid creating a task !7403
  • MDL: Force publisher_confirms on channel recreation !7385
  • MDL: Forward message on slotKillServer to children to see who did shutdown the device !7355
  • MDL: Deprecate the coslot and use slot instead !7398
  • MDL: Provide option to declare servers as development servers with serverFlags (playground) !7281
  • MDL: Provide Hash and HashList from/toString !7289
  • MDL: Slots don’t appear in Configurations !7254
  • MDL: Don’t wait for topology collection in ikarabo !7259
  • MDL: Change decorator order device server test !7296
  • MDL: Put more timeouts in output channel schema test !7307
  • MDL: Provide global sync singleton !7299
  • MDL: Remove unused fields from broker headers !7318
  • MDL: Add timestamp to AMQP header !7319
  • MDL: Explicitly close exitstack on exit !7314
  • MDL: Fix race in timer test for AMQP !7329
  • MDL: Add decodeBinaryPos to namespace !7324
  • MDL: Suppress exceptions but post them on the logger !7336
  • MDL: Split device server tests and move the heartbeat test to flaky !7320
  • MDL: Provide queue arguments for classic consume !7335
  • Native: Remove a few numpy warnings in native tests !7297

Bound/cpp core

  • C++ tests: More robust pipeline test !7435
  • C++ tests: Robust waiting for signal slot connection !7461
  • C++ tests: Fix sporadic test failures or crashes !7476
  • C++ tests: Fixes and more robustness !7479
  • C++ tests: Give more info in case of failure of data logging test !7489
  • C++ tests: More robust test gui server notification test !7432
  • C++ tests: Trigger file logger indexing from the beginning in Nan test !7433
  • C++: Direct EventLoop::post with potential delay (backport to 2.17.X) !7519
  • C++: Fix broker message logger for AMQP !7428
  • C++: Restrict configured ports to valid TCP range (BACKPORT to 2.17.X) !7548
  • C++: Split device schemas in chunks of “maxStringValueLength” bytes while saving in Influx. !7409
  • C++/Bound: Fix assignmentInternal having a defaultValueCloses #144 !7459
  • C++: Improvements and updates to the template files for new C++ devices. !7284
  • C++: Establish limits on the AMQP queues !7285
  • C++: support long inheritance chain in configurator !7263
  • C++: Remove AmqpTransceiver if subscription removed !7310
  • C++: Break reference cycle preventing destruction of Amqp classes !7300
  • C++: Remove unused AMQP stuff !7294
  • C++: Fix influx schema writing if disconnected !7326
  • C++: Amqp with less event loop posts when sending !7316
  • C++: Optional second URL read address for InfluxDB !7330
  • C++ test: Longer timeout for pipeline test !7331
  • C++: Prefix amqp exchange for karaboGuiDebug with topic !7332
  • C++: Skip avoidable string copy in Element::getValueAs !7340
  • C++: Prepare for reduced instanceInfo in future releases !7337
  • C++ AMQP: Queue limit also for normal queue !7334
  • C++: find_package for pybind11 not depending on variable set from “auto_build_all.sh”. !7342
  • C++ Test: Await connection before sending data !7343
  • C++: Report ill-formed requestGeneric info back to GUI client !6917
  • C++: Fixed data logger connection failure handling !7001
  • C++: Fix initial topology gathering of the GuiServer !7029
  • C++: Track senderId in lastCommand !7031
  • C++: Add Device::slotGetConfigurationSlice and Device::getCurrentConfigurationSlice !7032
  • C++: Allow Device::writeChannel to specify safeNDArray for OutputChannel::update !6968
  • C++: Add deviceId to exception message of Device::get !6978
  • C++: Protect factory against two libs with the same class !7058
  • C++: Less coupling in JMS test !7091
  • C++: Event loop improvements, e.g. directly add new threads !7067
  • C++: Try to avoid hanging Strand_Test !7120
  • C++: Use Ninja as the Generator if it is available. !7122
  • C++: Implement AMQP connection failover with RabbitMQ cluster !6667
  • C++: Add missing weak ptr protections in SignalSlotable !7144
  • C++: Properly construct and initialize DeviceClient !6982
  • C++: Suggestion to fix message ordering issue for AMQP !7153
  • C++: Do not start threads before event loop is started !7150
  • C++/Bound: By default, global alarm condition should not need acknowledgement !6970
  • C++/Bound: Add flag to avoid NDArray data copy even if pipeline queues !6935
  • C++/Bound: Remove sending logs to broker !7022
  • C++/Bound: Improve device templates !7177
  • Bound: Add order test !7164
  • Bound: Longer sleep time and cautious threading locks !7441
  • Bound: Scene Provider Test: change capability to integer !7426
  • Bound: Add slotGetConfigurationSlice !7039
  • Bound: Track senderId in lastCommand !7042
  • Bound: fix slotLoggerContent if server has no devices !7046
  • Bound: Allow setting a handler for SIGTERM and SIGINT !7043
  • Bound: Streamline device running, less threads !7050
  • Bound: Fix for silent plugin load failure for Bound Python device server. !7044
  • Remove archive from instanceInfo completely. Closes #61 !7174
  • C++: Add clang exception to gcc detection. !7252
  • C++: UserAuth with HttpClient based on Boost Beast wrapping libraries. !7246
  • C++: Properly copy a Validator !7244
  • C++: Broker shortcut without access of static map !7130
  • C++: thread correctness of exception trace !7255
  • C++: Only complain (no bail out) if constructor is registered a 2nd time !7261
  • C++: Add failure messages on test failures !7265
  • C++ tests: Less fixed sleep in data logger integration test !7268
  • C++: AMQP - Fix C++ device server’s shutdown delays !7272
  • C++/Bound: Use auto acknowlegdement mode in AMQP !7262
  • C++: More cautious Strand destructor fixes Python integration test !7184
  • C++: Remove broker logging support !7185
  • C++: Adapt to requirements of next Boost releases !7189
  • C++: Fix a bug in the parsing of HTTP headers by the InfluxDbClient and add a test. !7196
  • C++: AMQP - Fix bug while shutting down C++ devices !7193
  • C++: Add missing publisher resets !7204
  • C++: Influx log reader reports details if schema not found !7203
  • C++: Implement user authentication by pure ‘beast’ !7209
  • C++: Better event loop shutdown protection for integration tests !7218
  • C++ Test: Increase timeout for channel connection !7221
  • C++: Fix compiler warning about unexpected copy !7202
  • C++: Expose Influx server version in InfluxDbClient. Update the CI version of Influx to 1.8.0 (latest OSS). !7212
  • C++ Tests: Fix TcpAdapter::waitFor !7226
  • C++ Tests: Clean client handling !7227
  • C++: Temporarily disable broken GUI Server authorize token integration test. !7228
  • C++: Remove signal cleaning on instanceNewFixes alarm test flakiness. !7238
  • C++: Do not assert, but throw on wrong URL on Tcp config !7241
  • Bound: remove unused regex variable !7242
  • Bound: Add serverFlags to device serverCloses #261 !7362
  • Bound: Move karabind tests in separate directory !7375
  • C++/Bound: Remove unused handlers for instanceNew/Gone/Updated !7239
  • C++: Signal::registerSlot with return value and unit test !7240
  • C++: More robost pipeline test !7186
  • C++ Tests: Debug output when devices do not get up in test_chain_receivers !7187
  • C++ Tests: Add debug info to alarm integration test !7229
  • C++ Tests: Fix code added for debugging !7230
  • C++ Influx: Fix potential schema writing problem for quick schema injections !7369
  • C++/Bound: Slots should not appear in validated configs !6539
  • C++: Protections for HTTP error and for invalid HTTP response payload in “InfluxDeviceData::checkSchemaInDb”. !7373
  • C++: Reject data ingestion in Influx for string field values exceeding the max allowed length. !7381
  • C++: Provide serverFlags option !7374
  • C++: Influx max string length unit test !7391
  • C++: AMQP: Close unused channels after initialization !7383
  • BIND: karabind - bound python on pybind11, part 1. !7295
  • BIND: Extend test attributes !7309
  • BIND: Add karabind TODO !7347
  • BIND3: Add karabo Hash/Hash::Node binding !7313
  • BIND: Move HashNode test to pytest !7377

Core Devices

  • DataLogger: Better message for no schema found while getting past config. !6926
  • DaemonManager: Protect from faulty webservers … !7085
  • InfluxDataLogger: to log vector Hash rejection in detail !6989
  • Python influx: Remove a few deprecation warnings and code quality !7159
  • All API: Clients use only first data log readers per logger server !7266
  • GUI Server: Send a success subscribe log reply !7308
  • Influx: Text to Influx migrator updated to chunk schemas like the InfluxDataLogger. !7417

Dependencies, Documentation and Tools

  • Framework: Add “karabo-startrabbitmq” script to support AMQP. !7357
  • Framework: Add auto-completion to Karabo commands !7260
  • FW: Feat/gtest refactor !7346
  • Framework: Make karabo-brokerrates working with AMQP !7365
  • Framework: Change licensing to Schenefeld !7384
  • Add support to AlmaLinux 9. !7256
  • Drop Ubuntu18 support from CI !7220
  • Tests: Skip Python integration tests on CI for AMQP broker !7066
  • DEP: Update openmqc to version 5.1.4.1 (fix for compilation on GCC 11.3). !6936
  • DEPS: Update miniconda image !7053
  • DEPS: Maintain tag folder for cmake and netbeans build in karabo install !7078
  • DEPS: Add qscintilla dependancy !7081
  • DEPS: Remove Conda environment-based build !7151
  • DEPS: Add Conan Package Manager as an external Framework dependency. !7173
  • Conda: Update mirror on demand !7009
  • DOC: fix MDL library description !6922
  • DOC: add a CI test for the documentation !6923
  • DOC: Document 2.16 release !6927
  • DOC: 2.16 add feature and bugfixes section !6931
  • DOC: More documentation for 2.16.X !6934
  • DOC: remove duplication for C++ in 2.16 !6945
  • DOC: document 2.16.1 and 2.17 !7006
  • DOC: More details about safeNDArray option in 2.16.1 !7010
  • DOC: Fix omission about the need to run ‘auto_build_all.sh’ before opening project in VSCode. !7172
  • DOC: Documentation 2.16.X: Split Core Devices !6928
  • DOC: Add more highlights to doc 2.16 !6929
  • DOC: Start documenting 2.17 !6981
  • DOC: Document 2.16: MDL detail !7011
  • DOC: document 2.16.2 !7048
  • DOC: Fix test_doc ci step !7052
  • DOC: Adjust removed ‘gitlab’ from urls, update supported platforms !7056
  • DOC: Fix gitlab link !7051
  • DOC: Document 2.17. until alpha 6 !7236
  • DOC: Document until alpha 8 !7287
  • DOC: Document more the 2.16.X releasesCloses #229 !7338
  • DOC: Document until rc5 !7360
  • DOC: Doc new release candidate 2.17.0rc6 !7412
  • DOC: fix documentation for synchronized coroutines !7414
  • CI: Add build and test jobs for Ubuntu22. !6924
  • CI: Fix the gitlab CI setup in the templates for new devices on AlmaLinux9. !7328
  • CI: Framework - use CI_JOB_TOKEN instead of requiring XFEL_TOKEN to be defined in every project !7345
  • CI: Fix for “set_lsb_release_info.sh” not found from “.bundle*” scripts in “$KARABO/bin”. !7333
  • CI: Lint karabind !7488
  • CI: Provide System test !7408
  • CI: Trigger integration tests when some change happens in src/karabo/core. !7425
  • CI: Add system test fix to hot fix branch !7520
  • CI: Downgrade docker images (2.17.X) !7587
  • CI: Replace exflserv05 with exflctrl01 !7427
  • TOOLS: remove tags on karabo install !7018
  • TOOLS: Fix typo in karabo-kill help message. !7000
  • TOOLS: Add Python and IDE related entries to MDL/Bound Python .gitignore templates. !7276
  • TOOLS: Provide karabo-stoprabbitmq command !7449
  • TOOLS: RabbitMQ: More helpful output from “karabo-startrabbitmq” command. !7450
  • TOOLS: protect auto_build_all.sh from being called from other OSes (Port to 2.17.X) !7554
  • TOOLS: Use lnav if available !7462
  • TOOLS: Add karabo-less helper (Port to 2.17.X) !7505
  • TOOLS: Adjust brokerrates script for non existent slotInstanceIds on heartbeats !7463
  • DEPS: Test before uploading dependencies !7036
  • DEPS:: Remove RedisClients and their implementations !7364
  • DEPS: Update async timeout, jinja2 and add pytest rerunfailuresCloses #121, #120, and #112 !7404- C++: Belle dependency isolated in HTTP server implementation class. !7363
  • FOSS: Add copyright to files in src that lack it !7474
  • FOSS: Add copyright to non-src filesCloses #282 !7487
  • FOSS: Add licensing to the framework !7431
  • FOSS: CI job to publish to the internal mirror on pushes of release tags. !7447
  • FOSS: Copyright from Hamburg to Schenefeld !7443
  • FOSS: Harmonize copyright !7460
  • FOSS: Add CLA and update contribution guidelines accordingly !7352