**************************
What's New in Karabo 2.9.8
**************************

A release for the GUI Server. We temporarily allow devices coded not following
the ``fast reply on slot`` policy to be installed and not bother the user with
spurious timeouts. These devices should be adapted before the release of 2.10.0.
This also includes some GUI enhances such as a fix for scenes with nested layouts
that modifies the scene upon loading and a verbose error dialog that extracts
pertinent information from the stack trace.

Detailed Merge-Log
==================

- CPP: GuiServerDevice can ignore timeouts on configuration !4649
- File Logger: Fix reading of empty vector of strings logged with 2.8.X and earlier. !4654
- GUI: Calculate scene layout sizehint from children sizehints only when it is invalid. !4668
- GUI: Extract important part of stack trace of the error dialog !4670

**************************
What's New in Karabo 2.9.7
**************************

A release dedicated to Influx Dataloggers to handle large data polled/
Minor GUI and CI bugfixes have been backported as well.

Detailed Merge-Log
==================

- BUILD: Preserve egg dir when building the package !4618
- INFLUX: getHistory fixed for history poll larger than 5000 points !4616
- INFLUX: handle `partial` key from DB !4617
- INFLUX: fix logger crash on bad configurations !4506 and !4603
- INFLUX: string contain pipes are read correctly in for (1|2|3) scenario !4592
- CI: windows CI is less verbose, unit tests skip build !4618
- GUI: Add the histogram aux to Detector Graph !4586
- WEBSERVER: Webserver doesn't handles device servers with a minus sign !4600

**************************
What's New in Karabo 2.9.6
**************************

A release dedicated to GUI adjustments for the readOnly server and a couple
of plot widget fixes

Detailed Merge-Log
==================

- GUI: Enable readOnly utility in client !4457
- GUI: Implement access level configuration for project toolbar !4461
- GUI: AccessLevel service kill in topology !4462
- GUI: Better access logic for project bar !4465
- GUI: Scripting console access role !4467
- GUI: AccessRole implementation for configurator toolbar !4470
- GUI: Implement access role for device topology !4471
- GUI: Implement access roles in the project view !4497
- GUI: Run macro from macro panel has access role !4505

- GUI: Improve visualization of vectors with invalid numbers for VectorBarGraph in log mode !4570
- GUI: Update x-transform after trigger !4572
- GUI: Increase the frequency of axis ticks on small widgets !4574


**************************
What's New in Karabo 2.9.5
**************************

A release dedicated to provide a readOnly gui server.

Detailed Merge-Log
==================

- C++: Provide a readOnly version for the GUI Server !4568
- GUI Server: Enable device provided scenes in read only mode !4571


**************************
What's New in Karabo 2.9.4
**************************

A release dedicated for GUI fixes (ranges) and the InfluxDB rollout.

Detailed Merge-Log
==================

- InfluxDB: Log the whole answer in case of failing request !4529
- InfluxDB: Migrate schema event !4532
- InfluxDB: Cast UINT64 to INT64 not STRING !4555
- InfluxDB: Fix Schema Migration !4546
- C++: Log readers reply time string with timezone !4541
- GUI: Set a global Locale !4542
- GUI: More plot range fixes !4543
- GUI: Hide the axis labels when there is no text or unit !4558
- GUI: Show/hide labels in image plots whether there are text/units !4561
- GUI: Set dragged widgets as initialized !4538


**************************
What's New in Karabo 2.9.3
**************************

A release dedicated to enhance the karabo GUI. It will provide better logarithmic
display of the axis and fixes the graph toolbar toggling.
**This hotfix is highly recommended!**

Detailed Merge-Log
==================

- InfluxDB: Display success when influx migration succeeds !4503
- GUI: Fix plot log range !4521
- GUI: Fix vector bar graph !4522
- GUI: Fix graph toolbar toggling !4524


**************************
What's New in Karabo 2.9.2
**************************

A release dedicated to the ``InfluxDB`` rollout.

Detailed Merge-Log
==================

