What’s New in Karabo 2.5.0¶
The most relevant improvements, fixes and changes are:
- C++/bound: Elements in schema must not have an empty key or an empty list of options.
Detailed Merge-Log¶
Bound/cpp core¶
- C++: Bug and performance fixes for BufferSet copies after a call to emplaceBack(..) !3453
- C++: As copyLocal, queueing requires to copy the dataOtherwise it might be sent when the sender already has modified the data. !3455
- C++: Add message body to log message if reply handling failed. !3481
- C++: SignalSlotable stress test !3508
- C++: Addition of State::PAUSED to the cpp facet of the Framework. !3522
- C++: Cleaner handling of readHandler variable in TcpChannel !3535
- C++: Fix memory/resource leaks in point to point shortcut !3537
- C++/bound: Fix sub-permille chance to screw up pipelining !3446
- C++/bound: Treat duplicated pipe connection - keep most recent !3471
- C++/bound: Make c++ ImageData element DAQ compliant when specifying setDimensions() !3403
- C++/bound: when an InputChannel disconnects, log instanceId, ip and port !3474
- C++/bound: Limit log messages sent via Network !3500
- C++/bound: Fix bug in handling TableElement by HashFilter class
- C++/bound: Validation of TABLE_ELEMENT !3502
- C++/bound: Don’t tolerate empty strings as keys or empty list of options !3509
- C++/bound: allowed actions for (custom) nodes !3511
- C++/bound: Fix for DeviceClient::getCurrentlyExecutableCommands. !3513
- C++/bound: slotGetTime for Device !3520
- C++/bound: Avoid risk that logging singleton is called when being destructed. !3527
- C++/bound: fix potential memory leak in InputChannel. Avoid cyclic shared pointers in InputChannel. !3524
- C++/bound: fix potential memory leak in OutputChannelAvoid cyclic shared pointers in OutputChannel. !3528
- C++/bound: Add connections table to the OutputChannel !3394
- Bound: Make bind_weak work in DeviceClient’s underlying C++ object. Achieved by making it be pointed to by shared_ptr. !3407
- Bound: Fix missing GIL release in karathon
- Bound: Release GIL when connecting to a signal !3462
- Bound: Explicitely log SignalSlotableWrap::start() failures !3470
- Bound: Get Python traceback as a string into C++
- Bound: PEP the bound device client !3445
Core Devices¶
- C++ PropertyTest: Add input channel and continous writing to output !3412
- Gui Server: Avoid data copies in GUI server !3354
- Gui Server: Cleanup runconfigurator and runconfiguration group !3452
- Gui Server: Throttle guiserver instanceinfo updates. !3289
- Gui Server: Throttler with alarm !3494
- Gui Server: Increase timeout for getConfigurationFromPast in gui server !3580
- Gui Server: Require GUI client version >= 2.5.0 !3554
- Project Manager: ProjectManager reset !3477
- Project Manager: ProjectDB can list items by type and name !3495
- Data Logger: Enable performance statistics of DataLoggers to trigger alarms !3480
- Alarm Service: Fixes for the broken integration test cases for AlarmService. !3491
- DataLogReader: Fix for unhandled exception on DataLogReader::findLoggerIndexTimepoint. !3478
- Run Configurator: Fix for RunConfigurator unchecking updated groups !3472
- Run Configurator: protecting the RunController from empty configuration !3548
Dependencies and deployment¶
- DEPS: Backbone of multi api test setup, introducing “long” tests !3409
- DEPS: Update pip version 7.1.0 -> 19.1 !3476
- DEPS: Move PyQtGraph to 0.11-develop !3510
- Core: Cross api pipeline test template !3417
- Core: Enhancing Webserver with logs !3475
- TEST: removed dead tests on webAuth !3566
Middlelayer core¶
- MDL: Karabo number to dtype conversion !3391
- Native Schema: getAliasAsString returns None when no alias present !3392
- MDL: Property Test MDL has an inputchannel and outputchannel !3401
- MDL: Enable delayOnInput in input channel !3400
- MDL: Track channel connections in output channel !3402
- MDL: Send channel name in input channel for table element tracking !3404
- MDL: consistent type in Timestamp.tid !3410
- MDL: Fix table element pop !3416
- MDL: replace deprecated asyncio.async by asyncio.ensure_future !3423
- MDL: Enhance Tablelement with bulk clear and remove collections dependency !3418
- MDL: Adjust autostart for devices !3436
- MDL: Performance boost for Hash !3411
- MDL: Fix VectorFloat to string !3415
- MDL: Extract image data from Hash !3504
- MDL: Add allowedActions to Nodes !3512 !3515
- MDL: Provide slotGetTime in MDL device !3516
- MDL: Remove flakes test in middlelayer !3529
- MDL/Bound: Implement State.PAUSED !3514
- MDL: Add List Of Hash Setting to TableElement !3482
- MDL: Flaky, Require 3 successes out of 7 instead out of 5 runs !3278
- MDL: Get property in getattr fashion in utils !3551
- MDL: Adding classId attribute to certain Node children schema elements in the middlelayer, like InputChannel, OutputChannel and Slot. !3562
- MDL: Implement classId for alarms !3577
Graphical user interface¶
- GUI: Speed up events in main window !3388
- GUI: Rework alarm panel !3377
- GUI: Remove the latching alarm system from the scene !3405
- GUI: Optimize panel wrangler events !3413
- GUI: Project performance increase !3414
- GUI: Sparkline test uses a value with timestamp !3408
- GUI: Alarm widget can have multiple proxies !3406
- GUI: Make the Alarm Panel lazy in updating - Performance !3419
- GUI: State widget cleanup and little performance increase !3429
- GUI: Remove persistent index lookup in alarmpanel !3427
- GUI: Speed up configurator events !3428
- GUI: panel-runner aligned to new Topology !3430
- GUI: Implement alarm behavior for label widget !3439
- GUI: Implement alarm coloring in evaluate expression widget !3440
- GUI: Remove dead code from manager !3443
- GUI: Remove “broadcast principle” events in GUI and explicity call handlers !3441
- GUI: Performance boost for initial topology (~factor 2 faster) !3442
- GUI: Clean unused icons !3447
- GUI: Make the initial topology a little bit faster again !3448
- GUI: Introduce layout context for topology updates !3465
- GUI: Account for new topology updates in the GUI client !3469
- GUI: Invalid index check in data for topology models !3479
- GUI: Parent shortcut in device model !3483
- GUI: Remove invalid index source !3488
- GUI: Fix spelling of scene retrieval message !3490
- GUI: Ensure visibility in scrollTo in system views !3489
- GUI: Remove race between Qt and traits in instance Updates !3492
- GUI: Introduce NDArrayBinding !3496
- GUI: Cleanup standard icon controller !3499
- GUI: Use classic filtering !3497
- GUI: Change order of New and Gone processing !3501
- GUI: Add about message box to device in project !3373
- GUI: Add reset icons !3517
- GUI: Add target icon and new image zoom icon !3521
- GUI: More icons for the new widget toolbar !3523
- GUI: Adjust pointer icon !3525
- GUI: Configure pyqtgraph !3526
- GUI: Also find out the default domain on project new !3518
- GUI: VectorGraph Plot !3538
- GUI: Add ScatterGraph !3541
- GUI: Add VectorHistGraph !3544
- GUI: Add NDArrayGraph !3543
- GUI: Add VectorBarGraph !3542
- GUI: Add VectorScatterGraph !3546
- GUI: Add VectorFillGraph !3545
- GUI: Add WebCamGraph !3540
- GUI: Don’t show device in configurator when instance is gone !3533
- GUI: Move remaining image graphs !3549
- GUI: Set graph common environment !3532
- GUI: Implement graph plot package !3536
- GUI: More icons for scatter, histogram, downsample !3530
- GUI: fix karabo-theatre error handling !3564
- GUI: Remove Authenticator !3565
- GUI: Arrange order in new and gone processing !3567
- GUI: Activate new icons in graph plots !3560
- GUI: Reduce min size for images !3570
- GUI: Handle all infs in Vector Graph !3547
- GUI: Adjust cinema to race condition in topology !3563
- GUI: Add ‘None’ colormap action on image graphs !3568
- GUI: Segfault prevention on GUI exit !3574
- GUI: Catch None in profiling !3576
- GUI: Centralize bins on histogram and update on dialog !3571
- GUI: Delete app later in testing !3578
- GUI: Alpha correction in graph plots and images !3575
- GUI: Graph image autodownsampling !3572
- GUI: Adjust priorities of Graph Widgets !3582
- GUI: Detector was not updating accordingly to the chosen axis !3579
- GUI: Adjust generic scenes to graphs and add vectors !3581
- GUI: Add vector roll protection from invalid numbers !3583
- GUI: Update scale legend when updating axes labels !3586
- GUI: Test image models and cleanup !3584
- GUI: Fix profile plot set_data !3585
- GUI: Move downsample action to viewbox !3588
- GUI: Solve test interference !3587
- GUI: Add a gui timeit decorator !3553
- GUI: Fix a search case when the node is already gone !3555
- GUI: Add error bool controller !3550
- GUI: Set ROI pen to black on graph plots !3552