Skip to content

Releases: OpenC3/cosmos

v5.11.2

03 Oct 14:39
Compare
Choose a tag to compare

OpenC3 COSMOS 5.11.2 - Bringing Everything Together

Welcome to OpenC3 COSMOS 5.11.2!

This is our first patch release for the 5.11 series (5.11.1 is skipped, due to a regression)

Consolidated API Metrics

Our API metrics endpoints previously responded with data from a random worker thread. Metrics data is now consolidated across workers. (/openc3-api/metrics, /script-api/metrics)

Reducer Bug Fixes

We fixed a couple bugs with data reduction. One caused an EOFError when two threads were trying to process the same file at the same time. Another involved invalid out of order warnings. Note: You will still see out of order warnings if TLM_BUFFER_DEPTH is set too low, or if the system is overloaded.

Fixed yarn serve for debugging frontend tool code

Running yarn serve to develop and test tools was broken by the upgrade to prettier 3.0. This has be corrected.

More methods work in disconnect mode

More methods that read actual data now work in ScriptRunner disconnect mode such as stash and metadata related get methods.

Cleared all code flagged as Bug in Sonarqube

Sonarqube now reports our code free from bugs. :)

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

v5.11.0

18 Sep 04:10
Compare
Choose a tag to compare

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

v5.10.1

17 Aug 23:15
Compare
Choose a tag to compare

OpenC3 COSMOS 5.10.1 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.10.1!

Continued Python Development

Python development continues. We have added a lot of the packet processing code now to Python.
See the 5.10.0 Release notes for an overview of current Python support.

Note: Python support is still Beta. In particular there is a known issue in this release where running python scripts in ScriptRunner leaves zombie processes in the openc3-cosmos-script-runner-api container. This is fixed in the next release.

New option to not set bucket policy

A new environment variable named OPENC3_NO_BUCKET_POLICY is now available that prevents the default behavior of setting the tools bucket to public read at startup. (Note: The tools bucket still needs to be public read, but this allows for the bucket being setup manually and COSMOS not having permission to change bucket policy).

Added information for upgrading to Enterprise Edition

Several locations now have information on how to upgrade to Enterprise. Thank you for supporting OpenC3 by being an Enterprise customer! Additionally, Calendar is now limited to 1 Timeline, and Autonomic is limited to 10 triggers in open source edition.

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

v5.10.0

06 Aug 04:01
Compare
Choose a tag to compare

OpenC3 COSMOS 5.10.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.10.0!

Python in Script Runner!

This is our first release that includes Python support! You can now run Python (or Ruby) scripts from ScriptRunner and use most of our scripting APIs from Python.

Whats Ready to Try Out With Python:

  1. openc3 python package published to PyPi
  2. Cmd/Tlm Apis
  3. Wait/Check Apis
  4. Stash Api
  5. Metadata Api
  6. Screens Api
  7. Line by line highlighting in ScriptRunner
  8. Exception catching in ScriptRunner

What's Not Done Yet for Python:

  1. Suite Runner Support
  2. Redis Cluster Support (Enterprise Only Feature)
  3. GCP Bucket Support (Enterprise Only Feature)
  4. Some other APIs like plugins
  5. Python Based Interfaces
  6. Python Based Microservices
  7. Python Based Targets

We consider the current release to be at a Beta level - Full Python support is scheduled to be completed by the end of September. Try it out and let us know what you think!

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

v5.9.1

17 Jul 21:25
Compare
Choose a tag to compare

OpenC3 COSMOS 5.9.1 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.9.1!

This is a performance focused patch release that improves our API performance, particularly for get_tlm_values which is the primary API used by telemetry screens, and any queries that involve the LATEST packet.

Bug Fixes

  1. Opening a script from a telemetry screen will now properly display suiterunner controls (or not)

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

v5.9.0

07 Jul 19:26
Compare
Choose a tag to compare

OpenC3 COSMOS 5.9.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.9.0!

Autonomic is out of Beta!

Autonomic, our built-in automation tool, is out of beta! Autonomic provides an easy user driven mechanism for defining triggers and reactions. You can easily design a lights out system to handle different events and automatically send a command or run a script in response. For example, whenever a specific telemetry point gets above a certain value, run a script.

Tool Generators - Vue, Angular, React, and Svelte

Our openc3cli generator now supports generating tools across four different frontend frameworks. We have tool templates available for Vue, Angular, React, and Svelte.

Playwright tests are now bundled in the main cosmos repo

This change couples the playwright tests to specific versions and makes going back and testing a version much easier.

New build_command API

A new build_command API has been added that provides a mechanism to have COSMOS build the binary version of a command for you from a script. You can then use this binary data to build command tables or for other purposes.

Enabled Redis IO Threading

We have enabled Redis IO threading in the Redis configuration files. This should provide up to a 2x performance boost for Redis (and COSMOS).

