Skip to content

Releases: nasa/openmct

v4.0.0

10 Sep 21:18
e664afd
Compare
Choose a tag to compare

What's Changed

💥 Notable Changes

openmct-e2e subpackage

The Open MCT e2e testing framework has been separated into a standalone package, openmct-e2e, in
preparation for distribution as a dependency for consumers of Open MCT.

Importing Open MCT

module, main, import and require fields have been added to the package.json so that the
openmct main bundle can be imported using either CommonJS or ESModule syntax.

Note

Open MCT is published in a UMD module format. Although this allows for flexibility in consumption,
the framework is still intended to be used within a browser environment where the window global
is available. See the openmct-hello repository for an
example of using or extending the Open MCT framework.

Accessibility

  • The default theme "Espresso" is now WCAG 2.0 AA and Section 508 compliant. This is automatically enforced through our visual accessibility testing suite, which runs on every commit.

API

TelemetryAPI
  • [EXPERIMENTAL] Add support for telemetry batching when using WebSockets
Misc
  • index.html is no longer published as part of the distribution.
  • The Timelist object no longer automatically scrolls to the current event.
  • Tab Displays no longer eager-load by default (tabs are now lazy-loaded by default).
Commits

🏕 Features

Actions

Reload

A new action "Reload" has been added to the context menus for all components that provide a view. Triggering this action will reload the view and all of its children. This is useful for reloading an individual view without needing to refresh the entire page.

JSON Import / Export
  • JSON import and export feature now shows a progress bar when using external persistence storage

Plan

  • Swimlanes can now be ordered based on the Plan JSON
  • Activities within a plan may now have their "state" set in the inspector view.
    • Plan activities must contain a unique id property in order to enable this feature.

Timelist

  • Activities may now be filtered by any of their metadata values.

CouchDB Plugin

  • Support for using multiple CouchDB databases at once
  • Support for read-only database configurations
  • See the CouchDB plugin documentation for more details

Themes

  • Add "Darkmatter" theme
openmct.install(openmct.plugins.DarkmatterTheme());

Note

Migrating from v3.x.x

Despite the major version bump, there are no known breaking changes between v3.x.x and v4.0.0. Projects consuming openmct should be able to upgrade to v4.0.0 without issue.

Commits

🎉 Enhancements

  • Flexible and Stacked Plot layouts styling behavior is now consistent
  • JSON import performance has been significantly improved
  • Recent objects panel is now collapsible
Commits

🔧 Maintenance

Commits
Read more

v3.2.1

28 Feb 23:34
15b7eed
Compare
Choose a tag to compare

What's Changed (02/28/2024)

🔧 Maintenance

