Open MCT v3.0.2
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 yourindex.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 theshow()
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 callingopenmct.time.now()
, even if the time conductor is in "fixed" mode.
- Switching the time conductor mode from "real-time" to "fixed" no longer sets the active clock to
- The
timeSystem()
method is deprecated. UsegetTimeSystem()
andsetTimeSystem()
instead. - The
bounds()
method is deprecated. UsegetBounds()
andsetBounds()
instead. - The
clock()
method is deprecated. UsegetClock()
andsetClock()
instead. - The
clockOffsets()
method is deprecated. UsegetClockOffsets()
andsetClockOffsets()
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.
bounds
→boundsChanged
timeSystem
→timeSystemChanged
clock
→clockChanged
clockOffsets
→clockOffsetsChanged
🏕 Features
Commits
- Add role attribution to notebook entries and export by @michaelrogers in #6793
- Fix couchdbsearchfolder and allow clocky reports by @shefalijoshi in #6770
- [Tooltips] Add tooltips on hover by @khalidadil in #6756
- Role selection for operator status roles by @michaelrogers in #6706
- Enhance telemetry tables to allow in place updates for data by @shefalijoshi in #6694
- Adds limits subscription to the Telemetry API by @shefalijoshi in #6735
- [Time] Conductors and API Enhancements by @jvigliotta in #6768
🔧 Maintenance
Commits
- chore(deps-dev): bump eslint from 8.42.0 to 8.43.0 by @dependabot in #6744
- chore: bump version to 2.2.6-SNAPSHOT by @ozyx in #6752
- [CI]Add docker and npm caching by @unlikelyzero in #6748
- chore(deps): bump docker/login-action from 1 to 2 by @dependabot in #6754
- chore(deps-dev): bump eslint-plugin-vue from 9.14.1 to 9.15.0 by @dependabot in #6746
- chore(deps-dev): bump @babel/eslint-parser from 7.21.8 to 7.22.5 by @dependabot in #6747
- chore(deps-dev): bump sass from 1.63.3 to 1.63.4 by @dependabot in #6743
- chore(deps-dev): bump webpack from 5.86.0 to 5.88.0 by @dependabot in #6764
- chore(deps-dev): bump flatbush from 4.1.0 to 4.2.0 by @dependabot in #6762
- chore(deps-dev): bump sanitize-html from 2.10.0 to 2.11.0 by @dependabot in #6766
- [CI] Fix couchdb e2e trigger and run nightly, part 3 by @unlikelyzero in #6782
- [CI] Update Github Actions to combine deploysentinel PR reports and driveby by @unlikelyzero in #6784
- chore: bump version to
3.0.0-SNAPSHOT
by @ozyx in #6800 - chore: bump version to
3.0.1
by @ozyx in #7013 - chore: bump version to
3.0.2
by @ozyx in #7071
🐛 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 @shefalijoshi in #6981
- cherry-pick(#7003): Imagery layer checkbox should match layer visibility by @shefalijoshi in #7004
- cherry-pick(#5585): Light refactor of visual tests by @ozyx in #7044
- cherry-pick(#6901): chore: bump Playwright to
1.36.2
by @ozyx in #7051 - cherry-pick(#6990): Fix and re-enable disabled unit test suites by @ozyx in #7049
- cherry-pick(#7052): Allow Data Visualization in inspector based on current selection by @akhenry in #7062
- cherry-pick(#7057): Memory leak fixes for several views by @ozyx in #7070
- cherry pick(#7073): Fix Mojibake by @akhenry in #7076
- cherry-pick(#7065): Have annotations work with domain objects that ha… by @ozyx in #7078
- cherry-pick(#7075): 🙅🚮␡ Remove
openmct.components
␡🚮🙅 by @ozyx in #7079 - cherry-pick(#7090): chore: add
release.yml
by @ozyx in #7095 - cherry-pick(#7096): Catchall for bug fix PRs and add performance category by @shefalijoshi in #7100
Full Changelog: v2.2.5...v3.0.2