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

feat: mos status flow rework #1356

Draft
wants to merge 10 commits into
base: release53
Choose a base branch
from

Conversation

Julusian
Copy link
Contributor

@Julusian Julusian commented Jan 8, 2025

About the Contributor

This pull request is posted on behalf of the BBC

Type of Contribution

This is a: Feature

Current Behavior

Reporting statuses to a MOS NRCS is quite basic, limited to just sending PLAY events for stories as they are taken.

New Behavior

The status reporting is overhauled to support a full range of statuses, driven from both playback and ingest.
Additionally, status can now be reported for items as well as the stories.

To do this, a new custom publication has been added to be consumed by the MOS gateway. This publication is slightly mos based (the status levels it contains is based upon MOS), but it intended to be usable for other types of ingest gateways and NRCS systems.
This publication contains documents which follows a similar structure to an IngestRundown. Each 'Part' in this structure corresponds with a story/part as reported by the gateway. This 'Part' contains a few values which describe the status of the story and of any items. At this level it still reflects the raw values as provided by the playout and ingest logic, they have not been resolved into a single string/value at this point.
It is expected that the gateway will get an update to this document for each take performed, as the playback status of parts will change, as well as following any ingest operation.

Inside the gateway, we consume this publication and upon receiving a new version of it perform a diff. Through this, we compile a sequence of MOS messages we should send to report the correct status.

To ensure correct operation, at startup of the gateway, the gateway will write all the values to the NRCS, to ensure they are in sync.

As part of this, the MOS gateway has gained a few new options, to configure how this status writing is performed.
One of these options is to limit the diff to only produce PLAY statuses, so that it can be configured to match existing behaviour.

Testing

  • I have added one or more unit tests for this PR
  • I have updated the relevant unit tests
  • No unit test changes are needed for this PR

This has been tested against a non-production like openmedia installation. Testing against a production like openmedia has not been done yet, and no testing has been performed against other MOS systems.

This will want testing by NRK to ensure it produces PLAY messages in a way that is compatible with your existing workflow.

Affected areas

This PR affects the status reporting to MOS NRCS

Time Frame

Not urgent, but we would like to get this merged into the in-development release.

Other Information

Status

  • PR is ready to be reviewed.
  • The functionality has been tested by the author.
  • Relevant unit tests has been added / updated.
  • Relevant documentation (code comments, system documentation) has been added / updated.

Copy link

codecov bot commented Jan 8, 2025

Codecov Report

Attention: Patch coverage is 6.38298% with 880 lines in your changes missing coverage. Please review.

Project coverage is 57.31%. Comparing base (d7ca0ed) to head (a3e97c0).
Report is 1 commits behind head on release53.

Files with missing lines Patch % Lines
...or/server/publications/ingestStatus/publication.ts 0.00% 216 Missing and 1 partial ⚠️
...ications/ingestStatus/createIngestRundownStatus.ts 0.00% 194 Missing and 1 partial ⚠️
...ublications/ingestStatus/rundownContentObserver.ts 0.00% 149 Missing and 1 partial ⚠️
...ations/pieceContentStatusUI/rundown/publication.ts 0.00% 82 Missing ⚠️
.../publications/ingestStatus/reactiveContentCache.ts 0.00% 79 Missing and 1 partial ⚠️
...server/publications/partInstancesUI/publication.ts 0.00% 55 Missing ⚠️
meteor/server/publications/partsUI/publication.ts 0.00% 51 Missing ⚠️
...ver/publications/segmentPartNotesUI/publication.ts 0.00% 46 Missing ⚠️
meteor/server/publications/lib/rundownsObserver.ts 91.66% 3 Missing ⚠️
meteor/server/publications/_publications.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##           release53    #1356      +/-   ##
=============================================
+ Coverage      56.87%   57.31%   +0.43%     
=============================================
  Files            404      437      +33     
  Lines          73147    79261    +6114     
  Branches        4041     4854     +813     
=============================================
+ Hits           41603    45425    +3822     
- Misses         31410    33726    +2316     
+ Partials         134      110      -24     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Julusian Julusian added the Contribution from BBC Contributions sponsored by BBC (bbc.co.uk) label Jan 20, 2025
@nytamin nytamin added the Contribution External contribution label Jan 29, 2025
@nytamin nytamin changed the base branch from release52 to release53 February 4, 2025 14:17
@Julusian Julusian force-pushed the upstream/mos-status-flow-rework branch from 573389a to 2238ae3 Compare March 26, 2025 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Contribution from BBC Contributions sponsored by BBC (bbc.co.uk) Contribution External contribution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants