Skip to content

v5.11.0

Compare
Choose a tag to compare
@ryanmelt ryanmelt released this 18 Sep 04:10
· 2010 commits to main since this release

OpenC3 COSMOS 5.11.0 - Bringing Everything Together

Welcome to OpenC3 COSMOS 5.11.0!

Significant Data Reduction CPU Utilization Improvements

The Reducer tasks periodically run and can use a lot of CPU. This change throttles data reduction to using at most 30% of a CPU per target by default, and this setting is adjustable. There is also a new configuration setting to completely disable data reduction if it is not needed.

HttpClientInterface and HttpServerInterface

Initial versions of an HttpClientInterface and HttpServerInterface are included in this release. An example of use can be found Here. Note that this code is still pending unit testing and may be buggy.

Hex in Item Detail Dialog

The item detail dialog now also shows the Raw value in hex for integer items.

Improvements to Accessors and Protocols

Accessors are now instantiated with each packet which allows them to take constructor arguments. This allows for the creation of more advanced accessors for packets, and supports the new HttpAccessor and FormAccessor classes. Protocols now support passing an extra hash of data in read_data and write_data. This allows for eloquent protocols that don't have to save data in variables to pass between the raw data phase and the packet phase.

Logger Improvements

Logger now supports three types of log entries: log, notification, and alert. Additionally, WARN and above severity levels can be optionally written out to STDERR instead of STDOUT if the OPENC3_USE_STDERR environment variable is set. The Log MessagesChannel API has also been updated to support querying historical log messages, and the log file format is now proper JSON entries that are newline separated. Finally, logs that aren't associated with any scope are now logged into a NOSCOPE path in the logs bucket.

Possible migration required. This change removed NotificationModel, and all use of that class should be replaced by use of Logger with type: Logger::NOTIFICATION.

Continued Python Development

Python development continues. Some Interfaces and Protocols are now included. Also, much better testing and unit tests. More to come. We are still targeting the ability to create Python based Interfaces and Target code by the end of the month.
Note: Python support is still Beta in this release.

Monthly Dependency Updates

We've updated all our dependencies driving down the number of CVEs in all of our containers.

Notable Bug Fixes

  1. Fixed an issue causing a never ending loop of the init container caused by changing in Minio
  2. Force folder_name to be unique to prevent conflicting tool installs
  3. Fixed an issue with Websockets failing authentication if passwords contained special characters
  4. Fixed plugin installation diff views
  5. ERB on full commented out lines is no longer executed. Note: will still execute in trailing comments
  6. Better support for UTF-8 characters in config files
  7. Fixed unit test performance in mock_redis xread
  8. Updated Sleeper class to properly close pipe handles
  9. Fixed the creation of an anonymous Docker volume for the redis-ephemeral container

All Pull Requests in this Release

Prerequisites:
Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk
Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk
Also requires docker compose version 1.27+

To Run:

Please see our documentation at https://openc3.com

Try it out and let us know what you think! Please submit any issues as Github tickets, or any generic feedback to [email protected].

Thanks!

Full Changelog: Changelog