Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 52 #1300

Open
wants to merge 366 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
366 commits
Select commit Hold shift + click to select a range
0bd2d4d
chore: lint
Julusian Oct 8, 2024
6849552
chore: review comments
Julusian Oct 8, 2024
30c2bdd
chore: split `SystemStatus.tsx` into multiple files
Julusian Oct 8, 2024
b625b33
chore: convert `DeviceItem` to functional component
Julusian Oct 8, 2024
1729c7d
chore: refactor `SystemStatus` to be functional
Julusian Oct 8, 2024
b6a7f90
Merge pull request #1262 from bbc/upstream/routeset-config-defined-in…
nytamin Oct 9, 2024
685364d
feat: config package manager from blueprints
olzzon Sep 23, 2024
5120882
feat: routeset controlled ab player assignment
olzzon Sep 27, 2024
5ef7c34
fix: avoid excessive applyAndValidateOverrides
Julusian Oct 9, 2024
e8e1a28
chore: preempt review comments
Julusian Oct 9, 2024
1b5a5ce
Updated to revert separate templateAdLib array, client now uses a pub…
Oct 9, 2024
0b744f1
Add explicit actionOptions property to adLibAction
Oct 9, 2024
174699b
chore(.vscode/settings): add webui to eslint workingDirectories
jstarpl Oct 9, 2024
d60dfc4
fix(NotificationPopUp): buttons have no margins
jstarpl Oct 9, 2024
cb880eb
Consolidate validation method, updates from Julusian comments
Oct 9, 2024
3defab2
chore: reuse PlayerId
Julusian Oct 10, 2024
f11829e
chore: review comments
Julusian Oct 10, 2024
2f2f3b4
chore: type error
Julusian Oct 10, 2024
52ede26
fix: reset segments when added to an active loop
mint-dewit Oct 7, 2024
425d229
fix(ui): timing in quickloop
mint-dewit Oct 7, 2024
5c78889
fix: rundown reset resets quickloop markers
mint-dewit Oct 8, 2024
77cc59b
chore: optimise getSegmentsBetweenMarkers
mint-dewit Oct 10, 2024
4e3af33
Merge pull request #1272 from bbc/upstream/routeset-ab-player-control
nytamin Oct 14, 2024
99533aa
fix: ensure timeline is regenerated after switching routeset affectin…
Julusian Oct 14, 2024
ad8e1d6
Merge pull request #1285 from bbc/upstream/fix-regenerate-timeline-af…
jstarpl Oct 14, 2024
91d2b48
Merge pull request #1278 from bbc/upstream/rework-ui-permissions-flow
jstarpl Oct 15, 2024
1ccd814
Merge branch 'release51' into release52
jstarpl Oct 15, 2024
5987326
Merge pull request #1263 from bbc/upstream/config-package-manager-fro…
nytamin Oct 16, 2024
4a3f6c1
chore: type fix after merge
nytamin Oct 16, 2024
132ebc0
chore: fix unit test and lint
nytamin Oct 17, 2024
3fd9716
chore: revert countdown in top bar to part time
mint-dewit Oct 17, 2024
191353f
chore: split job-worker context.ts into multiple files
Julusian Oct 17, 2024
4a1c882
feat: reimplement model `switchRouteSet` to perform operation on `con…
Julusian Oct 17, 2024
216bcab
chore: swap segment and part countdown
mint-dewit Oct 18, 2024
082b1d8
fix: type mismatch and confusing ui for enabling/disabling ab players
Julusian Oct 14, 2024
a498d90
fix: use segment budget duration for segment duration counter (#15)
Julusian Oct 18, 2024
ed82e6b
fix: remove unused meteor ui packages
Julusian Oct 15, 2024
e69a4fc
feat: processIngestData & userEditOperations
Julusian Oct 18, 2024
ca11fc8
Merge pull request #1292 from bbc/upstream/remove-meteor-packages
nytamin Oct 21, 2024
5bb60d0
chore: tidy
Julusian Oct 21, 2024
9be51e4
chore: jsx component
Julusian Oct 21, 2024
dfc7c5e
chore: fix tests
Julusian Oct 21, 2024
c6df21a
Merge remote-tracking branch 'upstream/release52' into upstream/segme…
Julusian Oct 22, 2024
9efddf5
chore: fix tests
Julusian Oct 22, 2024
df0dc95
fix: prompter skipped pieces
mint-dewit Oct 22, 2024
e26a3d2
Merge pull request #1296 from bbc/fix/prompter-skips-script-pieces
jstarpl Oct 23, 2024
1dfdaad
chore: add playlist timings to LSG
mint-dewit Oct 14, 2024
a6e9a9b
Merge pull request #1283 from bbc/upstream/fix-quickloop-timers
jstarpl Oct 23, 2024
a1d1f42
chore: only count down to segment time if available
mint-dewit Oct 24, 2024
9c308e5
chore: rename to expectedDurationMs
mint-dewit Oct 24, 2024
fad8334
chore: rename
mint-dewit Oct 24, 2024
6ef01f1
chore: fix tests
mint-dewit Oct 24, 2024
f8a1d75
Merge pull request #1298 from bbc/upstream/chore-add-lsg-playlist-timing
jstarpl Oct 24, 2024
c228251
feat: list routesets from blueprints adlib action
mint-dewit Oct 24, 2024
56f1399
Merge remote-tracking branch 'upstream/release52' into upstream/segme…
Julusian Oct 24, 2024
474e0d3
fix: restore test
Julusian Oct 24, 2024
817f9a0
chore: review comments
Julusian Oct 24, 2024
c5b833d
feat: add `notes` to `RundownPlaylist` and pipe notes from blueprints…
Julusian Oct 21, 2024
d9fafe0
feat: Server-side notifications #1193
Julusian Oct 24, 2024
3b4cdda
fix: prefer field_order from package info stream over deepscan
Julusian Oct 24, 2024
3818de8
Merge pull request #1301 from bbc/upstream/feat-list-routesets-in-adl…
jstarpl Oct 24, 2024
549f544
Merge pull request #1277 from bbc/upstream/segment-timing
jstarpl Oct 28, 2024
3a66e93
chore: update comments
jstarpl Oct 28, 2024
1795ea9
Merge branch 'release51' into release52
jstarpl Oct 28, 2024
d2aa933
Merge pull request #1291 from bbc/upstream/fix-switchrouteset-updatin…
jstarpl Oct 29, 2024
799ab71
Merge pull request #1295 from bbc/upstream/playlist-notes
jstarpl Oct 29, 2024
c295ad6
Merge branch 'upstream/release52' into upstream/server-side-notificat…
Julusian Oct 29, 2024
aefc95d
Merge branch 'upstream/release52' into upstream/process-ingest-data2
Julusian Oct 29, 2024
f1f77fa
feat: quickloop improvements
Julusian Oct 24, 2024
3daed38
Further updates mainly to improve logging and code comments
Oct 30, 2024
9a3e400
chore: add user option to upload and ingest ingestData from snapshot
nytamin Oct 31, 2024
91e6a40
feat: meteor 2.16
Julusian Oct 31, 2024
c9e739d
fix: remove unused `rundownIds` parameter from `MeteorPubSub.uiPartIn…
Julusian Nov 1, 2024
005a0e5
fix: action triggers editor not showing previews
Julusian Nov 1, 2024
c2a6522
feat: convert action-triggers computation to async
Julusian Nov 1, 2024
874e85c
fix: RundownView shows spinner when unMOSing a Rundown from a Playlist
jstarpl Nov 4, 2024
a9daca2
fix: Unable to clear infinites
Julusian Nov 4, 2024
d798c7c
chore: replace contextTypes with modern alternatives
Julusian Nov 4, 2024
c593560
fix: publications not becoming ready when returning null
Julusian Nov 6, 2024
89d7eca
Updated to add hidden property to IBlueprintAdLibPiece and IBlueprint…
Nov 6, 2024
a876c6d
chore: cleanup unused keyboardmap and meteor settings
Julusian Nov 7, 2024
7895349
chore: improve logging in logAnyRemainingNowTimes
nytamin Nov 13, 2024
70bb56c
Merge remote-tracking branch 'origin/fix/negative-resolvedDuration' i…
nytamin Nov 13, 2024
a9fe401
fix: only run onPart/PiecePlaybackStarted/Stopped on current, next or…
nytamin Nov 13, 2024
a09c8ed
chore: improve logging, for troubleshooting
nytamin Nov 13, 2024
51b7104
fix: Include previousPartInstance in check to orphan segments rather …
nytamin Nov 13, 2024
31f08c3
chore: log deleted documents, for troubleshooting
nytamin Nov 13, 2024
dce1870
chore: lint fix
nytamin Nov 13, 2024
9ef7d5e
Revert "fix: only run onPart/PiecePlaybackStarted/Stopped on current,…
nytamin Nov 13, 2024
f3244b7
Merge branch 'release52' into feat/adlib-action-options
Nov 13, 2024
e245b15
Merge branch 'release52' into feat/blueprint-config-validation
Nov 13, 2024
50bc344
Merge branch 'release52' into feat/templateAdlibs
Nov 13, 2024
3799e61
Merge pull request #1226 from evs-broadcast/feat/adlib-action-options
jstarpl Nov 13, 2024
73527e0
Merge pull request #1221 from evs-broadcast/feat/templateAdlibs
jstarpl Nov 13, 2024
76b8cbd
chore(AdLibPanel): simplify
jstarpl Nov 13, 2024
175b5ff
fix(AdLibPanel): support hidden on AdLibPieces
jstarpl Nov 13, 2024
db9bd7d
Merge pull request #1319 from nrkno/chore/evs-hidden-adlibs
jstarpl Nov 13, 2024
ecc1768
Merge pull request #1223 from evs-broadcast/feat/blueprint-config-val…
nytamin Nov 14, 2024
b769157
fix: updatePartInstancesSegmentIds: take into account when multiple s…
nytamin Nov 14, 2024
e752e23
chore: doc and logging for troubleshooting
nytamin Nov 14, 2024
428e95d
chore: remove handling of legacy mos data import
nytamin Nov 14, 2024
5d72c14
chore: move checkForMultipleVersions into a yarn script
jstarpl Nov 15, 2024
9636051
fix: release scripts broken on Windows
jstarpl Nov 15, 2024
8c78ed2
Merge branch 'release51' into release52
jstarpl Nov 15, 2024
b0daf75
feat: option to disable HOLD & direct play (#32)
Julusian Nov 25, 2024
ea2cae1
feat: option to disable/enable buckets (#36)
olzzon Nov 20, 2024
cc866ca
Merge branch 'release51' into release52
jstarpl Nov 25, 2024
d7a216d
fix: `queuedSegmentId` ignored when taking last part of the rundown
Julusian Nov 26, 2024
89ddacf
Merge pull request #1330 from bbc/upstream/fix-queued-segment-when-on…
jstarpl Nov 26, 2024
c58d6ba
Merge pull request #1324 from bbc/upstream/fix-infinite-end-and-duration
jstarpl Nov 26, 2024
fa367ed
Merge pull request #1318 from bbc/upstream/remove-unused-keyboardmap-…
jstarpl Nov 26, 2024
a886bc4
Merge pull request #1309 from bbc/upstream/fix-action-triggers-previews
jstarpl Nov 26, 2024
193815d
fix: Device Action Studio Context gets lost, Adlib previews are unstable
jstarpl Nov 29, 2024
13f0556
chore: improve documentation
jstarpl Nov 29, 2024
02b8594
Merge pull request #1311 from nrkno/fix/sofie-3593/show-style-variant…
jstarpl Nov 29, 2024
fb50990
Merge branch 'master' into release51
jstarpl Nov 29, 2024
24aae09
Merge branch 'release51' into release52
jstarpl Nov 29, 2024
9e24299
chore: fix bad logic in troubleshooting code
nytamin Dec 4, 2024
b20367b
chore: add logging for troubleshooting
nytamin Dec 4, 2024
8b926ac
fix: the scss structure was reimporting colors and variable multiple …
olzzon Dec 2, 2024
1478b68
Merge pull request #1334 from nrkno/fix/sofie-3638/device-action-cont…
jstarpl Dec 4, 2024
9f9b6e7
Merge pull request #1321 from nrkno/fix/release-scripts
jstarpl Dec 4, 2024
d2a3cdf
chore(release): 1.51.4
jstarpl Dec 4, 2024
8c16ce8
feat: add more logging
jstarpl Dec 4, 2024
96993d0
Merge branch 'release51' into test/release51
jstarpl Dec 4, 2024
ef01346
Merge branch 'chore/upload-ingest-snapshot' into release52
nytamin Dec 5, 2024
24dccd6
chore: lint fix
nytamin Dec 5, 2024
7a5dc15
chore: fix install bug on windows
nytamin Dec 9, 2024
a96f615
chore: refactor sass to fix deprecation warnings
nytamin Dec 9, 2024
a668b44
chore: replace `meteor yarn` with `meteor npm run` to fix issue with …
nytamin Dec 9, 2024
90fb8e8
Merge pull request #1339 from nrkno/chore/deprecated-sass
nytamin Dec 9, 2024
5e53676
chore: improve code comments around the added logging
jstarpl Dec 9, 2024
162af01
Merge pull request #1335 from bbc/upstream/pr-over-onehundres-css-sty…
jstarpl Dec 9, 2024
fcd04da
Merge pull request #1313 from bbc/chore/replace-contextTypes
jstarpl Dec 10, 2024
6b36d5b
Merge branch 'release52' into upstream/interlaced-fix
Julusian Dec 10, 2024
57ddfde
Merge pull request #1340 from bbc/upstream/interlaced-fix
jstarpl Dec 10, 2024
6e04a7f
chore: doc and fixes after code review
nytamin Dec 10, 2024
f742fcb
Merge branch 'upstream/process-ingest-data2' into release52
nytamin Dec 10, 2024
f6d8290
chore: minor fixes after code review
nytamin Dec 10, 2024
96ec63a
Merge branch 'upstream/quickloop-improvements' into release52
nytamin Dec 10, 2024
33f53cb
chore: minor fixes after code review
nytamin Dec 10, 2024
993a696
Merge branch 'feat/pr-upstream-for-elemement-selector-for-ui' of gith…
nytamin Dec 10, 2024
20ab08d
chore: minor fixes after code review
nytamin Dec 10, 2024
3f63362
Merge branch 'upstream/action-triggers-async' into release52
nytamin Dec 10, 2024
45fa3d2
Merge branch 'upstream/studio-settings-for-features' of github.com:bb…
nytamin Dec 10, 2024
999b800
chore: fix unit test & CI
nytamin Dec 10, 2024
11ddc3a
chore: fix moar tests
nytamin Dec 10, 2024
f723c27
chore: fix unit tests & CI
nytamin Dec 10, 2024
c4365ad
Revert "chore: fix unit tests & CI"
nytamin Dec 10, 2024
a6ce734
Merge branch 'upstream/release52' into upstream/server-side-notificat…
Julusian Dec 10, 2024
8670727
feat: meteor 3.0.4
Julusian Dec 10, 2024
61b6854
feat: update meteor to 3.1 and node to 22
Julusian Nov 25, 2024
aaaa3d5
chore: improve when webui is built
Julusian Nov 19, 2024
da49fe1
chore: missing import
Julusian Dec 10, 2024
ef14c8f
feat: configure Core system/studio settings via blueprints
Julusian Nov 20, 2024
5f77a10
chore: fix lint
Julusian Dec 10, 2024
c4b8da5
feat: Sofie Core Groups with Trusted header SOFIE-95
Julusian Nov 26, 2024
4918e04
chore: update documentation
Julusian Nov 26, 2024
6b02621
chore: remove unused css
Julusian Nov 26, 2024
1e5bbc6
feat: support for http header in packagemanager
olzzon Sep 9, 2024
c7bdfe6
feat: always add `dnt=gateway` header for gateway connections
Julusian Nov 27, 2024
3f71257
Merge branch 'upstream/release52' into feat/mos-openmedia-hot-standby
Julusian Dec 10, 2024
685862b
chore: review comments
Julusian Dec 10, 2024
3d559f1
fix: unable to remove peripheralDevice
Julusian Dec 3, 2024
4c7a337
chore: fix missed security check
Julusian Dec 10, 2024
878214b
feat: configure peripheral device settings from blueprints
Julusian Dec 9, 2024
f54bd28
chore: add deprecation note
Julusian Dec 11, 2024
5a58f71
feat!: remove showstyle and studio blueprint migrations
Julusian Dec 11, 2024
11b7493
WIP
nytamin Dec 11, 2024
2095210
chore: minor docs after code review
nytamin Dec 11, 2024
8ac7b39
chore: minor docs after code review
nytamin Dec 11, 2024
49730ed
Merge branch 'upstream/meteor3' into release52
nytamin Dec 11, 2024
263a06c
Merge branch 'upstream/blueprint-configure-system-settings' into rele…
nytamin Dec 11, 2024
5d2d5bf
Merge branch 'upstream/header-based-auth' into release52
nytamin Dec 11, 2024
dd5010a
chore: fix unit test
nytamin Dec 11, 2024
0b5412a
Merge branch 'upstream/release52' into upstream/peripheral-device-set…
Julusian Dec 11, 2024
b628877
Merge branch 'upstream/release52' into upstream/server-side-notificat…
Julusian Dec 11, 2024
fdf019b
chore: fix lint
Julusian Dec 11, 2024
b66de77
Merge pull request #1336 from bbc/upstream/peripheral-device-settings…
nytamin Dec 11, 2024
83c11bf
chore: some minor changes
Julusian Dec 11, 2024
34d3f91
Merge pull request #1341 from bbc/upstream/tidying
jstarpl Dec 11, 2024
31d72ff
Merge pull request #1303 from bbc/upstream/server-side-notifications
jstarpl Dec 11, 2024
29c0800
chore: fix a typo in #getOrCategoryEntry
jstarpl Dec 11, 2024
b69478f
Merge pull request #1169 from bbc/feat/mos-openmedia-hot-standby
jstarpl Dec 11, 2024
d421e78
chore: update mos-connection
jstarpl Dec 11, 2024
847bf1c
Merge branch 'release51'
nytamin Dec 12, 2024
c1a9a02
Merge branch 'release51' into release52
nytamin Dec 12, 2024
2eafb6a
chore: fix crashing job-worker on startup
nytamin Dec 12, 2024
e6e9aa7
Partially revert "Merge pull request #1341 from bbc/upstream/tidying"…
nytamin Dec 12, 2024
ddab6df
fix: missing roboto font after scss cleanup
jstarpl Dec 12, 2024
a7d6999
fix(job-worker/playout): Hold mode doesn't work at all
jstarpl Dec 13, 2024
8292d96
fix: remove Meteor.absoluteUrl and proxy ddp through vite.
Julusian Dec 16, 2024
9903411
Merge pull request #1344 from bbc/upstream/header-auth-in-dev
nytamin Dec 16, 2024
0399c56
chore: add docs for distributed package-manager
Julusian Dec 11, 2024
44b475e
fix: package-manager publications forcing arguments
Julusian Dec 16, 2024
a56c1df
chore: improve logging, for troubleshooting
nytamin Dec 16, 2024
b9d59c2
chore: update wording
Julusian Dec 16, 2024
e9f21fb
feat: Evaluation form is optional in studio settings, with default tu…
olzzon Dec 17, 2024
315bb5e
Merge pull request #1347 from bbc/feat/option-to-disable-evaluation-form
jstarpl Dec 17, 2024
aa3332a
chore: review comments
Julusian Dec 17, 2024
e1c5105
Merge pull request #1345 from bbc/upstream/package-manager-docs-update
jstarpl Dec 17, 2024
b76691a
chore(docs): word capitalization
jstarpl Dec 17, 2024
7f1bc02
chore: fix typo
Julusian Dec 17, 2024
c6be9f5
Merge pull request #1348 from bbc/upstream/fix-typo-1347
jstarpl Dec 17, 2024
8704ff8
fix: sofie logo not showing in dev
Julusian Dec 18, 2024
c810d26
chore: convert some class react components to functional
Julusian Dec 18, 2024
8dc29c9
chore: refactor EditAttribute to hooks
Julusian Dec 18, 2024
8c5c933
chore: remove unused EditAttribute 'array' type
Julusian Dec 18, 2024
2bb0dc8
Merge pull request #1350 from bbc/upstream/fix-logo-not-showing-in-dev
jstarpl Dec 18, 2024
8a10914
chore: update tsr
jstarpl Dec 19, 2024
0d2b844
fix(PoGw): filter log output to ensure that message field in JSONL ou…
jstarpl Dec 19, 2024
8f0153e
feat: move next part should respect quickloop bounds
mint-dewit Nov 4, 2024
988274d
Merge pull request #1352 from nrkno/fix/sofie-3661/broken-hold
jstarpl Jan 7, 2025
4253eea
chore(release): 1.51.5
jstarpl Jan 7, 2025
462f20f
Merge branch 'release51' into release52
jstarpl Jan 7, 2025
b87cd9f
chore: add defaults
mint-dewit Jan 7, 2025
bd3aeaa
Merge pull request #1354 from bbc/upstream/feat-move-next-in-quickloop
jstarpl Jan 7, 2025
898d8ff
Merge branch 'release51' into test/release51
nytamin Jan 8, 2025
7bec461
feat: add in-out words to the VT type
olzzon Dec 4, 2024
6d7bdeb
feat: dummy VT preview on ON AIR playhead when arg ignore_piece_conte…
olzzon Dec 4, 2024
8c2eabd
feat: hack add in out work in floating inspector for testing without …
olzzon Dec 5, 2024
d234a78
feat: vt - inout add text in preview window
olzzon Dec 9, 2024
c3f0761
fix: css VT hover align in and out words
olzzon Dec 10, 2024
b17ec63
feat: css UI align hover preview
olzzon Dec 10, 2024
255c27c
Merge pull request #1353 from nrkno/fix/sofie-3679/pogw-log-output
jstarpl Jan 8, 2025
b20b4a4
Merge pull request #1351 from bbc/upstream/convert-some-components
nytamin Jan 8, 2025
cf72b49
feat: add ignoreQuickLoop as an optional attr in the openAPI
olzzon Jan 9, 2025
4346290
fix: in out words on VT should always be white
olzzon Jan 10, 2025
c77b6a5
fix: fixed width on inspector
olzzon Jan 10, 2025
cb59dd9
Merge pull request #1357 from bbc/upstream/feat-move-next-quickloop-a…
jstarpl Jan 10, 2025
b1045f9
fix: set nextPartInstance to null if it's referring to a Segment that…
nytamin Jan 13, 2025
90b0859
Merge remote-tracking branch 'origin/test/release51' into fix/sofie-3…
jstarpl Jan 14, 2025
b7645d7
chore: log output is based on an incorrect understanding of the flow,…
jstarpl Jan 14, 2025
872c528
chore: fix linter issue
jstarpl Jan 14, 2025
a6cbf80
Merge pull request #1358 from nrkno/fix/sofie-3626/delete-next-partIn…
jstarpl Jan 14, 2025
baacf0e
chore(release): 1.51.6
jstarpl Jan 14, 2025
74136f1
fix: solution in b1045f99 was actually wrong, we should protect the S…
jstarpl Jan 14, 2025
b480cc8
fix(updateNext): do the flow for no nextPartInstance or oprhaned === …
jstarpl Jan 14, 2025
1ef623a
chore: Tweaked size and margins of the numbered marker BBC has added …
hummelstrand Jan 15, 2025
ee11a91
chore: Made the Mini-shelf adlibs buttons less tall, and tweaked thei…
hummelstrand Jan 15, 2025
95eccdd
chore: Tweaked Mini Shelf button label padding. Commented out the spe…
hummelstrand Jan 16, 2025
1a639a8
chore: Updated Sofie's logo assets. Also optimized compression on oth…
hummelstrand Jan 16, 2025
9a7ddf5
chore: Removed SVG logo file that accidentally got duplicated to the …
hummelstrand Jan 20, 2025
ad370c1
Merge pull request #1360 from nrkno/fix/sofie-3626/better-delete-next…
jstarpl Jan 20, 2025
40b4cb9
Merge branch 'release51' into release52
jstarpl Jan 21, 2025
d718517
Merge pull request #1361 from hummelstrand/ui-tweaks
jstarpl Jan 21, 2025
d499893
fix: update mos-connection dependency: fixes an issue where ExternalM…
nytamin Jan 22, 2025
842a036
chore: doc
nytamin Jan 22, 2025
f35621d
Merge branch 'bbc/upstream/vt-in-out-words' into release52
nytamin Jan 22, 2025
a5d3101
Merge pull request #1363 from nrkno/fix/MosPayload-string-not-passed-…
nytamin Jan 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: config package manager from blueprints
olzzon authored and Julusian committed Oct 9, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 685364d5fd4af690a55292ba99ff8ecff386f893
2 changes: 1 addition & 1 deletion meteor/__mocks__/defaultCollectionObjects.ts
Original file line number Diff line number Diff line change
@@ -114,7 +114,7 @@ export function defaultStudio(_id: StudioId): DBStudio {
_rundownVersionHash: '',
routeSetsWithOverrides: wrapDefaultObject({}),
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),
previewContainerIds: [],
thumbnailContainerIds: [],
peripheralDeviceSettings: {
2 changes: 1 addition & 1 deletion meteor/server/api/rest/v1/typeConversion.ts
Original file line number Diff line number Diff line change
@@ -279,7 +279,7 @@
routeSetsWithOverrides: wrapDefaultObject({}),
_rundownVersionHash: '',
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),

Check warning on line 282 in meteor/server/api/rest/v1/typeConversion.ts

Codecov / codecov/patch

meteor/server/api/rest/v1/typeConversion.ts#L282

Added line #L282 was not covered by tests
previewContainerIds: [],
thumbnailContainerIds: [],
peripheralDeviceSettings: {
2 changes: 1 addition & 1 deletion meteor/server/api/studio/api.ts
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@
_rundownVersionHash: '',
routeSetsWithOverrides: wrapDefaultObject({}),
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),

Check warning on line 55 in meteor/server/api/studio/api.ts

Codecov / codecov/patch

meteor/server/api/studio/api.ts#L55

Added line #L55 was not covered by tests
thumbnailContainerIds: [],
previewContainerIds: [],
peripheralDeviceSettings: {
2 changes: 1 addition & 1 deletion meteor/server/migration/0_1_0.ts
Original file line number Diff line number Diff line change
@@ -447,7 +447,7 @@ export const addSteps = addMigrationSteps('0.1.0', [
_rundownVersionHash: '',
routeSetsWithOverrides: wrapDefaultObject({}),
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),
thumbnailContainerIds: [],
previewContainerIds: [],
peripheralDeviceSettings: {
43 changes: 42 additions & 1 deletion meteor/server/migration/X_X_X.ts
Original file line number Diff line number Diff line change
@@ -2,7 +2,11 @@
import { CURRENT_SYSTEM_VERSION } from './currentSystemVersion'
import { Studios } from '../collections'
import { convertObjectIntoOverrides } from '@sofie-automation/corelib/dist/settings/objectWithOverrides'
import { StudioRouteSet, StudioRouteSetExclusivityGroup } from '@sofie-automation/corelib/dist/dataModel/Studio'
import {
StudioRouteSet,
StudioRouteSetExclusivityGroup,
StudioPackageContainer,
} from '@sofie-automation/corelib/dist/dataModel/Studio'

/*
* **************************************************************************************
@@ -99,4 +103,41 @@
}
},
},
{
id: `convert packageContainers to ObjectWithOverrides`,
canBeRunAutomatically: true,
validate: async () => {
const studios = await Studios.findFetchAsync({ packageContainers: { $exists: true } })

for (const studio of studios) {
//@ts-expect-error packageContainers is not typed as ObjectWithOverrides
if (studio.packageContainers) {
return 'packageContainers must be converted to an ObjectWithOverrides'
}
}

return false
},
migrate: async () => {
const studios = await Studios.findFetchAsync({ packageContainers: { $exists: true } })

for (const studio of studios) {
//@ts-expect-error packageContainers is not typed as ObjectWithOverrides
if (!studio.packageContainers) continue
//@ts-expect-error packageContainers is not typed as ObjectWithOverrides
const oldPackageContainers = studio.packageContainers as any as Record<string, StudioPackageContainer>

const newPackageContainers = convertObjectIntoOverrides(oldPackageContainers)

await Studios.updateAsync(studio._id, {
$set: {
packageContainersWithOverrides: newPackageContainers,
},
$unset: {
packageContainers: 1,
},
})
}
},

Check warning on line 141 in meteor/server/migration/X_X_X.ts

Codecov / codecov/patch

meteor/server/migration/X_X_X.ts#L122-L141

Added lines #L122 - L141 were not covered by tests
},
])
6 changes: 3 additions & 3 deletions meteor/server/migration/__tests__/migrations.test.ts
Original file line number Diff line number Diff line change
@@ -132,7 +132,7 @@ describe('Migrations', () => {
_rundownVersionHash: '',
routeSetsWithOverrides: wrapDefaultObject({}),
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),
previewContainerIds: [],
thumbnailContainerIds: [],
peripheralDeviceSettings: {
@@ -170,7 +170,7 @@ describe('Migrations', () => {
_rundownVersionHash: '',
routeSetsWithOverrides: wrapDefaultObject({}),
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),
previewContainerIds: [],
thumbnailContainerIds: [],
peripheralDeviceSettings: {
@@ -208,7 +208,7 @@ describe('Migrations', () => {
_rundownVersionHash: '',
routeSetsWithOverrides: wrapDefaultObject({}),
routeSetExclusivityGroupsWithOverrides: wrapDefaultObject({}),
packageContainers: {},
packageContainersWithOverrides: wrapDefaultObject({}),
previewContainerIds: [],
thumbnailContainerIds: [],
peripheralDeviceSettings: {
Original file line number Diff line number Diff line change
@@ -17,6 +17,7 @@
import { logger } from '../../../logging'
import { ExpectedPackagesContentCache } from './contentCache'
import type { StudioFields } from './publication'
import { applyAndValidateOverrides } from '@sofie-automation/corelib/dist/settings/objectWithOverrides'

Check warning on line 20 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L20

Added line #L20 was not covered by tests

/**
* Regenerate the output for the provided ExpectedPackage `regenerateIds`, updating the data in `collection` as needed
@@ -37,6 +38,7 @@
): Promise<void> {
const updatedDocIds = new Set<PackageManagerExpectedPackageId>()
const missingExpectedPackageIds = new Set<ExpectedPackageId>()
const packageContainers = applyAndValidateOverrides(studio.packageContainersWithOverrides).obj

Check warning on line 41 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L41

Added line #L41 was not covered by tests

for (const packageId of regenerateIds) {
const packageDoc = contentCache.ExpectedPackages.findOne(packageId)
@@ -66,7 +68,8 @@
},
deviceId,
null,
Priorities.OTHER // low priority
Priorities.OTHER, // low priority
packageContainers

Check warning on line 72 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L71-L72

Added lines #L71 - L72 were not covered by tests
)

updatedDocIds.add(routedPackage._id)
@@ -105,6 +108,7 @@
): Promise<void> {
const updatedDocIds = new Set<PackageManagerExpectedPackageId>()
const missingPieceInstanceIds = new Set<PieceInstanceId>()
const packageContainers = applyAndValidateOverrides(studio.packageContainersWithOverrides).obj

Check warning on line 111 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L111

Added line #L111 was not covered by tests

for (const pieceInstanceId of regenerateIds) {
const pieceInstanceDoc = contentCache.PieceInstances.findOne(pieceInstanceId)
@@ -140,7 +144,8 @@
},
deviceId,
pieceInstanceId,
Priorities.OTHER // low priority
Priorities.OTHER, // low priority
packageContainers

Check warning on line 148 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L147-L148

Added lines #L147 - L148 were not covered by tests
)

updatedDocIds.add(routedPackage._id)
@@ -172,17 +177,21 @@
}

function generateExpectedPackageForDevice(
studio: Pick<StudioLight, '_id' | 'packageContainers' | 'previewContainerIds' | 'thumbnailContainerIds'>,
studio: Pick<
StudioLight,
'_id' | 'packageContainersWithOverrides' | 'previewContainerIds' | 'thumbnailContainerIds'
>,

Check warning on line 183 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L180-L183

Added lines #L180 - L183 were not covered by tests
expectedPackage: PackageManagerExpectedPackageBase,
deviceId: PeripheralDeviceId,
pieceInstanceId: PieceInstanceId | null,
priority: Priorities
priority: Priorities,
packageContainers: Record<string, StudioPackageContainer>

Check warning on line 188 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L187-L188

Added lines #L187 - L188 were not covered by tests
): PackageManagerExpectedPackage {
// Lookup Package sources:
const combinedSources: PackageContainerOnPackage[] = []

for (const packageSource of expectedPackage.sources) {
const lookedUpSource = studio.packageContainers[packageSource.containerId]
const lookedUpSource = packageContainers[packageSource.containerId]

Check warning on line 194 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L194

Added line #L194 was not covered by tests
if (lookedUpSource) {
combinedSources.push(calculateCombinedSource(packageSource, lookedUpSource))
} else {
@@ -199,7 +208,7 @@
}

// Lookup Package targets:
const combinedTargets = calculateCombinedTargets(studio, expectedPackage, deviceId)
const combinedTargets = calculateCombinedTargets(expectedPackage, deviceId, packageContainers)

Check warning on line 211 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L211

Added line #L211 was not covered by tests

if (!combinedSources.length && expectedPackage.sources.length !== 0) {
logger.warn(`Pub.expectedPackagesForDevice: No sources found for "${expectedPackage._id}"`)
@@ -253,14 +262,14 @@
return combinedSource
}
function calculateCombinedTargets(
studio: Pick<StudioLight, '_id' | 'packageContainers'>,
expectedPackage: PackageManagerExpectedPackageBase,
deviceId: PeripheralDeviceId
deviceId: PeripheralDeviceId,
packageContainers: Record<string, StudioPackageContainer>

Check warning on line 267 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L266-L267

Added lines #L266 - L267 were not covered by tests
): PackageContainerOnPackage[] {
const mappingDeviceId = unprotectString(deviceId)

let packageContainerId: string | undefined
for (const [containerId, packageContainer] of Object.entries<StudioPackageContainer>(studio.packageContainers)) {
for (const [containerId, packageContainer] of Object.entries<StudioPackageContainer>(packageContainers)) {

Check warning on line 272 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L272

Added line #L272 was not covered by tests
if (packageContainer.deviceIds.includes(mappingDeviceId)) {
// TODO: how to handle if a device has multiple containers?
packageContainerId = containerId
@@ -270,7 +279,7 @@

const combinedTargets: PackageContainerOnPackage[] = []
if (packageContainerId) {
const lookedUpTarget = studio.packageContainers[packageContainerId]
const lookedUpTarget = packageContainers[packageContainerId]

Check warning on line 282 in meteor/server/publications/packageManager/expectedPackages/generate.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/generate.ts#L282

Added line #L282 was not covered by tests
if (lookedUpTarget) {
// Todo: should the be any combination of properties here?
combinedTargets.push({
Original file line number Diff line number Diff line change
@@ -56,14 +56,14 @@
| '_id'
| 'routeSetsWithOverrides'
| 'mappingsWithOverrides'
| 'packageContainers'
| 'packageContainersWithOverrides'

Check warning on line 59 in meteor/server/publications/packageManager/expectedPackages/publication.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/publication.ts#L59

Added line #L59 was not covered by tests
| 'previewContainerIds'
| 'thumbnailContainerIds'
const studioFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<DBStudio, StudioFields>>>({
_id: 1,
routeSetsWithOverrides: 1,
mappingsWithOverrides: 1,
packageContainers: 1,
packageContainersWithOverrides: 1,

Check warning on line 66 in meteor/server/publications/packageManager/expectedPackages/publication.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/expectedPackages/publication.ts#L66

Added line #L66 was not covered by tests
previewContainerIds: 1,
thumbnailContainerIds: 1,
})
Original file line number Diff line number Diff line change
@@ -15,11 +15,12 @@
PeripheralDevicePubSub,
PeripheralDevicePubSubCollectionsNames,
} from '@sofie-automation/shared-lib/dist/pubsub/peripheralDevice'
import { applyAndValidateOverrides } from '@sofie-automation/corelib/dist/settings/objectWithOverrides'

Check warning on line 18 in meteor/server/publications/packageManager/packageContainers.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/packageContainers.ts#L18

Added line #L18 was not covered by tests

type StudioFields = '_id' | 'packageContainers'
type StudioFields = '_id' | 'packageContainersWithOverrides'

Check warning on line 20 in meteor/server/publications/packageManager/packageContainers.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/packageContainers.ts#L20

Added line #L20 was not covered by tests
const studioFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<DBStudio, StudioFields>>>({
_id: 1,
packageContainers: 1,
packageContainersWithOverrides: 1,

Check warning on line 23 in meteor/server/publications/packageManager/packageContainers.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/packageContainers.ts#L23

Added line #L23 was not covered by tests
})

interface PackageManagerPackageContainersArgs {
@@ -68,8 +69,9 @@

const packageContainers: { [containerId: string]: PackageContainer } = {}
if (studio) {
const studioPackageContainers = applyAndValidateOverrides(studio.packageContainersWithOverrides).obj

Check warning on line 72 in meteor/server/publications/packageManager/packageContainers.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/packageContainers.ts#L72

Added line #L72 was not covered by tests
for (const [containerId, studioPackageContainer] of Object.entries<StudioPackageContainer>(
studio.packageContainers
studioPackageContainers

Check warning on line 74 in meteor/server/publications/packageManager/packageContainers.ts

Codecov / codecov/patch

meteor/server/publications/packageManager/packageContainers.ts#L74

Added line #L74 was not covered by tests
)) {
packageContainers[containerId] = studioPackageContainer.container
}
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@ import {
getMediaObjectMediaId,
PieceContentStreamInfo,
checkPieceContentStatusAndDependencies,
PieceContentStatusStudio,
} from '../checkPieceContentStatus'
import {
PackageInfo,
@@ -31,12 +32,10 @@ import {
MediaStream,
MediaStreamType,
} from '@sofie-automation/shared-lib/dist/core/model/MediaObjects'
import { UIStudio } from '@sofie-automation/meteor-lib/dist/api/studios'
import { defaultStudio } from '../../../../__mocks__/defaultCollectionObjects'
import { testInFiber } from '../../../../__mocks__/helpers/jest'
import { MediaObjects } from '../../../collections'
import { PieceDependencies } from '../common'
import { DBStudio } from '@sofie-automation/corelib/dist/dataModel/Studio'
import { DEFAULT_MINIMUM_TAKE_SPAN } from '@sofie-automation/shared-lib/dist/core/constants'

const mockMediaObjectsCollection = MongoMock.getInnerMockCollection<MediaObject>(MediaObjects)
@@ -174,17 +173,14 @@ describe('lib/mediaObjects', () => {
}

const mockDefaultStudio = defaultStudio(protectString('studio0'))
const mockStudio: Complete<
Pick<DBStudio, '_id' | 'settings' | 'packageContainers' | 'previewContainerIds' | 'thumbnailContainerIds'> &
Pick<UIStudio, 'mappings' | 'routeSets'>
> = {
const mockStudio: Complete<PieceContentStatusStudio> = {
_id: mockDefaultStudio._id,
settings: mockStudioSettings,
packageContainers: mockDefaultStudio.packageContainers,
previewContainerIds: ['previews0'],
thumbnailContainerIds: ['thumbnails0'],
routeSets: applyAndValidateOverrides(mockDefaultStudio.routeSetsWithOverrides).obj,
mappings: applyAndValidateOverrides(mockDefaultStudio.mappingsWithOverrides).obj,
packageContainers: applyAndValidateOverrides(mockDefaultStudio.packageContainersWithOverrides).obj,
}

mockMediaObjectsCollection.insert(
Original file line number Diff line number Diff line change
@@ -173,11 +173,15 @@
pieceInstanceId?: PieceInstanceId
}
export interface PieceContentStatusStudio
extends Pick<DBStudio, '_id' | 'settings' | 'packageContainers' | 'previewContainerIds' | 'thumbnailContainerIds'> {
extends Pick<DBStudio, '_id' | 'settings' | 'previewContainerIds' | 'thumbnailContainerIds'> {
/** Mappings between the physical devices / outputs and logical ones */
mappings: MappingsExt
/** Route sets with overrides */
routeSets: Record<string, StudioRouteSet>
/** Contains settings for which Package Containers are present in the studio.
* (These are used by the Package Manager and the Expected Packages)
*/
packageContainers: Record<string, StudioPackageContainer>
}

export async function checkPieceContentStatusAndDependencies(
@@ -557,7 +561,7 @@
const sideEffect = getSideEffect(expectedPackage, studio)

thumbnailUrl = await getAssetUrlFromPackageContainerStatus(
studio,
studio.packageContainers,

Check warning on line 564 in meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts

Codecov / codecov/patch

meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts#L564

Added line #L564 was not covered by tests
getPackageContainerPackageStatus,
expectedPackageId,
sideEffect.thumbnailContainerId,
@@ -569,7 +573,7 @@
const sideEffect = getSideEffect(expectedPackage, studio)

previewUrl = await getAssetUrlFromPackageContainerStatus(
studio,
studio.packageContainers,

Check warning on line 576 in meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts

Codecov / codecov/patch

meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts#L576

Added line #L576 was not covered by tests
getPackageContainerPackageStatus,
expectedPackageId,
sideEffect.previewContainerId,
@@ -716,7 +720,7 @@
}

async function getAssetUrlFromPackageContainerStatus(
studio: PieceContentStatusStudio,
packageContainers: Record<string, StudioPackageContainer>,

Check warning on line 723 in meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts

Codecov / codecov/patch

meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts#L723

Added line #L723 was not covered by tests
getPackageContainerPackageStatus: (
packageContainerId: string,
expectedPackageId: ExpectedPackageId
@@ -727,7 +731,7 @@
): Promise<string | undefined> {
if (!assetContainerId || !packageAssetPath) return

const assetPackageContainer = studio.packageContainers[assetContainerId]
const assetPackageContainer = packageContainers[assetContainerId]

Check warning on line 734 in meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts

Codecov / codecov/patch

meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts#L734

Added line #L734 was not covered by tests
if (!assetPackageContainer) return

const previewPackageOnPackageContainer = await getPackageContainerPackageStatus(assetContainerId, expectedPackageId)
6 changes: 3 additions & 3 deletions meteor/server/publications/pieceContentStatusUI/common.ts
Original file line number Diff line number Diff line change
@@ -14,15 +14,15 @@
export type StudioFields =
| '_id'
| 'settings'
| 'packageContainers'
| 'packageContainersWithOverrides'
| 'previewContainerIds'
| 'thumbnailContainerIds'
| 'mappingsWithOverrides'
| 'routeSetsWithOverrides'
export const studioFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<DBStudio, StudioFields>>>({
_id: 1,
settings: 1,
packageContainers: 1,
packageContainersWithOverrides: 1,
previewContainerIds: 1,
thumbnailContainerIds: 1,
mappingsWithOverrides: 1,
@@ -113,10 +113,10 @@
return {
_id: studio._id,
settings: studio.settings,
packageContainers: studio.packageContainers,
previewContainerIds: studio.previewContainerIds,
thumbnailContainerIds: studio.thumbnailContainerIds,
mappings: applyAndValidateOverrides(studio.mappingsWithOverrides).obj,
routeSets: applyAndValidateOverrides(studio.routeSetsWithOverrides).obj,
packageContainers: applyAndValidateOverrides(studio.packageContainersWithOverrides).obj,

Check warning on line 120 in meteor/server/publications/pieceContentStatusUI/common.ts

Codecov / codecov/patch

meteor/server/publications/pieceContentStatusUI/common.ts#L120

Added line #L120 was not covered by tests
}
}
Loading
Loading