v6.0.0
OpenC3 COSMOS 6.0.0 - Frontend Apps Updated to Vue 3
Welcome to OpenC3 COSMOS 6.0.0!
This release focuses on bringing all our dependencies up to the latest versions primary for the COSMOS user interface. The big changes are:
- Vue 2 upgraded to Vue 3
- Vuetify 2 upgraded to Vuetify 3
- Traefik 2 upgraded to Traefik 3
- Grafana 10 upgraded to Grafana 11 (Enterprise)
- Webpack replaced with Vite
- Many other minor depenencies updated
Potentially Breaking Changes
The change from Traefik 2 to Traefik 3 changed the traefik configuration file format. Please update your traefik config files with the latest from cosmos-project.
Any custom Vue based tools will need to be upgraded to Vue 3 / Vuetify 3 / Vite. We've put together a detailed writeup to help with this process here: https://docs.openc3.com/docs/getting-started/upgrading#migrating-from-cosmos-5-to-cosmos-6
Our @openc3/tool-common npm package was broken up into @openc3/js-common and @openc3/vue-common packages. This would affect tools written in any frontend framework.
Commands with states now enforce using defined states. If you need to send an arbitrary value for a command with states you will need to use cmd_no_range_check().
Greatly Improved Container Build Times
Building our containers from source is now about 4 times faster. This is mainly due to the change from Webpack to Vite.
Greatly Improved Documentation
Accessors are now fully documented at docs.openc3.com! Also, more Interfaces and Protocols are documented. The Enterprise Command History Tool is now documented. Every TlmViewer widget now has screen shots.
More Python Parity
Almost every Interface and Protocol available in Ruby is now available in Python (Only current exception is SerialInterface).
BucketExplorer View Files
You can now view files in BucketExplorer, rather than having to download and open them in a separate application.
Sharded Operator (Generally Enterprise)
The operator container can now be run multiple times, each with a unique OPENC3_SHARD environment variable. This is intended as an alternate to using the Kubernetes Operator, if you don't have access to the Kubernetes API.
Other Improvements
- CrcProtocol now supports Crc8
- Installing Plugins and Packages now uses a button, rather than the old paperclip style text area
Other Bug Fixes
- ScriptRunner Suite level setup and teardown now work in Python suites
- Some ScriptRunner output wasn't colored when intended
- Importing from openc3.script now works in Python suites
- Fixed an issue with selecting modified scripts in Calendar and Autonomic (Enterprise)
All Pull Requests in this Release
- Configurable Default Repository URLs for Ruby Gems and Python Packages by @stephen-ritter in #1690
- Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 by @dependabot in #1687
- Python TemplateAccessor and CmdResponseProtocol by @ryanmelt in #1684
- Traefik v3 (COSMOS 6) by @jmthomas in #1688
- Cmd history docs by @jmthomas in #1685
- Command State Range Checking for COSMOS 6 by @ryanmelt in #1670
- Vue 3 / Vuetify 3 migration for COSMOS 6 by @ryan-pratt in #1539
- Remove some deprecated items for COSMOS 6 by @jmthomas in #1659
- Fix Python Suite Setup and Teardown by @ryanmelt in #1695
- -Fix typo in docs by @lorenzo-gomez-windhover in #1702
- -Fix typo in docs by @lorenzo-gomez-windhover in #1703
- Widget images by @sydjaythomas in #1700
- BucketExplorer view files and breadcrumb paths by @jmthomas in #1696
- Support period in parameter names for COSMOS 6 by @jmthomas in #1677
- Typo by @lorenzo-gomez-windhover in #1712
- Fix tests for enterprise by @ryan-pratt in #1719
- Fix RawDialog behavior by @ryan-pratt in #1718
- Fix migrations by @ryanmelt in #1716
- Remove inpect override in array and hash by @jmthomas in #1723
- CrcProtocol Support Crc8 by @lorenzo-gomez-windhover in #1724
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #1714
- Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 by @dependabot in #1699
- Sharded Operator Support by @ryanmelt in #1709
- Handle exceptions in ModelController by @jmthomas in #1704
- Change plugin / package install to a button by @jmthomas in #1713
- Replace Webpack with Vite by @ryanmelt in #1728
- Python Mqtt and exception cleanup by @jmthomas in #1701
- Py suite by @jmthomas in #1730
- Filter Controllers stack trace by @jmthomas in #1731
- Dependency major version updates by @ryan-pratt in #1722
- Add python form & http accessors and http_client_interface by @jmthomas in #1717
- Add File Interface by @ryanmelt in #1708
- Migrate ace-diff from Webpack to Vite by @ryan-pratt in #1736
- Break up tool-common by @ryan-pratt in #1737
- Document interfaces, protocols, accessors by @jmthomas in #1733
- Fix redirect from root path by @ryan-pratt in #1746
- Add COSMOS 6 upgrade guide by @ryan-pratt in #1754
- Better handle script output coloring by @jmthomas in #1751
- Popups and horizontal scroll by @jmthomas in #1755
- Better log message in note and metadata controller, fix ColorSelectForm by @jmthomas in #1756
- CHECKBUTTON checked by default and update example by @jmthomas in #1761
- Bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3 by @dependabot in #1749
- Add execute to TimelineModel and api in controller to set it by @jmthomas in #1760
- Polish a couple things by @ryan-pratt in #1757
- Fix import script in python suite by @ryanmelt in #1763
- Remove star from chosen script by @ryanmelt in #1769
- Update tool templates for COSMOS 6 by @jmthomas in #1747
- Fix sharding by @ryanmelt in #1771
- Small bug fixes and enhancements by @ryan-pratt in #1772
- Update package_audit for vue.global and vuetify-labs by @ryan-pratt in #1770
- Dependencies by @jmthomas in #1773
New Contributors
- @lorenzo-gomez-windhover made their first contribution in #1702
- @sydjaythomas made their first contribution in #1700
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.20.0...v6.0.0