🐛 Bug Fixes

  • fix(#7380): update example imagery urls (moved after NASA wordpress m… by @ozyx in #7532

Full Changelog: v3.2.0...v3.2.1

v3.2.0

20 Feb 23:10
4c2b59d
Compare
Choose a tag to compare

What's Changed

💥 Notable Changes

  • cherry-pick(#7241) Provide visibility based rendering as part of the view api by @scottbell in #7249

🏕 Features

🔧 Maintenance

  • chore(deps-dev): bump vue-eslint-parser from 9.3.1 to 9.3.2 by @dependabot in #7125
  • chore: remove vue/compat and complete Vue 3 migration by @ozyx in #7133
  • chore(deps-dev): bump eslint-plugin-vue from 9.15.0 to 9.17.0 by @dependabot in #6907
  • chore(deps-dev): bump jasmine-core from 5.0.0 to 5.1.1 by @dependabot in #7008
  • chore: bump version to 3.2.0-next by @ozyx in #7117
  • [Tooltips] Finish tests for gauges, telemetry tables, recently viewed items, and time strips by @khalidadil in #7145
  • chore(deps-dev): bump sass from 1.63.4 to 1.68.0 by @dependabot in #7086
  • chore(deps): bump actions/setup-node from 3 to 4 by @dependabot in #7166
  • chore(deps-dev): bump cspell from 7.3.6 to 7.3.8 by @dependabot in #7162
  • chore(deps-dev): bump eslint-plugin-unicorn from 44.0.2 to 48.0.1 by @dependabot in #7163
  • chore(deps-dev): bump painterro from 1.2.78 to 1.2.87 by @dependabot in #7165
  • chore(deps-dev): bump sinon from 15.1.0 to 17.0.0 by @dependabot in #7155
  • chore(deps-dev): bump @braintree/sanitize-url from 6.0.2 to 6.0.4 by @dependabot in #7190
  • chore(deps-dev): bump eslint-plugin-vue from 9.17.0 to 9.18.1 by @dependabot in #7188
  • chore(deps-dev): bump npm-run-all2 from 6.0.6 to 6.1.1 by @dependabot in #7185
  • chore(deps): bump actions/checkout from 3 to 4 by @dependabot in #7034
  • chore: bump Playwright to v1.39.0 by @ozyx in #7201
  • chore(deps-dev): bump uuid from 9.0.0 to 9.0.1 by @dependabot in #7207
  • chore(deps-dev): bump @vue/compiler-sfc from 3.3.4 to 3.3.8 by @dependabot in #7208
  • chore(deps-dev): bump webpack-merge from 5.9.0 to 5.10.0 by @dependabot in #7205
  • chore(deps-dev): bump eslint-plugin-you-dont-need-lodash-underscore from 6.12.0 to 6.13.0 by @dependabot in #7213
  • chore(deps-dev): bump @percy/cli from 1.26.0 to 1.27.4 by @dependabot in #7212
  • chore(deps-dev): bump eslint from 8.48.0 to 8.53.0 by @dependabot in #7211
  • [CI] Dependabot skip rebasing on every merge by @unlikelyzero in #7216
  • chore(deps-dev): bump @types/jasmine from 4.3.4 to 5.1.2 by @dependabot in #7219
  • chore(deps-dev): bump webpack from 5.88.0 to 5.89.0 by @dependabot in #7186
  • chore(deps-dev): bump eslint-plugin-unicorn from 48.0.1 to 49.0.0 by @dependabot in #7218
  • chore(deps-dev): bump vue from 3.3.4 to 3.3.8 by @dependabot in #7214
  • fix(index.html): use defer and move script to head by @evenstensberg in #6999
  • docs: update release.yml by @ozyx in #7518

🐛 Bug Fixes

  • chore(cspell): use --quiet flag by @ozyx in #7110
  • [Staleness] Fix staleness on clock change by @khalidadil in #7088
  • Handle negative height & width in image annotations by @scottbell in #7116
  • [Staleness] Fix issue with object view staleness styles not being reset on clock change by @khalidadil in #7122
  • Fix remaining vue-compat warnings by @depperm in #6966
  • do not store state in singleton action by @davetsay in #7121
  • When dropping an unsupported file onto a notebook entry, tell the user it isnt supported by @scottbell in #7115
  • Rename all configuration tabs to Config by @davetsay in #7140
  • fix(#7143): add eslint-plugin-no-sanitize and fix errors by @ozyx in #7144
  • Prevent infinite loop when updating a table row in place by @scottbell in #7154
  • [Filters] Fix view based filters when string input is enabled by @jvigliotta in #7050
  • [Plots] Gracefully handle Float32Array breaking values by @jvigliotta in #7138
  • Removed errant brace in ObjectAPI Error by @michaelrogers in #7192
  • Refine display options and add Independent Time Conductor option for Time List view by @shefalijoshi in #7161
  • fix: DisplayLayout and FlexibleLayout toolbar actions only apply to selected layout by @ozyx in #7184
  • docs: update Telemetry Formats section by @ozyx in #7173
  • docs: add related repos section to README.md by @ozyx in #7111
  • docs: add warning about deploying devServer to prod environment by @ozyx in #7203
  • [Dependency] Update to skip regular releases of marked by @unlikelyzero in #7209
  • [CI] Add CI Troubleshooting doc by @unlikelyzero in #6988
  • Changed global time to use time context current value for ITC by @michaelrogers in #7191
  • fix(#7234): 'Remove Container' button not working in Flexible Layout toolbar by @ozyx in #7240
  • Only show marquee for selected item by @davetsay in #7180
  • Gauge fixes for NaN and composition policy by @charlesh88 in #5608
  • chore: bump version to 3.2.0 by @ozyx in #7266
  • cherry-pick(#7262): Update API documentation for Visibility-Based Rendering by @scottbell in #7267
  • fix: 2d canvas fallback logic by @ozyx in #7295

Full Changelog: v3.1.1...v3.2.0

v3.1.1

21 Nov 19:16
0bf37fc
Compare
Choose a tag to compare

What's Changed

This is a patch release to fix 2 medium severity vulnerabilities reported in CVE-2023-45884 and CVE-2023-45885.

🔧 Maintenance

🐛 Bug Fixes

Full Changelog: v3.1.0...v3.1.1

v3.1.0

17 Oct 17:59
c1dd82c
Compare
Choose a tag to compare

What's Changed

🏕 Features

🔧 Maintenance

⚡ Performance

🐛 Bug Fixes

📄 Docs

Full Changelog: v3.0.2...v3.1.0

Open MCT v3.0.2

02 Oct 16:53
133e7c3
Compare
Choose a tag to compare

What's Changed

Caution

Breaking Changes

  • Starting from version 3.0.0, Open MCT requires a child <div> within the document.body in order to mount properly. Ensure that your index.html or hosting document includes a suitable container <div> before initializing Open MCT.
<!-- Bad ❌ -->
<!doctype html>
<html lang="en">
 <head>
   <meta charset="utf-8" />
   <title>Open MCT</title>
 </head>
 <body>
 </body>
</html>
<!-- Good ✅ -->
<!doctype html>
<html lang="en">
 <head>
   <meta charset="utf-8" />
   <title>Open MCT</title>
 </head>
 <body>
   <div id="app"></div>
 </body>
</html>
  • For Open MCT plugin maintainers with views written in Vue 2, ensure compatibility with Open MCT v3.x.x and above by creating a new <div> and appending it to the element passed into the show() function in your ViewProviders. This prevents rendering issues, as Vue 3 no longer replaces the element when mounting applications.
/* ❌ */
show(element) {
    component = new Vue({
        el: element,
        // ... existing code ...
    });
}
/* ✅ */
show(element) {
    // Create a new div, append it to the element, and mount the Vue component to the new div
    const div = document.createElement('div');
    element.appendChild(div);
    component = new Vue({
        el: div,
        // ... existing code ...
    });
}

Warning

Deprecations

Time System and Clock API Updates

The Time API has been updated to improve consistency and provide more descriptive method names. There are now separate methods for getting and setting the time system and clock. Additionally, Open MCT now always has an active clock, even in fixed time mode.

  • The stopClock() method is deprecated and will be removed in a future release.
    • Switching the time conductor mode from "real-time" to "fixed" no longer sets the active clock to undefined. This makes it possible to retrieve the current time of the configured time system and clock by calling openmct.time.now(), even if the time conductor is in "fixed" mode.
  • The timeSystem() method is deprecated. Use getTimeSystem() and setTimeSystem() instead.
  • The bounds() method is deprecated. Use getBounds() and setBounds() instead.
  • The clock() method is deprecated. Use getClock() and setClock() instead.
  • The clockOffsets() method is deprecated. Use getClockOffsets() and setClockOffsets() instead.

Time Events Renaming

The names of events emitted by the Time API have been updated to be more consistent and descriptive.
Please update your listeners to the new event names after migrating to the new Time API.

  • boundsboundsChanged
  • timeSystemtimeSystemChanged
  • clockclockChanged
  • clockOffsetsclockOffsetsChanged

🏕 Features

Commits

🔧 Maintenance

Commits

🐛 Bug Fixes

Commits
  • Fix race condition in image annotations loading and drawing them on the canvas by @scottbell in #6751
  • Toggle between showing aggregate stacked plot legend or per-plot legend by @shefalijoshi in #6758
  • Batch Couch DB create calls by @akhenry in #6779
  • Tree item abort by @jvigliotta in #6757
  • [Timelist] Fixed Time use Now as start time - 5772 by @michaelrogers in #6497
  • Suppress role selection if no roles available by @akhenry in #6802
  • [CI] Temporarily disable some tests by @unlikelyzero in #6806
  • Migrate to Vue 3 Migration Build by @ozyx in #6767
  • Fixes for e2e tests following the Vue 3 compat upgrade by @ozyx in #6837
  • Switch staleness provider for SWG to use modeChanged instead of clock by @khalidadil in #6845
  • Use the current timestamp from the global clock by @shefalijoshi in #6851
  • Plan rendering inside a timestrip by @shefalijoshi in #6852
  • fix(#6854): [LADTableSet] prevent compositions from becoming reactive by @ozyx in #6855
  • Revert "[CI] Temporarily disable some tests" by @ozyx in #6853
  • fix: remove tree-item-destroyed event by @ozyx in #6856
  • Don't allow editing line more when not editing display layout by @shefalijoshi in #6858
  • Wait for bounds change to reset telemetry collection data by @shefalijoshi in #6857
  • cherry-pick(#6868): fix: toggling markers, alarm markers, marker style + update Vue.extend() usage to Vue 3 by @ozyx in #6873
  • cherry pick (#6875) suppress deprecation warnings to once per unique args by @akhenry in #6881
  • cherry-pick(#6877): Set the raw series limits so that we can get the raw series limits by @ozyx in #6883
  • cherry-pick(#6885): Synchronize timers between multiple users by @ozyx in #6886
  • Remove snapshot by @shefalijoshi in #6887
  • cherry-pick(#6866): Only load annotations in fixed time mode or frozen by @scottbell in #6902
  • cherry-pick(#6904): Check for null in DuplicateAction by @ozyx in #6911
  • cherry-pick(#6943): fix(#6942): Toggling FlexibleLayout toolbar options reflects immediately in the view by @ozyx in #6945
  • cherry-pick(#6919): Fix remote clock subscription by @ozyx in #6934
  • cherry-pick(#6910): chore: add vue3 to eslint, fix errors, and modify lint script by @ozyx in #6935
  • cherry-pick(#6933): fix(e2e): Stabilize ITC tests by @ozyx in #6947
  • cherry-pick(#6927): Recent objects do not update when object names are changed by @scottbell in #6949
  • cherry-pick(#6916): [Tooltips] Fixes for dictionary objects and self-referential objects by @khalidadil in #6950
  • cherry-pick(#6929): Condition sets now provide the timeContext they're using when sending requests by @shefalijoshi in #6959
  • cherry-pick(#6948): Ensure that dynamically created vue components are destroyed by @shefalijoshi in #6958
  • cherry-pick(#6960): Add strategy latest and timeContext to auto flow tabular and gauge views by @she...
Read more

Open MCT v2.2.5

10 Jul 17:45
55d0efa
Compare
Choose a tag to compare
Open MCT v2.2.5 Pre-release
Pre-release

Bug Fixes
[Imagery] toggling an overlay layer by clicking label toggles for first imagery #6709
Displays with a large number of plots take a long time to load due to annotation requests #6708
Time List view should not show milliseconds in times #6677
Timelist To/From incorrect for 'current' activities #6657

Open MCT v2.2.4

05 Jun 17:45
9f664a0
Compare
Choose a tag to compare
Open MCT v2.2.4 Pre-release
Pre-release

Bug Fixes
Increasing number of redundant requests made to search provider on tag added to an immutable object annotation #6689
Move and Link dialog's Locator is way too small #6654

Open MCT v2.2.3

05 Jun 17:43
8a8cbc7
Compare
Choose a tag to compare
Open MCT v2.2.3 Pre-release
Pre-release

Bug Fixes
Gantt Chart view of plans does not observe draft status of plans #6641
[LAD Tables] Configuration not changed/persisted when toggling "Autosize" for columns #6636
font styling is lost when url property set on condition widget #6614
Telemetry API should support requesting a subscription provider #6546

Maintenance and Testing
Need visual test for lad table column config and titles for browse bar actions #6639
[Build] Update CouchDB scripting and version #6644

Open MCT v2.2.2

24 Apr 17:16
b5beffe
Compare
Choose a tag to compare
Open MCT v2.2.2 Pre-release
Pre-release

Improvements
[Recently Viewed Items] Disable button if no items #6503

Bug Fixes
Cannot add annotations on newly create notebook entry #6411
Annotations on empty entries in notebook are lost #6156
StaticRootPlugin does not work with non-empty or non-root namespaces #6584
[Export As JSON] Exports with Objects using Conditional Styling can cause multiple files to be saved #6566
[Export as JSON] Issues with items that have identifiers stored in configuration #6561
Static Root Plugin does not work with overlay plots #6549
[ExportNotebookAsText] Action is not available for Restricted Notebooks #6534