Other Improvements

  1. Added a NotFound component to show on unknown tool routes
  2. Updated load/save configurations between tools to be consistent
  3. Limits Monitor tabs removed and now everything is on a single page
  4. Show spinner while file open dialog is loading
  5. Log messages severity levels mapped to AstroUI levels
  6. Various UI improvements

Bug Fixes

  1. Fixed code not being instrumented properly in scripts with multiple function definitions and multiline strings
  2. Fix TlmGrapher graphs after changing the end_time
  3. Fix limits_bar widget when yellow limit equaled red limit
  4. ScriptRunner buttons are now disabled until the script is fully started
  5. Tlm Screens now better handle errors and show if a screen is broken

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

v5.8.1

30 May 19:38
Compare
Choose a tag to compare

OpenC3 COSMOS 5.8.1 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.8.1!

Alpine 3.18.0 with Ruby 3.2 and Python 3.11.3

This releases updates the Alpine linux version to 3.18.0. With this comes an upgrade from Ruby 3.1 to Ruby 3.2. Not much changes with Ruby 3.2, but one important detail is that the deprecated Dir.exists? and File.exists? methods have been removed (use Dir.exist? and File.exist? instead). Note also this is our first release that bundles the Python interpreter... more to come soon! Also, ruby's httpclient library was replaced with Faraday, because httpclient is not being maintained.

Greatly improved script instrumentation performance (100x)

Starting scripts including using require_utility and load_utility are now 100x faster than in COSMOS 5.6.0 where we improved the number of cases handled by instrumentation, but introduced a performance regression.

Added the ability to browse volumes in BucketExplorer

Just add an environment variables like OPENC3__name__VOLUME set to the path of the volume. They can then be browsed and modified from BucketExplorer just like buckets!

New new bucket_load library

Allow for custom microservices to require target libraries just like ScriptRunner scripts. This modifies the Ruby require code to look in buckets for files if they aren't found locally.

require 'openc3/utilities/bucket_require'
$openc3_scope = 'DEFAULT' # Required until 5.8.2 release
require 'INST/procedures/utilities/collect.rb'

Other Improvements

  1. The raw dialog is now placed higher to allow for seeing more beneath it
  2. Handbook creator now displays ID values
  3. Screen Errors during plugin installs are now warnings and not fatal
  4. get_limits API now supports LATEST packet name
  5. BufferedPacketLogWriter updated to dump allow contents to files when a new file is created.
  6. New build_command API (only available from Javascript so far).

Bug Fixes

  1. Fix TlmViewer MATRIXBYCOLUMNS layout
  2. Fix Plugin install diffs for changes at beginning and end of file
  3. Changed microservices were formerly killed but not restarted properly

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

v5.7.2

16 May 20:44
Compare
Choose a tag to compare

OpenC3 COSMOS 5.7.2 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.7.2!

This is just a minor release primarily to sync Base and Enterprise versions before the upcoming 5.8.0 release. It includes one update to support styling of buttons in COSMOS tool dialogs.

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

v5.7.0

11 May 03:48
Compare
Choose a tag to compare

OpenC3 COSMOS 5.7.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.7.0!

DataViewer Components

DataViewer is now customizable with custom components. Add your own DataViewer widgets to display textual data for your targets! See the demo plugin for examples.

SLIP and COBS Protocols

New packet delineation protocols that have historically been used with serial interfaces.

New download_file script method

Allows for easily downloading files from the browser in ScriptRunner.

Metadata Improvements

Viewing, Editing, and Creating Metadata is now greatly improved

Interface Modifiers

Interfaces (and Routers) can now take most of the same configuration options as microservices to allow for customizations such as setting specific environment variables for an interface.

Other Interesting Changes

  1. Graphs now pause when you zoom in
  2. TableManager can now handle files with names different than the definition names
  3. ValueWidgets in Telemetry Screens are now better justified

Important Bug Fixes

  1. ScriptRunner could write over original script with a subscript due to an autosave bug while running
  2. TlmViewer width subsettings fixed

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

v5.6.1

21 Apr 14:10
Compare
Choose a tag to compare

OpenC3 COSMOS 5.6.1 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.6.1!

This is a quick bug fix release to handle an issue users had upgrading from 5.5.x to 5.6.0. Please skip 5.6.0 and upgrade directly to this release. See the 5.6.0 release notes for the major new features in 5.6.x.

Important Migration Note from 5.5.x

TlmViewer widgets had to be updated to support opening screens from ScriptRunner which caused a breaking change for any plugins containing a custom widget. Plugins with a custom widget will need to update their package.json file to use @openc3/tool-common version 5.6.0 (or later), and be rebuilt/reinstalled.

Important Bug Fixes

  1. The migration script from 5.5.x to 5.6.0 was failing
  2. The block widget now works correctly

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