Releases: OpenC3/cosmos
v5.17.1
OpenC3 COSMOS 5.17.1 - Rollup Widget, Dependency Update, and Bug Fixes
Welcome to OpenC3 COSMOS 5.17.1!
New ROLLUP Widget
We've added a new ROLLUP widget for TlmViewer that allows you to pick an icon, assign multiple telemetry items to it, and then it will change color based on the overall limits state of those items. Clicking on the icon can also bring up a telemetry screen of your choice.
ScriptRunner now role aware (Enterprise)
The ScriptRunner frontend is now role aware in Enterprise edition, which allows it to make the scripts readonly for users who can't edit scripts, and disable the start button for users who can't run scripts.
VALUE Widgets now support array indexing
You can now select individual array items for display on TlmViewer screens!
IMPORTANT Bug Fix in ScriptRunner
ScriptRunner could save over a file with an old version of the file's contents under certain circumstances when pressing Ctrl-S to save. This required: 1. Leaving ScriptRunner to another tool, 2. Returning to ScriptRunner, 3. Saving the file with Ctrl-S, 4. All without refreshing the webpage. This has been corrected.
Other Bug Fixes
- ScriptRunner can now properly import python modules with an init.py file.
- Several fixes with applying Global settings in screens
- Calendar events are now properly cleaned up and expired over time
- Python "break" now works in ScriptRunner
- Plugin Download button on the Admin Plugins tab now works
- Python range checking given a string no longer crashes
- Python code now handles limits event notifications
- Dockerfiles updated to same case FROM and AS statements
All Pull Requests in this Release
- update typing and cleanup in scripts by @GerhardOfRivia in #1296
- Codecov action v4 with token by @jmthomas in #1306
- Fix python version and update on release by @jmthomas in #1305
- ROLLUP notification widget by @jmthomas in #1322
- Make SR aware of roles by @jmthomas in #1308
- Import python target modules by @jmthomas in #1330
- Allow array index in VALUE widget by @jmthomas in #1332
- Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 by @dependabot in #1349
- Fix applying global settings to widgets by @jmthomas in #1350
- Allow EXPIRE activities in the past by @jmthomas in #1333
- Prevent ScriptRunner Ctrl-S Save from Saving Old Buffers by @ryanmelt in #1356
- Fix python break and plugin download and calendar reserve type by @ryanmelt in #1358
- Check for string param when doing range checking by @jmthomas in #1337
- Fix limits event handling by @jmthomas in #1346
- update dependencies by @ryanmelt in #1367
- fix "FromAsCasing" buildkit check by @JoshuaNeely in #1368
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: v5.16.2...v5.17.1
v5.16.2
OpenC3 COSMOS 5.16.2 - Python Script APIs and Usability Improvements
Welcome to OpenC3 COSMOS 5.16.2!
This release adds Python script APIs and addresses a number of tool usability issues.
Potentially breaking changes from 5.15.x
Script wait methods that wait on a condition now return true/false to indicate if the wait condition was successful or not. Previously these wait methods returned the number of seconds actually waited.
Other Improvements
- Improve Limits Monitor layout with timestamp and more field width
- Add Data Viewer collapsable header and expand Data Viewer widget width and height
- Expand Script Runner Message Log pane to take 100% of the bottom half
- Filter stack trace on installation for easier debugging of config errors
- Admin Plugins and Packages adds progress bar on upload and visually separates Processes from Plugins
- Added tooltips for Suite Runner checkboxes
- Right click a screen keyword to bring up a popup with a link to the documentation
- Added Python docs and typing by @GerhardOfRivia
Bug Fixes
- Do not clear interval on Packet Viewer error - this should prevent Packet Viewer from "freezing" and no long updating, especially when updating plugins
- Remove Notification Open button unless an actual URL destination is given
- Fix new scope deployment to properly log messages and cleanup
- Fix python log time in text logs returning 01/01/1970
- Allow commands in Data Viewer
All Pull Requests in this Release
- Bump requests from 2.31.0 to 2.32.0 in /openc3/python by @dependabot in #1284
- Do not clear interval on Packet Viewer error by @jmthomas in #1274
- Notifications: Only open if url, change clear icon by @jmthomas in #1291
- Change modified button to Confirm by @jmthomas in #1293
- Limits Monitor timestamp and more width by @jmthomas in #1294
- DataViewer collapsable header and full height by @jmthomas in #1295
- Script Runner panes by @jmthomas in #1292
- Deploy new scopes by @jmthomas in #1280
- Filter stack trace in ConfigParser by @jmthomas in #1275
- Python conversion generator returns value by @jmthomas in #1273
- Fix python log time by @jmthomas in #1266
- Separate Process List from Plugin List by @jmthomas in #1254
- Add popups for Suite Runner checkboxes by @jmthomas in #1268
- add more typing to python models code by @GerhardOfRivia in #1234
- Remove gosu from redis by @jmthomas in #1250
- Allow cmds in Data Viewer by @jmthomas in #1251
- Python script runner api by @jmthomas in #1282
- Right click screen keyword for docs by @jmthomas in #1252
- Add progress bar when uploading plugins by @jmthomas in #1267
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: v5.16.1...v5.16.2
v5.16.1
OpenC3 COSMOS 5.16.1 - Command Sender History and Playwright Enhancements
Welcome to OpenC3 COSMOS 5.16.1!
This release adds some minor features, fixes the UBI build and improves our Playwright end to end testing.
Potentially breaking changes from 5.15.x
Script wait methods that wait on a condition now return true/false to indicate if the wait condition was successful or not. Previously these wait methods returned the number of seconds actually waited.
Command Sender History
Command Sender now remembers history on a browser refresh. The delete button will clear the history.
Other Improvements
- Limits Monitor clear all ignored items
- Code completion works with Python fstrings, e.g. cmd(f"INST
All Pull Requests in this Release
- Add Clear All to ignored limits by @jmthomas in #1242
- Command Sender remember history by @jmthomas in #1241
- Allow fstring in code completion by @jmthomas in #1237
- Playwright changes for enterprise by @jmthomas in #1244
- Playwright enhancements by @jmthomas in #1245
- Fix ubi build and add github action by @jmthomas in #1249
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: v5.16.0...v5.16.1
v5.16.0
OpenC3 COSMOS 5.16.0 - Dependency Updates and Bug Fixes
Welcome to OpenC3 COSMOS 5.16.0!
This is primarily a bug fix and dependency update release. Interesting changes are documented below.
Potentially breaking changes from 5.15.x
Script wait methods that wait on a condition now return true/false to indicate if the wait condition was successful or not. Previously these wait methods returned the number of seconds actually waited.
IGNORE_OVERLAP for entire packet
IGNORE_OVERLAP can now be declared on an entire packet allowing items within to overlap without requiring adding the OVERLAP flag to every individual item.
Calendar now support recurring activities (Enterprise Only)
You can now have calendar activities automatically repeat at any desired interval.
Other Improvements
- In Enterprise, the user who started a script is now shown in the execution status display
- Item names are now sorted alphabetically in the chooser rather than in order of definition
- Info limits messages (displayed green) are now suppressed on initial packet received
- New openc3cli list command to list installed plugins
- Dependencies updated to reduce CVEs
Bug Fixes
- Fix jumping between two running scripts if a second is opened and started in the same ScriptRunner
- Numerous python related fixes
All Pull Requests in this Release
- Start add typing to python lib by @GerhardOfRivia in #1167
- Disconnect before connecting to running script by @jmthomas in #1191
- Better cli descriptions by @jmthomas in #1185
- Set combobox default by @jmthomas in #1190
- Better check for scientific notation by @jmthomas in #1188
- Download screen as lowercase screen name by @jmthomas in #1186
- Add username to Execution status by @jmthomas in #1189
- Bump idna from 3.4 to 3.7 in /openc3/python by @dependabot in #1196
- Sort items and filter targets without packets by @jmthomas in #1187
- Bump redis-client version by @jmthomas in #1199
- prevent 0 max params registering as no-maximum by @JoshuaNeely in #1209
- Add Suite Runner Example to curl.md by @tsjordan-eng in #1216
- Suppress initial limits INFO msgs by @jmthomas in #1205
- Add 'list' option to cli by @jmthomas in #1204
- Add connection_string to interface and use in interface_microservice by @jmthomas in #1184
- Fix several python packet config options by @jmthomas in #1201
- Remove slice! from fixed_protocol by @jmthomas in #1207
- IGNORE_OVERLAP in telemetry by @jmthomas in #1208
- COBS, SLIP, CmdResponse protocol docs by @jmthomas in #1206
- Recurring Calendar activities by @jmthomas in #1171
- Fix sending array in python by @jmthomas in #1223
- Fix Script execute selection and run from here by @jmthomas in #1220
- Wait methods return true/false except for wait() and wait(x) by @jmthomas in #1224
- Bump dependencies by @jmthomas in #1219
- Fix pypi url usage by @ryanmelt in #1226
- burst protocol c extension by @ryanmelt in #1225
- Fix accessor for Python by @jmthomas in #1229
- Add local option to cleanup local files by @jmthomas in #1121
- Force log encoding by @ryanmelt in #1232
- Fix playwright test by @jmthomas in #1233
New Contributors
- @GerhardOfRivia made their first contribution in #1167
- @JoshuaNeely made their first contribution in #1209
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: v5.15.2...v5.16.0
v5.15.2
OpenC3 COSMOS 5.15.2 - script notifications and bug fixes
Welcome to OpenC3 COSMOS 5.15.2!
This release adds to the notifications icon the number of running scripts. It fixes bugs in the Python storage API and suite API. It also fixes a bug in the serial driver preventing clean disconnects.
Breaking Changes and Upgrade Notes since 5.14.2 - Please Read
- The internal Traefik port was changed to 2900 to match our standard external port and to better support unprivileged runtime environments
- The change requires updating .env, compose.yaml and the traefik configuration files.
- Stop the previous release, update the files, and restart
Other Improvements
- Add the number of running scripts to the Notifications icon
- Update JsonAccessor to support binary data
- Add OPENC3_BUCKET_URL to .env file (defaults to http://openc3-minio:9000)
- Script Runner automatically detects files using f-strings as Python
Bug Fixes
- Fix Python get_target_file
- Fix the ability to run Python Groups and Suites in Script Runner
- Fix serial port disconnect
All Pull Requests in this Release
- use response.content (bytes) instead of response.text (encoded text) by @ryanmelt in #1148
- Bump black from 23.3.0 to 24.3.0 in /openc3/python by @dependabot in #1151
- Add notifications for scripts by @jmthomas in #1157
- Fix screen docs by @jmthomas in #1156
- Update JsonAccessor to support additions (binary data, Nan, Infinity) by @ryanmelt in #1161
- Removed version tag from compose.yaml, compose-dev.yaml, and compose-… by @schuuust in #1160
- Fix OPENC3_BUCKET_URL in storage by @jmthomas in #1163
- Fix python suites by @jmthomas in #1164
- Fix Posix Serial Driver Not Unblocking Read on Close by @ryanmelt in #1166
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: v5.15.1...v5.15.2
v5.15.1
OpenC3 COSMOS 5.15.1 - target file API fixes and disabled commands
Welcome to OpenC3 COSMOS 5.15.1!
This release fixes the download_file, get_target_file, and put_target_file APIs. It implements the DISABLED keyword and adds API methods to enable_cmd and disable_cmd (admins only).
Breaking Changes and Upgrade Notes since 5.14.2 - Please Read
- The internal Traefik port was changed to 2900 to match our standard external port and to better support unprivileged runtime environments
- The change requires updating .env, compose.yaml and the traefik configuration files.
- Stop the previous release, update the files, and restart
Bug Fixes
- Implement the DISABLED keyword
- Fix redis cluster in COSMOS Enterprise
- Fix download_file, get_target_file, put_target_file in Ruby and Python
All Pull Requests in this Release
- Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14 by @dependabot in #1141
- Implement DISABLED for commands by @jmthomas in #1138
- Fix redis cluster with StoredQueue by @ryanmelt in #1146
- Bump alpine build by @jmthomas in #1145
- Fix download_file and get_target_file by @jmthomas in #1143
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: v5.15.0...v5.15.1
v5.15.0
OpenC3 COSMOS 5.15.0 - Interface Throughput Improvements
Welcome to OpenC3 COSMOS 5.15.0!
This release brings major improvements to interface throughput with a new strategy of batching writes to Redis and an additional option to interfaces to even further improvement throughput at the cost of slightly higher processing latency. If you have interfaces receiving data at greater than 10Hz, try adding OPTION OPTIMIZE_THROUGHPUT 0.1
to your interfaces.
Breaking Changes and Upgrade Notes - Please Read
- The internal Traefik port was changed to 2900 to match our standard external port and to better support unprivileged runtime environments
- The change requires updating .env, compose.yaml and the traefik configuration files.
- Stop the previous release, update the files, and restart
Greatly Improved TlmViewer Code Completion in Screen Editor
The screen editor is now fully aware of the telemetry database, making it even easier to quickly build out telemetry screens!
Other Improvements
- Item background colors now alternate in Admin lists
- ScriptRunner Suite report filenames now indicate what was run
- Grapher nows goes to using scientific notation for labels with very large and very small numbers
- Grapher can now add user configured horizontal lines
- Bucket Explorer can now create files in new folders
Bug Fixes
- Fixed python target file loading APIs
- The HIDDEN command keyword is now supported
- Generating presigned urls now checks targets_modified as well as the targets folder
- Fixed importing pandas in Python scripts
- Renewed support for item names that include square brackets
- Fixed cycle time support for low data rate targets
- Fixed upgrading plugins when multiple of the same plugin are installed
All Pull Requests in this Release
- Alternate list item colors by @jmthomas in #1112
- Bump ip from 2.0.0 to 2.0.1 in /openc3-cosmos-init/plugins by @dependabot in #1114
- Fix _get_uri by @ryanmelt in #1116
- Allow override AWS ARN for gov cloud, change traefik ports by @jmthomas in #1119
- Add suite, group, script to report file name by @jmthomas in #1111
- Graph high & low values with scientific notation by @jmthomas in #1108
- Hide HIDDEN commands and packets by @jmthomas in #1109
- Download presigned requests check targets_modified by @jmthomas in #1113
- Add horizontal lines to graphs by @jmthomas in #1107
- Allow setting path when uploading file by @jmthomas in #1120
- Screen completion by @jmthomas in #1117
- Fix import of pandas, and use of PYPI_URL by @ryanmelt in #1126
- Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12 by @dependabot in #1129
- Output warnings as WARN and import openc3-enterprise by @jmthomas in #1131
- Add option to Interfaces to Improve Throughput Through Redis Write Queueing by @ryanmelt in #1123
- Support item names with brackets by @jmthomas in #1134
- Handle upgrade with multiple installed same plugins by @ryanmelt in #1135
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: v5.14.2...v5.15.0
v5.14.2
OpenC3 COSMOS 5.14.2 - Python Bug Fix Release
Welcome to OpenC3 COSMOS 5.14.2!
This release mainly fixes issues with our new Python support. Thanks to everyone who is trying it out and submitting tickets!
Python Bug Fixes
- Custom Conversions, Limits Responses, etc our now imported successfully
- Generators now support --python fully
- UBI pip3 is now symlinked to pip
- Pip will now retry with --no-index if the attempt at an online install fails
- Handle String edge case that was breaking INST2 ASCIICMD
Other Improvements
- openc3.sh cli rake will now fail with a warning if no Rakefile is found
- The Raw dialogs in CmdTlmServer are now non-modal, allowing multiple to open and be moved around
- CmdTlmServer now has a Clear Counters option
All Pull Requests in this Release
- Handle custom python classes by @ryanmelt in #1080
- Python generators by @jmthomas in #1082
- Format developing page as code by @jmthomas in #1083
- Warn about rake without Rakefile by @jmthomas in #1084
- Allow multiple positionable raw dialogs by @jmthomas in #1088
- CmdTlmServer clear counters by @jmthomas in #1089
- Link pip3 to pip in ubi by @ryanmelt in #1092
- Pip install retry with no-index by @ryanmelt in #1093
- Handle bad string types and rescue AttributeError by @jmthomas in #1090
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: Changelog
v5.14.1
OpenC3 COSMOS 5.14.1 - Bug Fix Release
Welcome to OpenC3 COSMOS 5.14.1!
Important Bug Fixes Release for ScriptRunner
We squashed a couple bugs that could cause ScriptRunner to write over the contents of the running script with the contents of another file. Pressing Ctrl-S while running in a different file than original started or some cases where after stopping a different file was still shown could cause the original file to be overwritten. These have all been corrected and all users are encouraged to upgrade.
Further Enhancements to Dynamic Packet Creation
Dynamic packet creation in Ruby now works fully including logging and decom picking up the new packets.
All Pull Requests in this Release
- Clear SR file cache when stopped by @jmthomas in #1069
- ARG MINIO/MC release by @jmthomas in #1066
- Improve dynamic packet support by @ryanmelt in #1070
- Add additional save protections to ScriptRunner by @ryanmelt in #1072
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: Changelog
v5.14.0
OpenC3 COSMOS 5.14.0 - Related Telemetry, Cmd/Response Framework, Dynamic Packet Definition, and More
Welcome to OpenC3 COSMOS 5.14.0!
Related Telemetry Items and Screens for Commands
Commands have a new keyword for associating related telemetry items to the command: RELATED_ITEM. This automatically builds a telemetry screen that is shown alongside the command in CmdSender. If you want to get fancy, you can also associate a full custom built telemetry screen with the SCREEN keyword.
Generic Command / Response Protocol
The command response architecture is a command pattern for a lot of different devices, so we took the legacy TEMPLATED protocol and extracted the command response pattern from it into its own CmdResponseProtocol class. Adding this protocol to your Interface will put it into a command/response mode for any commands that have an associated RESPONSE keyword defined.
Dynamic Packet Definition
We've added the ability to dynamically define packets within the COSMOS framework at runtime. This will typically be done by an Accessor or a Processor after receipt of a packet to define its contents for access by our fronted tools.
BucketExplorer Folder Size
BucketExplorer now calculates and displays the size of all files in the currently displayed folder.
New ping endpoints for our API containers
We added a couple new ping endpoints to our API containers that can be used for health/aliveness checks.
PROCESSORs now only run in the Decom microservice
Previous processors were being run both in the interface and in decom (twice total). Processors can now be used reliably run once on each packet reception, so they can safely perform side effects if needed. This is a potentially breaking change if the multiple execution was expected in previous versions.
ScriptRunner Performance Greatly Enhanced
ScriptRunner was updated to process script events in batches, rather than one at a time. This greatly improved ScriptRunner performance and should keep it from ever falling behind when flying through lots of lines that would have to be highlighted one by one.
Important Bug Fixes
- Accessors now enforce data type on read/write
- wait() fixed in Python scripts
- Continue even if there are errors in local_init in the init container. This removes many use cases where the init container can get stuck looping, and will allow for manual recovery by users.
- Fixed diff logic on plugin upgrade
- Fixed Python Tcp/IP Client Interface
- Made tlm item cache default to no caching, unless you specifically want it
- Fixed a bug where Interface#disconnect would not be called if an exception was raised during Interface#connect
- Fixed BucketExplorer routes with special characters
- Fixed writing Python strings without first converting them to bytes type
- Fixed loading TlmGrapher configurations with more than one graph specified
- Support upload/download from TableManager in Python
- Fixed a bug with the rux-status component handling of fatal
- Updated DataExtractor to handle receiving null values
All Pull Requests in this Release
- Bump github/codeql-action from 2 to 3 by @dependabot in #992
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #993
- Tool Screenshots for AstroUX by @jmthomas in #996
- update logging doc. Add license discussion. by @ryanmelt in #1016
- Create ping endpoint in cmd-tlm and scripts api by @jmthomas in #1009
- Add folder size by @jmthomas in #1000
- Make json, cbor, xml, html enforce data types by @jmthomas in #1006
- Move openc3_script_sleep and fix wait() in python by @jmthomas in #1004
- New cmd keywords for related telemetry and remove legacy snmp by @ryanmelt in #1005
- continue if local init fails by @ryanmelt in #1021
- upcase microservice target name by @ryanmelt in #1020
- Only run processors in decom microservice by @ryanmelt in #1019
- Add TCPIP keepalive options by @ryanmelt in #1018
- Add Generic Cmd Response Protocol and Template Accessor by @ryanmelt in #1017
- Add warning about unmerged diffs and fix diff logic by @jmthomas in #1027
- Fix python tpcip client connection by @jmthomas in #1034
- Bump follow-redirects from 1.15.2 to 1.15.4 in /openc3-cosmos-init/plugins/openc3-tool-base by @dependabot in #1028
- Bump follow-redirects from 1.15.2 to 1.15.4 in /openc3-cosmos-init/plugins by @dependabot in #1029
- Bump follow-redirects from 1.15.2 to 1.15.4 in /openc3/templates/tool_react by @dependabot in #1031
- Bump follow-redirects from 1.15.3 to 1.15.4 in /docs.openc3.com by @dependabot in #1030
- Default to no tlm cache by @ryanmelt in #1037
- Process ScriptRunner events in batches by @ryanmelt in #1038
- Dependencies by @jmthomas in #1035
- Ensure disconnect called at least once on interface. by @ryanmelt in #1039
- Fix bucket explorer route by @jmthomas in #1047
- Write python strings by @jmthomas in #1041
- Fix Grapher load config by @jmthomas in #1046
- Allow python upload/download in TableManager by @jmthomas in #1052
- Map fatal to critical by @jmthomas in #1050
- Add requirements.txt to python gems by @jmthomas in #1061
- Add Script Runner to logger source. Fix docs by @jmthomas in #1057
- Data Extractor handle null by @ryanmelt in #1063
- Test command endianness by @jmthomas in #1051
- Handle 404 errors in Script Runner by @jmthomas in #1064
- Add queued store and display active users by @jmthomas in #1045
- Dynamic target packet definition creation support. by @ryanmelt in #1048
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: Changelog