20223/MM/DD - NN:NN UT

Attendees

OrganizationAttendee
ALMA
CTAIgor Oya


All

Andrea Bulgarelli Arkadipta, Constantin Steppa, Dmitriy Kostunin, Dominik Neise , Federico Russo , Gianluca Ghiozzi, Hasmik Gasparyan, Isaias, Juang, Kevin Munari, Luca Castaldini , Nicolo Parmiggiani, Valerio Pastore , Vito Conforti , David Melkumyan , Thomas Murach 

Contact Information

Action Items from previous meeting

  • Starting from scratch

Updates since last Meeting:

Announcements

  • Maintenance
    • ACS Command center properly handling Python container output
    • C++ Logging performance improvements
    • TAT tests stability (655/660 tests passing – still few tests randomly failing)
    • Use official Python site-packages directory (lib/pythonX.Y/site-packages)
      • Symlink lib/python → lib/pythonX.Y available for transition period
    • Characteristic Components in Python now properly inherit BACI properties from ancestors
    • CORBA::Exception now inherits from std::exception
    • Decouple ACS from some Eclipse dependencies using Tycho
    • Merge ExternalDependencies and JavaDependencies in a single directory ($ALMASW_INSTDIR/acsdeps)
    • Added report mechanism of Maven and Pip dependencies licenses
    • Refactoring of NC Publisher in Java to better handle errors, including CORBA timeouts
    • EventConverter reliability
    • Python logging no longer hangs if ACS (manager) is not running
    • Manager pings clients and containers asynchronously
    • Fix to C++ NC consumer thread checking status
    • acsStartJava to support add-opens parameter
  • Obsolescence Management
    • Removal of Loki library
    • Java 17
    • Maven (3.8.5)
    • Eclipse (4.23)
    • Python Dependencies (24)
    • Java Dependencies (25)
      • Jakarta EE / Hibernate 6 / Spring 6 / SpringBoot 3 / Tomcat 10
  • C++ Modernization and Best Practices
    • Some C++11 features adopted
    • Fixed warnings during compilation (g++ 8.5.0)
  • Security
    • Component Caller Proposal and Implementation
  • Projects
    • Recovered coverage functionality for Python, Java and C++
    • CDB API REST
    • BACI Properties Configuration Tool
    • ACS Jar files and packages can be deployed with Maven and Twine through 'make deploy' target
    • C++ Logging replacement for ACE Log (study)
    • ALMA WSU: BulkData Benchmarking and tuning

Release Notes

COMMON-2022JUN

  • Obsolescence management
    • Maven (3.8.5)
    • Eclipse (4.23) 
    • Removal of loki library – Replacement with standard C++11 functionality
    • Python Dependencies (10)
    • Java Dependencies (11)
  • C++ Logging
    • Performance study 
    • New C++ logging macro allowing to reuse logger instance
    • Performance improvement in logger XML parsing
  • C++ modernization and best practices
    • The "using" statement was removed from header files
    • ACE_TSS replaced by C++11 TLS (Thread Local Storage)
    • Loki singleton replaced by C++11 functionality
    • ACS exceptions passed by reference
  • ACS Command Center to properly handle Python output
  • Component Caller API security proposal
  • BulkDataNTOpenDDS now aligned with several improvements from BulkDataNT (RTI DDS) implementation
  • Modules' test stabilization (10+ additional tests now working properly)

COMMON-2022AUG:

  • Maintenance
    • RHEL 8 bug-fixes
    • Prevent flooding of logs from Castor
    • Prevent errors parsing log4j configuration files
    • Clean up of warnings in ACS' codebase
    • Component Caller fix for current version of Tornado
  • Component Caller API - Security Proposal
  • Component generator is now installed with ACS
    • Added Characteristic Component and BACI Properties support
  • Maven and PyPI deploy version now configurable with ACS_DEPLOY_VERSION variable
  • ACS Exception stack trace in Python should now be easier to read

COMMON-2022OCT

  • Maintenance
    • Avoid pyenv rehash on ACS installation directories when there are no permissions
    • EventConverter now logs events being handled and problems during handling
    • Use official Python site-packages directory (lib/pythonX.Y/site-packages)
      • Symlink lib/python → lib/pythonX.Y available for transition period
    • MonitoringSyncTool base schema fallback fixed
    • Codegen MANIFEST.MF no longer appears as modified after building ACS
    • Component generator improvements for Java
  • Python coverage support for 'make test' is enabled with ACS_COVERAGE variable
    • Intended to use with build system only
  • Obsolescence Management
    • Java Dependencies (14)
      • ACS JMS deprecated selector (csselector) replaced by ActiveMQ's selector
      • Extjars now being tracked as part of ExtProds with Pip
    • Python Dependencies (14)
      • Plus tracking of 68 transitive dependencies
    • ARCHIVE/ICD ExternalDependencies module installs third party dependencies using Maven and Pip

