What’s New in Karabo 2.7.0¶
The most relevant improvements, fixes and changes are:
- C++ (interface change): runtime updates of schemas are now rolled-back in case of failures. !3729
- C++/bound Py (interface change): The key of a Device slot listed in the Schema must not contain any underscore ‘_’. !3878
- RunConfigurator and RunConfigurationGroup are now located in a separate package
daqConfiguration
. !3923 - Qt5 refactoring of the GUI
- Pipeline data Connection consolidation
- Service Control available in the Karabo Gui
- InfluxDB available as DataLogger Backend
- The karaboGui does not use the legacy dependencies system
- Consolidate pipeline data connection when sender and receiver start at the same time !4006
Detailed Merge-Log¶
Bound/cpp core¶
- BOUND: Removing parametrized Execute and ExecuteNoWait from deviceClient !3697
- Fix for bug on deserialization of schema and vector<Hash> attributes written before changes in MR !3592. !3713
- Add readOnly() support for TABLE_ELEMENT. !3715
- Add a couple of scoped_lock instances that were missing in the EventLoop. !3716
- Fix for issue that device server cannot be shutdown when it parents an active instance of the calibrationDBRemote device. !3718
- Extends fixes done to updateSchema in MR 3658 to appendSchema. !3725
- Alleviate (not fix) concurrent connect/reconnect of pipelines !3730
- Fix logging strings with newline character - mangle to “.KRB_NEWLINE.” !3714
- Bound: Fix logging level inheritance from server !3738
- Fix device client init topology multithreading !3737
- Adjustments to DataLoggerManager: some default values and check summary formatting. !3750
- Fix python device shutdown with timeout reported in the log !3758
- slotGetPropertyHistory retrieves last known value of a property when it hasn’t been modified during the requested interval !3790
- C++: Allow generic GUI slot calls to slotGetOutputChannelInformation !3827
- Fix for broken C++ integration test after MR !3729 !3807
- C++: added method readAsyncUntil to TcpChannel class !2721
- C++: Fix for ReadAsyncStringUntil_Test !3851
- C++: Silence log message appearing in normal operation !3855
- New boolean flag ‘configAtTimepoint’ added to reply of ‘DataLogReader::slotGetConfigurationFromPast’. !3696
- C++: Fix interplay between slotUpdateSchemaAttributes and updateSchema !3729
- Replaced m_signalsChangedThread by m_signalsChangedTimer (a deadline_timer) in the DeviceClient. !3838
- BOUND: Keep server in clean state and kill previous device processes !3853
- C++/BOUND: Devices “archive” changed to become non-reconfigurable !3859
- C++: Reply an error if reading logged data fails !3677
- C++: Make SignalSlotable_Test::testDisconnectAsync more robust !3888
- C++: Gui Server potentially reply success for “execute” and “reconfigure” !3882
- C++: Avoid naming clash between influxdb QL keyword ‘user’ and tag and field keys. !3907
- Bound: Fix order of mutex and access in slotDeviceGone !3898
- C++: clean input channel handling in SignalSlotable !3913
- C++/bound: No underscore in slot keys !3878
- C++: Refactor DataLogger !3860
- C++: Allow slot_with_underscore again, but forbid “clear_namespace” !3914
- C++: Further cleaning of the InputChannel. !3919
- C++: Fix/concurrent pipeline connection !3940
- Bound: Faster server shutdown !3984
- BOUND: Run Configurator: New scene !3901
- BOUND: New Runconfiguration Group scene !3912
- BOUND: Remove RunConfigurator and RunConfigurationGroup !3923
- C++: safe option to construct DeviceClient !3981
- C++: updateState with timestamp and/or with other properties’ updates !4022
- C++: fix concurrent pipeline device instantiation !4006
Dependencies and deployment¶
- TESTS: Adds test for pipelines composed of more than 2 devices: a sender, a receiver and n intermediary devices. !3736
- CONDA: Karabo Gui conda environment - via proper merge request !3712
- FIX: webserver missing templates !3720
- DOCS: Add docs for running karabo-gui on Conda environments !3722
- DOCS: Remove unnecessary documentation link !3735
- INSTALL: Clean install Karabo on Linux !3721
- CONDA: Fix conda matplotlib issue !3780
- CONDA: Improve conda output for debugging !3789
- CONDA: Remove windows release leftovers !3791
- TEST: MDL property test !3731
- TEST: Add TinyBoundDevice demonstrating ‘worker’ behavior
- INSTALL: karabo install uses default repo !3803
- CONDA: Add GUI theatre program !3806
- DOCS: Qt5 Strategy !3799
- TEST: Add tests for read-only properties. !3804
- DOCS: Add how to develop tests, especially integration tests. !3823
- TEST: Fix bugs in egg.info, device server and integration test
- CI: Prepare for testing InfluxDB in the CI !3843
- DOC: adding a TODO list to the InfluxDBLogger !3840
- TEST: More robust DeviceClient_Test::testMonitorChannel() !3858
- DOCS: Python tests: Add –runLongTests option to documentation !3854
- WEB: Including live documentation in the webserver !3852
- DOCS: Added notes on workaround for using DeviceClient.registerSchemaUpdatedMonitor. !3831
- DOCS: Documention on InfluxDB logging backend. !3845
- DOCS: Add a waitUntilNew description !3828
- FIX: Webserver docs CSS import !3867
- WEB: a webserver to aggregate webservers !3866
- FIX: Web aggregator start order !3885
- DEPS: Update tornado, 0mq and ipykernel !3872
- C++ integration tests: Silence compiler warnings !3891
- FEAT: WebAggregator has a REST interface !3886
- CONDA: Don’t install kernel when building dependencies !3902
- DOC: fixes, forgotten things- Fix format in testing.rst !3896
- DOCS: Updates to influxdb structure proposal and Influxdb todo list. !3903
- DEPS: Update ipython dependency on GUI !3892
- DEPS: Downgrade to tornado 4.5.3 !3897
- DOCS: Move docs to correct place !3904
- WEB: add karabo_name to json data !3918
- INSTALL: remove curl output on karabo install !3916
- DEPS: Add nlohmann_json dependency on its version 3.7.1. !3928
- WEB: Webserver documentation corrected !3906
- TEST: Remove the group config integration test !3936
- DEPS: remove GUI dependencies from the source !3933
- TEST: Remove mmcabe code checker !3876
- CONDA: fix auxiliar conda activate script !3932
- DOC: Clean up the readme !3944
- DOCS: remove alfresco link !3948
- CONDA: build script improved !3956
- DEPS: remove unused dependencies !3952
- DEPS: Matplotlib should use TK backend !3962
- CONDA: better script path recognition !3972
- CONDA: Set the number of threads per core in the CONDA env !3976
- DOCS: remove version and group rename !3995
- DOCS: defining conda installation !3999
- DOCS: describe webservers !4000
- CONDA: KaraboGUI Windows Release job !4004
- WEB: Webservers push their information on action !4023
- TOOLS: Fix karabo-brokerrates against misconfigured locale !3982
- CONDA: set environment variable !4028
Middlelayer Core¶
- MDL: Align outputchannel hostname with cpp counterpart !3781
- MDL: Follow-up of generic GUI slot for slotGetOutputChannelInformation !3842
- MDL: Use constants for open mq errors !3864
- MDL: Provide easy timestamp calculations !3868
- MDL: Allow different displayTypes in Table Elements !3908
- MDL: Remove kernel exception/warning !3930
- MDL: Silence ikarabo exception exit !3887
- MDL: Add creation day in header for new MDL devices !3964
- MDL: Use Python 3 super() syntax in device templates !3965
- MDL: Fix allowed states for Nodes !3969
- MDL: Don’t provide data on output channel schema for getConfigurationAsHash !3951
- MDL: Fix output channel information from Hash !4041
- MDL: Fix slotGetOutputChannelInformationFromHash test !3968
- MDL: Allow BoolValue conversion to float and int !4034
Core Devices¶
- C++: Gui server schema sent to requesting channels !3869
- C++: Fix NetworkPerformanceCounters from GUI Server Device !3905
- C++: Add Influxdb data logger !3910
- C++: Tune log messages of DataLoggerManager !3991
- C++ FileDataLogger: silence expected timeouts !3987
- C++: Fixes to Hash::fullyEquals, mainly for vector<string> !3989
- C++ file logger: Store at least configurations if Schema cannot be serialised !3990
- C++: FileDataLogger: Fix bugs in stopping of logging !4014
- C++: FileDataLogger: Enable loggers logging !3740
- C++: Add Influxdb log reader !3911
- MDL: InfluxDb client !3889
Graphical User Interface¶
- GUI: Fix clipboard scene data encoding !3700
- GUI: Double click on colorbar to change levels !3702
- GUI: Fix loading invalid filename in project !3679
- GUI: Add error dialog on macro when run on project !3671
- GUI: Deprecate host information in the karabo project !3724
- GUI: Add missing icons for icon widgets dialog !3726
- GUI: More info on arrival of configuration from past !3732
- GUI: Remove duplicated msg question when trashing from toolbar !3734
- GUI: Show message box when an icon cannot be set !3727
- GUI: Fix weblink validation !3751
- GUI: Remove bottom panels and rearrange project and alarms, log !3757
- GUI: Show connect dialog on startup !3741
- GUI: Fix project scene saving !3756
- GUI: Check whether device server already exists in project !3753
- GUI: Use Sans Serif and change global font with Pointsize 10 !3760
- GUI: Check if macro simple name already exists !3755
- GUI: Fix race condition between Qt and traits in the command widget !3761
- GUI: drastically speed up GUI close !3764
- GUI: Configurable splash screen in cinema !3765
- GUI: Clean and refactor the start programs !3766
- GUI: Memory cleanup on scenes, delete later … segfault treatment !3769
- GUI: Handle schema evolution on scene widgets !3759
- GUI: Refactor the initialization of GUI with splashscreen !3768
- GUI: Remove persistent index treatment in the table due to segfaulting !3706
- GUI: Move trendline warnings !3774
- GUI: Rename device status to proxy status !3773
- GUI: Fix asking twice for modified project on GUI close !3772
- GUI: Fuel the karabo GUI processing !3767
- GUI: Reload project option in the project panel !3771
- GUI: Expand project on double click until device configuration depth !3776
- GUI: Generalize and cleanup of search panels !3777
- GUI: Create an own search bar class !3778
- GUI: Make the NewProjectDialog non modal !3775
- GUI: Instantiate all macros in a project !3770
- GUI: Implement and harmonize search in device topology !3779
- GUI: Enable toolbar and actions on trendline !3783
- GUI: Enable data point toggle in graph widgets !3782
- GUI: Fix image widget profiling with ROI !3739
- GUI: Fix trendline range limits !3784
- GUI: Provide a better project conflict message !3787
- GUI: Enable selected Karabo actions on graph widgets !3786
- GUI: Activate TrendGraph in double click retrieval !3792
- GUI: Implement a deferred visibility process in the scene view !3793
- GUI: Remove hide/show magic of scenes in panels !3794
- GUI: Add set_translation on image widget !3788
- GUI: Always show data in trendline and provide data toggle !3796
- GUI: Only allow symbols for PlotDataItems !3798
- GUI: Trendline update scale fix on deferred update !3800
- GUI: Prevent blob jumps in historic data !3801
- GUI: Separate trendline and models !3802
- GUI: Implement State Trendline !3805
- GUI: Fix load macro/scene filename validation !3785
- GUI: Namechange to clear the namespace of a binding !3861
- GUI: Qt5 Refactor !3880
- GUI: Enhance run configurator controller !3879
- GUI: Add processEvent toggle to timeit decorator !3884
- GUI: Store last saved macro dir !3881
- GUI: Change read only widget background !3849
- GUI: Optionally make configuration items configurable !3877
- GUI: Provide the list of scene uuids in a html output !3875
- GUI: Add State Graph to double click elements and refactor generic scenes !3894
- GUI: Create a base trendline !3808
- GUI: Remove auto expand on single click in navigation views !3895
- GUI: Merge the graph series widgets to a base !3900
- GUI: Save expanded state of run configurator widget !3883
- GUI: Fix trendline data overlap !3915
- GUI: Implement easy documenation access !3893
- GUI: Arrange trendline historic data retrieval !3856
- GUI: Provide correct tooltips for searchbar !3921
- GUI: Implement daemon manager service !3909
- GUI: Provide data points by default in trend graphs !3920
- GUI: Patch the alarm pixmap test !3927
- GUI: Fix table widget column size after cancel editing !3924
- GUI: Use a filter model in the project dialog !3922
- GUI: Enable to show incompatible devices in the project !3925
- GUI: Be harsh when checking macros for violations !3899
- GUI: Don’t repaint full project tree on item update !3926
- GUI: Plot vector booleans properly in graph widget !3931
- GUI: Add search to daemon controller !3917
- GUI: Add daemon service singleton protection !3939
- GUI: Fix edit delegate in configurator !3941
- GUI: Enable data toggle on NDArray Graph !3953
- GUI: Align runconfigurator widget with new class name !3958
- GUI: Enable state coloring in the table element !3961
- GUI: Enable data export on plots !3957
- GUI: Add Alarm Trendline to controllers !3959
- GUI: Provide option to reset vector roll image !3954
- GUI: Allow better plot axis configuration with scientific notations !3960
- GUI: New image widget smarter downsampling !3752
- GUI: Remove table element schema from the project !3795
- GUI: Provide same set_label interface for plot and image graphs !3945
- GUI: Enable separation of x and y axis range configuration !3946
- GUI: Enable transformation of the x-axis in the graph plots !3963
- GUI: Confirmation dialog in Daemon Controller !3955
- GUI: Fix parenting of dialogs !3966
- GUI: Set the focus on the search label of project dialog !3974
- GUI: Project controller dialog parent !3971
- GUI: Fix navigation panel dialog parenting !3977
- GUI: Fix macro and scene load filename !3980
- GUI: Fix brush for line item pen dialog !3978
- GUI: White viewbox on graphs !3988
- GUI: Fix focus on filesystem widgets !3992
- GUI: Fix not showing value of file system !3993
- GUI: Fix directory filesystem parent !3994
- GUI: Use old runconfigurator classId in configurator widget !4003
- GUI: Fix plot grids !4005
- GUI: More transparent plot grids !3996
- GUI: Add and fix the y-range in the trendline graphs !3970
- GUI: Add reset ranges to vector roll changes !4011
- GUI: Increase connect dialog delay !3998
- GUI: Set the grid to True for trend graph models !4001
- GUI: Prepare for bulk update of configurations !4009
- GUI: Fix start point of trend graph controllers !3997
- GUI: Improve trend axes layout !4010
- GUI: Modified icon command widget !3985
- GUI: Fix the grid alpha for graph plots !4015
- GUI: Lower min height of widgets !3975
- GUI: Fix image levels calculation with new clipping implementation !4016
- GUI: Invert grid values in vector graph test !4019
- GUI: Add more icons for the icon command widget !4018
- GUI: Make the list edits state aware !4017
- GUI: Fix VectorBool with Qwt and new numpy version !4040
- GUI: Show stored Hash configuration in project !4029
- GUI: Set the earliest start_time of the trend graphs !4030
- GUI: Better datetime format for trend graph axis !4013