RELEASE TEST REPORT: ==================== WARNING: The GUI version present in the 2.1.18 is not (backwards) compatible with the MDL Server released before 2.1.16! 1. Autotests are executed for Ubuntu 16, Ubuntu 14 and CentOS 2. Timestamps of down process are not checked because of 18658 - Time of down processes doesn't count correctly 3. Python server and projectDBServer regularly hangs and not killed by karabo-stop, these servers are removed from test configuration 4. GUI manual smoke tests are executed for Ubuntu16 **Summary of auto tests (Ubuntu16: 267, Ubuntu 14: 267, CentOS7: 264)** Suites: * 01_FW_Installation - Verification of standalone karabo installation from the official binary file. Upgrade and downgrade in default and users folder. * 02_Device_Installation - Verification of installation of karabo devices. Verification that devices can be instantiated and default values are equal to expected * 03_FW_Commands - Verification of karabo server manager to control framework and configuration * 04_Local_Configuration - Verification of karabo third services as database and broker. Karabo can be started completely in local system (under development) Detected issues: * 21207 - Collapsed list is not expanded during going thought search result in navigation panel (regression) * 21262 - List of device instances is not expanded during device instantiation (regression) * 21265 - Monitoring label in navigation panel is not displayed for instances which name is equal to device class * 21266 - Device class is disappearing if shutdown instance with name = name of device class * 21267 - Previously instantiated devices disappeared if instantiate device with name equal to devices class * 21268 - "Install all devices" make mess in installed devices * 21269 - Default values are displayed only after clinking at field * 18965 - Impossible to install metadataDBRemote by karabo install * 19693 - Installation of calibrationDBRemote breaks python server * 19692 - Impossible to work with CalibrationDBLocal instance by ikarabo * 18658 - Time of down processes doesn't count correctly * 19644 - Karabo servers are not available after loosing connection to broker * 19985 - projectDBServer is often not stopped by karabo-stop on CentOS * 18158 - ALARM/WARN: There is no emergency label for device that instantiated in emergency state * 17368 - ALARM/WARN: Not removable emergency notification is appeared from history after karabo-stop * 17371 - ALARM/WARN: Emergency labels are not removed after device reinstantiation * 18159 - ALARM/WARN: Emergency label is not displayed in project panel if emergency instance is added to project * 17200 - ALARM/WARN: Global alarm/warn/interlock states are not displayed in configuration panel * 17201 - ALARM/WARN: Changing of alarm/warn states makes acknowledges clickable Closed/Solved: * 21264 - Emergency field is not highlighted in configuration panel (regression) * 20843 - karabo gui and alarm servers are not able to connect to broker * 18755 - Throw exception if instance name is Class name in MDL instantiateNoWait function * 19568 - karabo process can't be started if main supervisor was killed when servers are up * 19681 - agipdControl can't be installed on CentOS7 and Ubuntu14 * 19697 - Installed agipdMC breaks work with terminal * 19678 - ScanlabGalvo device class is not displayed on CentOS7 * 19688 - adqDigitizer is not installed on CentOS * 20843 - karabo gui and alarm servers are not able to connect to broker * 18898 - Impossible to work with BeckhoffInficonGauge by ikarabo * 20838 - Wrong karabo version number * 20858 - GotthardDetector device class is absent * 20860 - AgipdControl device class is absent * 20914 - x2TimerMl can't be installed on CentOS7 * 20862 - scanlabGalvo is not installed * 20868 - idilLaserFrontend is not installed * 20915 - adqDigitizer can't be installed on CentOS7 * 18486 - It should not be possible to add configuration for not installed devices IKARABO: * IKARABO: Clean up the ikarabo import situation DATALOGGER: * DATALOGGER: Robust logger instantiation if logger server starts in busy system. * DATALOGGER: Auto restart DataLogger if logged device still online. * DATALOGGER: Provide fully 'asyncConnectP2p' and use it in DataLogger. PYTHON BOUND: * BOUND PY: add timestamp to device properties if validation is skipped * BOUND PY: Silence a warning concerning properties in alarm (bound Python) * BOUND PY: timestamp (i.e. train id) from epoch in device KAARABO-DAQ: * KARABO-DAQ: Connect asynchronously to time server (=> faster server start up) * KARABO-DAQ: Update maxSize Schema attribute in place (C++ and bound Py) * KARABO-DAQ: Python RunConfigurator * KARABO-DAQ: Implement RunConfigurationGroup in Python * KARABO-DAQ: Provide complete Timestamp (non-0 trainId) from Epochstamp in C++ Device MDL: * MDL: filter by tags option and unit tests for schema * MDL: matplotlib support by default in ikarabo * MDL: getDescriptors and filterByTags for proxies * MDL: getAliasFromKey and getKeyFromAlias for Proxies * MDL: Extend setWait, setNoWait with args * MDL: FIX toDataAndAttrs in ListOfNodes * MDL: Initialize ListOfNodes correctly SCANTOOL: * SCANTOOL: Make scans return a fully configured AcquiredFromLog object * SCANTOOL: Typos, fix of TScan for image processor and multi-field reformat * SCANTOOL: Adding doocsTangerine as Movable * SCANTOOL: Lazy matplotlib import, unknown state for image processor * SCANTOOL: The CCMon Generalized Interface has to be registered * SCANTOOL: Add xgm as sensible * SCANTOOL: Add doocsBeamConditions as Sensible * SCANTOOL: Default value made available to compound objects * SCANTOOL: Doocs device class name in scantool * SCANTOOL: Ensure data logging completion * SCANTOOL: docs added to scans source file * SCANTOOL: Scripting data retrieving scans * SCANTOOL: Fixing typo in DoocsTangerine class name * SCANTOOL: Handling CCMon as a Sensible GUI: * GUI: Don't immediately commit configuration changes In the new configurator, only send changes to a value if the enter key is pressed when editing. Clicking away will leave the change pending and pressing the escape key will clear any pending changes. asyncConnect in DeviceClient (i.e. GuiServer) * GUI: make configurator tab enabled - user-friendly * GUI: show indicator for not yet applied changes This highlights the values which are not yet applied to the device * GUI: Don't barf when a value has attributes but no default value The attributeInfo structure needs to be there even if a value isn't applied * GUI: only store value changes Fix: only set value changes for box This is a follow-up on MR !1988 (merged) * GUI: Make ChoiceOfNodes work in the new configurator * GUI: Make sure table editor dialog .ui file gets into distribution package * GUI: no focus on special panels (alarm, DAQ etc.) Disable the focus on panels associated with special karabo devices like alarm, DAQ-Runconfiguration panel * GUI: Implement Apply All/Decline All in the new configurator * GUI: ensure ENTER key does apply values on the device Make sure the value gets definitely applied when clicking the ENTER key * GUI: always show `About` in context menu of navigation panel for servers Always show about in context menu of servers in navigation panel When showing the context menu of a device class before the action was not made visible anymore. * GUI: scene link dialog (alphabetically sorted, filter field added) Enhance target scene dialog by filter field which when entering a text jumps to the scene target which startswith this string, additionally to get a better overview the scene link targets are now alphabetically ordered * GUI: Improve table editing in the new configurator * GUI: Closeable info panel. * GUI: ENTER/ESC for TABLE_ELEMENTS in new configurator Make ENTER and ESC key work for our beloved TABLE_ELEMENTS in the new configurator * GUI: Enable closing of all subprojects * GUI: Handle clicks in the new configurator correctly * GUI: Fix a bug which was introduced into find_parent_object * GUI: Show conflicts in new configurator * GUI: Handle configurator headers in the model * GUI: Useful renaming for edit_delegate * GUI: Fix the column count madness in the configurator * GUI: Implement configuration loading for the new configurator * GUI: see column content aligned centered Have the column data with current value on device centered * GUI: add context menu to new configurator Bring back the old context menu to reset an editable value to the default value * GUI: INITONLY properties should be editable only before instantation * GUI: Don't double submit when the enter key is pressed * GUI: Show the configurator as read only when reconfiguring * GUI: show missing plugins in navigation panel (intermediate fix) * GUI: Close DAQ panels when disconnecting from GuiServer This was a bug - the panels stayed even though we disconnect from the server * GUI: refactor panel closing Add the possibility to make individual panels closable, first step to make the DAQ and Alarm panels closable * GUI: Move DAQ panels to middle bottom * GUI: Optimize some hot paths in the GUI client * GUI: Don't update the value of configurator edit fields * GUI: Make sure sublayouts get drawn * GUI: Add an about box * GUI: invalidate layout bounds when translating * GUI: Show units in the configurator * GUI: fix edit table element - trigger editingFinished Trigger editingFinished whenever a bool value was changed by the user * GUI: Clean up configuration user editing * GUI: Remove some minor Qwt dependency * GUI: Clear conflict flag when user values are cleared * GUI: Consolidate filesystem path widgets * GUI: Configurator-style editing for scenes * GUI: Clean up widget focus * GUI: Rearrange util functions and classes * GUI: Refactor and make RunConfig and related panels closeable * GUI: Show additional attributes in popup widget for the properties * GUI: Handle edit events better * GUI: Don't hammer the Configurator when editing in scenes * GUI: Ensure attribute editing is done correctly * GUI: Minimal support for ListOfNodes * GUI: Toggle to only show device instances * GUI: Store the last scene dir when saving a scene to disk * GUI: Show more details of projects in project load dialog (Name, Last Modified, UUID, ...) * GUI: Work around the middlelayer having its own version of reality * GUI: Make row count consider child node visibility * GUI: Bring Karabo console back * GUI: Priority and style sheet change of DisplayLabel * GUI: Fix some bugs in the navigation panel * GUI: Don't break the GUI when devices send bad configs * GUI: Filter log messages by priority on the GUI server * GUI: Remove notification system from Gui client and framework * GUI: officially switch to new configurator INTERNAL OR CROSS-MODULES: * End the first heartbeat later. * Explicitly chmod to set executable flag * Serialize calling of handlers for input * Close pipeline when done * Correcter log message text in DataLoggerManager * Tests for the input channel * Use MPLBACKEND to configure matplotlib * Add a create_module function to karabo.common * Put all the import check tests in one place * fix unset values in proxy nodes * add a proxy for an output channel * Protect onTimeUpdate from being called again and again. * Comment alarm concerning lost messages in bound Py as it is in C++ * Update reconfigured archive/visibility changes also via instanceInfo * Request additional project attributes * Don't stop monitoring devices when temporarily hiding scenes * Avoid thread starvation if many index files are created. * Add DeviceClient::registerInstance[New|Updated|Gone]Monitor to Karathon * Simplify DeviceClient instance tracking startup * Refactor Karathon DeviceClient::registerDeviceMonitor * Added binary download option * Don't overwrite status in daemontools * Copy only 'device' libraries into plugins folder * CentralLogging::logHandler do not return if central log file open fails