OpenC3 COSMOS 6.3.0 - Lots of Improvements!
Welcome to OpenC3 COSMOS 6.3.0!
Potentially Breaking Changes
- Alpine upgraded to version 3.21
- Ruby upgraded to version 3.3
- Python upgraded to version 3.12
Ruby Script Instrumentation Now Uses Prism
Ruby 3.3 dropped support for the Ripper library so we rebuilt our Ruby script instrumentation using the modern and supported Prism library. Look for a talk at the Space Software Summit from our own Jason Thomas on this update!
UBI based images are now published
We now will be publishing our standard Alpine based images, as well as a set of images based on the IronBank UBI base image. This is the first release with these published. We will improve their ease of use and add security scans in an upcoming release. Note UBI is not fully functional. Expect a fully functional version in the next release.
Graph LATEST packet
You can now graph the LATEST packet in TlmGrapher (and in Grafana in our Enterprise Editon). This allows for graphing items with the same name across multiple different packets.
Python Dynamic Packet Support
Python now has support for dynamically defining packets at runtime. New docs are available for this feature here: Dynamic Packets
Greatly Improved File Open Performance
The Vuetify Tree Widget was causing performance issues for several of our customers so we replaced it with a much more performant implementation. Let us know if this greatly improves selecting files in ScriptRunner!
Limits Monitor Updates
Limits Monitor has been rewritten to use a Vuetify Data Table. This provides sorting, searching, and a much nicer presentation.
ScriptRunner Vim Mode
All you Vim lovers out there can now put ScriptRunner into vim mode to edit your scripts!
Playwright test performance improvements
Our Playwright tests have been refactored to support running several of the tests in parallel. This improves our total time to run our end to end test suite saving us CI/CD time every commit.
Python Table Code
Python now has the code necessary to create, build, and edit tables.
Offline Access Token Generation
For our enterprise customers, we have added api methods to generate offline access tokens without having to access the GUI. This allows for much easier CI/CD test support on enterprise. Just run initialize_offline_access() before calling script_run().
Other Improvements
- Lots of dependency updates
- Details dialog added to LedWidget
- Renamed hash variables in Python to avoid overloading keyword
Bug Fixes
- DISABLE_DISCONNECT keyword now works
- Packet Receive Counts now works for packets that can be received across multiple interfaces
- Graph without overview graph fixes
- Fixed a websocket issue with multiple subscriptions on the same cable
All Pull Requests
- Change BOX styling by @jmthomas in #1948
- Switch to Ruby Prism parser by @jmthomas in #1936
- Alpine 3.21, Ruby 3.3, Python 3.12 by @jmthomas in #1959
- Update roadmap by @jmthomas in #1961
- Document CLI by @jmthomas in #1962
- Remove hash as variable by @jmthomas in #1954
- Build UBI images as part of the release by @jmthomas in #1965
- Dynamic packets in Python by @jmthomas in #1953
- Improve FileOpen performance by @jmthomas in #1956
- Update dependencies by @jmthomas in #1969
- Update theme-color by @ryan-pratt in #1975
- Limits Monitor Data Table, Sorting, Search, and Menu by @ryanmelt in #1966
- Fix DISABLE_DISCONNECT in the frontend by @jmthomas in #1972
- Initial Base Changes to Support Notebooks by @ryanmelt in #1964
- Vim mode for Ace editors by @ryan-pratt in #1976
- Parallel Playwright by @ryan-pratt in #1945
- Implement Global Packet Received Counts by @ryanmelt in #1963
- Fix Graph without overview by @jmthomas in #1979
- Bump the npm_and_yarn group across 11 directories with 1 update by @dependabot in #1981
- Fix bug in confirm dialog with validation text by @ryan-pratt in #1983
- Bump the npm_and_yarn group across 8 directories with 1 update by @dependabot in #1982
- Fix multiple subscriptions on the same connection by @ryanmelt in #1980
- Add LATEST packet to TargetPacketItemChooser by @ryan-pratt in #1957
- Increase test timeouts by @ryan-pratt in #1984
- Fix script runner size by @ryan-pratt in #1989
- Increase timeout for enterprise gh runners by @ryan-pratt in #1991
- Fix streaming api from uuid change by @ryanmelt in #1994
- Add details dialog to LedWidget by @jmthomas in #1993
- Changes required for scope banner in enterprise by @ryan-pratt in #1997
- Implement offline access in python by @jmthomas in #1851
- Bump traefik to 3.3.5 by @jmthomas in #1996
- Implement table manipulation code in Python by @jmthomas in #1985
- Bump the npm_and_yarn group across 19 directories with 1 update by @dependabot in #1999
- Bump minio by @jmthomas in #2003
- Remove mkrf_conf and include ruby-termios by @jmthomas in #2004
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:
- git clone https://github.com/openc3/cosmos-project.git cosmos-myproject
- cd cosmos-myproject
- Run Linux/Mac: ./openc3.sh run
- Run Windows: openc3.bat run
- Connect a web browser to http://localhost:2900/
- Have fun running OpenC3 COSMOS!
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 support@openc3.com.
Thanks!
Full Changelog: v6.2.1...v6.3.0