- InfluxDB: Handle Nans, Infinities and empty stringsOriginally !4452
- InfluxDB: Fix influx reader when schema injection happens and empty strings and vectors are involved.!4454
- InfluxDB: adapt migration to new format !4464
- InfluxDB: Cherry pick influx fixes 2.9.2 !4485
- InfluxDB: Do not try to parse LOGOUT lines !4499
- GUI: Hide the labelItem in the aux plots by default !4488
- Tests/CI: run integration tests on hotfix branch !4490
- Tests/CI: Integration test for data logging when schema evolution happens !4463


**************************
What's New in Karabo 2.9.1
**************************

A release dedicated to the ``InfluxDB`` rollout. A few fixes have been ported
into this hotfix.
In addition, the bound api gets an alarm update fix.

Detailed Merge-Log
==================

- InfluxDB: Migrator does not add quotes to field keys !4424
- InfluxDB: better failure detection !4423
- InfluxDB: Don't wait forever on credentials that are never entered !4430
- C++: Silence gui server log file !4422
- Bound: Backport fix of signalAlarmUpdate !4433


**************************
What's New in Karabo 2.9.0
**************************

The **most relevant improvements**, fixes and changes are:

- GUI: Qwt Based Widgets are deprecated
- GUI: Matplotlib Widgets are deprecated
- GUI: The system topology is less crowded now since only device classes from running devices are shown
- GUI: The karabo GUI is now supported on **MacOSX**
- MACRO: Multiple macro servers can now be used in a single topic.
         The macro servers should now start with the command
         `karabo-macroserver`.
- C++: the data loggers with influxDB backend are production ready.


Detailed Merge-Log
==================

Since karabo 2.8.0, a total of ~97 MR have been implemented in this release.

Bound/cpp core
++++++++++++++

- C++/bound: fullyEqual for hashes, but ignoring key insertion order  !4394
- C++/bound/MDL: Device property for karabo versionFor all APIs, add a new device property: `"karaboVersion"`. !4353
- C++/bound: Device client's channel monitor allows registering onInput handler !4354 !4370
- C++: Log stop of logging in file logger !4320
- C++ : Failing/longish startFsm (i.e. device initialisation) has no influence on slotStartDevice !4335
- C++: Add test about device being killed during initialisation !4338
- C++: Influx DB topic configurableDB name is now centrally configured in the data logger manager. !4341
- C++ integration tests: Larger timeout for influxDB, more debug print !4360
- C++: Karabo version from 'git describe' compiled into shared library. !4364
- C++: Fix alarm service flush file reading + stricter tests. The handwaven XML file reading was changing strings !4375
- C++: Ignore timeouts on execute if askedChanged the gui server protocol in a backward compatible way. !4376
- C++: fix race condition in setGlobalAlarm !4389
- Bound: add bindings for full equality check of HashesImplemented in bound as a free function like `similar`. !4381
- Bound: improve fix of device's slotReSubmitAlarms !4393


Dependencies and deployment
+++++++++++++++++++++++++++

- CONDA: rebuild indexes correctly !4297
- CONDA: conda-recipe for karabo-cpp using cmake !4299
- CI: Conda cannot clean itself on Windows !4352
- CI: Add prerelease conda build for alpha and beta tags !4355
- BUILD: refactor conda build scripts using Python !4331
- BUILD: Enable nightly build !4337
- BUILD: GUI CI on MacOs  4269
- BUILD: Skip CMake build !4348
- BUILD: Conda recipes get their own folder. !4305
- BUILD: Check for errors after running pip to install Python code !4318
- DEPS: add uvloop !4300 !4303 !4312


Tests
+++++

- TESTS: Add test_bin_roundtrip test case. !4313
- TESTS: Extend unit test to check interoperability of xml serialization between MDL and Bound Python. !4304
- TESTS: Python Tests do not drop database  !4385


Middlelayer Core
++++++++++++++++

