December 16, 2024

Preparing for COSMOS 6

Upgrades performed in anticipation of COSMOS 6

COSMOS 6 has been about a 3.5 month long effort upgrading our technical stack. When COSMOS 5 was conceived in early 2020 we decided to containerize everything and rewrite the frontend in Javascript to run in the browser. While several frameworks were considered, we ended up with Vue.js as a modern Javascript framework that had a syntax we liked. Vue.js 2.0 had been released in 2016 and a nice ecosystem exists around it including Vuetify which provides COSMOS with GUI elements like buttons, menus, etc.

Vue.js 3.0 was released in late 2020 but we needed to wait for Vuetify to migrate to Vue 3 before we could migrate COSMOS. Vuetify had its first Vue 3.0 release in October 2022 but it was far from feature complete with their 2.0 release. Over the next 2 years the gap closed until we were able to start our port in earnest after Labor Day 2024 with the addition of a new employee. Ryan Pratt had worked with us on COSMOS at Ball Aerospace and is an excellent frontend developer so we gave him the large task of porting to Vue.js 3 and Vuetify 3.

Porting a large application like COSMOS from Vue/Vuetify 2 to 3 was made tricker due to our use of single-spa which is a javascript router for front-end microservice that allows us to encapsulate different frontend frameworks in our architecture. After a long running pull request with over 100 commits we finally merged Vue/Vuetify 3 to our main branch on Nov 8. Since that time we upgraded our build system to vite and broke apart some of our internal libraries to make future development easier. We've also ported all our Enterprise tools and updated our tests to ensure everything is working as expected.

The upgrading page says it best: If you haven't written any custom tools or widgets, there are no special changes required to upgrade from COSMOS 5 to COSMOS 6! That means for the vast majority of COSMOS users you just get updated dependencies and life moves on. For those that have written custom tools there is work to be done but the migration guide (written by Ryan Pratt) walks through in great detail the changes that must be made.

It's hard to believe that we open sourced COSMOS 3 ten years ago on Dec 17, 2024. COSMOS has seen tremendous changes since that time but it remains the easiest to configure and use command and control system in existence. I hope you enjoy COSMOS 6 as we look forward to a lot of exciting changes in our roadmap for COSMOS 6.1 and beyond!

Take a look at the latest articles from OpenC3