COMMON-2022DEC

  • Prevent exceptions in BDNT destructor
  • New function available to delegate default handling (logging) of CORBA exceptions, std::exception and non-standard exceptions
  • New flag in acsMakeCheckUnresolvedSymbols script which suggests candidate libraries for missing symbols

COMMON-2023APR

  • Maintenance
    • Small fix in generic handling of anonymous exceptions
    • Lowered log priority for optional BACI property parameters
    • MonitoringSyncTool to jump dummy parents in schema hierarchy
    • buildPython script improvements in problems detection
    • Characteristic Components in Python now properly inherit BACI properties from ancestors
    • Rename of non-standard internal files and classes in C++ logging system
  • Obsolescence
    • Java 17 compatibility
    • TMCDB Explorer to make use of JPA Criteria API
  • ACE/TAO retrieved from GitHub
  • CORBA::Exception now inherits from std::exception
  • EventConverter supports custom metadata in events and configuration of redis channel prefix/suffix
  • Support for test coverage reports in Python, C++ and Java

COMMON-2023JUN

  • Decouple ACS from some Eclipse dependencies using Tycho
  • CDB API REST available
  • BACI Properties Configuration Tool available
  • ACE/TAO patches are now applied to cloned repositories directory structure
  • Optional Maven execution during installation of ACS JAR files using MAKE_NOMAVEN environment variable
  • Merge ExternalDependencies and JavaDependencies in a single directory
  • <artifact>-flattened-pom.xml files are not present after running make
  • Maven GroupId can now be configured with ACS_DEPLOY_GROUP environment variable
  • Fix cdbWrite not handling strings correctly in some cases
  • ACS Makefile POM files should allow parameterized repository ID
  • Implement ComponentCaller API access policies

COMMON-2023AUG

  • CDB API REST service implemented
  • BPCT
    • Extended functionality to work with CDB API REST
    • Script to generate YAML configuration files from a currently configured CDB
  • acsStartRemoteTmcdb script now has two additional options
    • --no-services: should only start up the containers.

    • --no-containers: should only start up the services.

  • Fixed bugs related to CDB script commands (cdbRead and cdbjClearCache).
  • Added report mechanism of Maven and Pip dependencies licenses
  • Reduced critical zone protection block in loggingService, resulting in cleaner code and slight performance improvement

  • Refactoring of NC Publisher in Java to better handle errors, including CORBA timeouts

COMMON-2023OCT

  • Upgrade Jakarta EE, Hibernate 6.x, Spring 6.x, SpringBoot 3.x and Tomcat 10.x|11.x
  • EventConverter: Improved handling of connection error to Redis
  • PySimpleClient and requests package import together causes to wait for ACS manager
  • ACS Maven commands should be made in batch-mode
  • Upgrade Tycho and Eclipse versions for COMMON
  • Notification Channel problems in thread checking NC status
  • Java: Replace deprecated "new Type" for primitive wrapper classes in ACS
  • Manager should ping clients asynchronously
  • acsStartJava to support add-opens parameter
  • Correct some ACS Phase A tests

Planning

  • Misc
    • ALMA WSU
    • RHEL 9 / 10
    • Java 21 / 25
  • 2023DEC
    • Python (3.12)
    • PyEnv (2.3.28) + (virtualenv plugin support)
    • Python Dependencies (TBD)
    • Java Dependencies (TBD)
  • 2024APR
    • ACE/TAO
    • OmniORBpy
  • 2024JUN+
    • Python Dependencies (TBD)
    • Java Dependencies (TBD)
    • C++ Logging replacement for ACE Log

Other institutions plans and proposed topics

  • ACS to use capabilities from C++14, C++17 or C++20 standard
    • For CTA, it will be good to upgrade to C++17 or C++20.
    •  Tomas Staig will send an email to other institutions to understand if have concerns or something special to consider.
  • The community wants to access the ACS documentation. The proposed idea is to have relevant information for the 2024FEB release.

Any other business?

  • ACS Workshop
    • Overall, the idea of having a new workshop is good. However, we will email the ACS community with a poll about what topics should be presented in this workshop, and the community will choose. 
    • It was requested that the video sessions of past workshop sessions be uploaded and the broken links in the confluence pages where these links are updated.
  • Old Twiki links
    • Some information is saved in the old twiki; when necessary, the information in the twiki can be requested, and the information will be uploaded to confluence so that everyone can have access.

Conclusions/Action Items

  • Send emails to other institutions about C++ upgrade.
  • ACS documentation for the 2023FEB release
  • Send an email to ACS community with poll about ACS workshop topics
  • Share the link about code coverage (in confluence) with the community.
  • No labels