- MDL: Fix MDL bin decoding of Vectors of Hashes (conform to C++ bin decoding).  !4302
- MDL: Increase number of threads in executor  !4311
- MDL: Minor code quality fixes  !4345
- MDL: Karabo version in instanceInfo of all SignalSlotable...and thus also for devices. This aligns MDL with C++ and bound Python.
- MDL: separate macro devices namespace  !4347
- MDL: PropertyTest Device starts via CLI !4382


Core Devices
++++++++++++

- PROJECT DB: Add returing projects and active configuration in each for a given device !4336
- Data Logger: Modifications to support multiple DataLoggerManagers per topic. !4372


Influx DB
+++++++++

- InfluxDB: Fix InfluxDB environment for CI and cluster  !4274
- InfluxDB: Integrate InfluxDataLogging test into CI  !4379
- InfluxDB: Merge temporary XML parsing overwrites in 'karabo.influxdb.dlUtils' into 'karabo.native.data.serializer.py'. !4315
- InfluxDB: Fix InfluxDB data migrator for Pre-production environment. !4323
- InfluxDB: Improve influx migrator workflow. !4340
- InfluxDB: Support workload partitioning and concurrent processing for Influx Migrator. !4350
- InfluxDB: Prepend platform name to measurements in InfluxDB  !4402
- InfluxDB: Handle database creation failures at InfluxDataLogger startup. !4378
- InfluxDB: Migrate to influx newer files first !4406

Graphical User Interface
++++++++++++++++++++++++

- GUI: Fix image widget for pixels of same values !4296
- GUI: Fix scene boxlayout !4292
- GUI: Indicate non-resizable fixed layout !4295
- GUI: Add close event and focus on ok button for error messagebox !4301
- GUI: Extend unit-test for table element with options !4306
- GUI: Change device tree: Domain - Type - Name !4267
- GUI: Remove scene view expanding on undock !4294
- GUI: Show the server language information in an icon !4252
- GUI: Destroy scene view properly !4291
- GUI: Fix scene line shape !4293
- GUI: Catch the ValueError in the combobox delegate when options are violated !4307
- GUI: Fix AccessLevel change on scene design mode !4309
- GUI: Add test for boxlayout actions !4310
- GUI: Destroy project controller properly !4298
- GUI: Fix message box close on 'x' button click !4319
- GUI: Increase connect dialog delay time !4322
- GUI: Refactor the toolset to Traits !4321
- GUI: Change the vector line edit in size hint !4325
- GUI: Create a common place for colors !4326
- GUI: Refactor aux plots to Traits !4327
- GUI: Allow multiple macro server instances !4346
- GUI: Adjust minimum size of image plot only when ROI is added !4342
- GUI: Remove spark line size restriction !4328
- GUI: Implement new class handling in topology !4179
- GUI: Convert Qwt models to Graph models !4339
- GUI: Soften deprecation of models !4366
- GUI server: Better error message for execute/reconfigure timeouts !4363
- GUI: do not expect replies from macro slots !4371
- GUI: Convert unit label into a wrapper class !4374
- GUI: remove deprecated traits !4367
- GUI: Backward compatibility of tool button method !4384
- GUI: Formatted value field !4368
- GUI: Implement a sticker widget !4356
- GUI: Fix the blue background if no changes in configurator !4383
- GUI: Soften deprecation of LinePlotModel !4391
- GUI: Remove not used trait in the sticker scene writer !4397
- GUI: Respect the object arrangement when selected !4392
- GUI: avoid overflow on slider range comparison !4390
- GUI: Add Macro Icon for Topology !4398
- GUI: Extend and clean simple model tests !4399
- GUI: Validate Vector Ints on list edit !4405
- GUI: Refactor image rescale to avoid overflows and copying !4403
- GUI: Icons Dialog improvement !4401
- GUI: Fix macro save to file with unsupported characters !4388
- GUI: Fix crosshair ROI path calculation !4365
- GUI: Display ROI text only when selected !4343
- GUI: GUI: Extend VectorXYGraph for multiple Y curves !4410
- GUI: More header resize !4409
- GUI: Return the Qwt tests !4407