You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/documentation/docs/about-sofie.md
+4-6Lines changed: 4 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,18 +5,16 @@ sidebar_label: About Sofie
5
5
sidebar_position: 1
6
6
---
7
7
8
-
# NRK Sofie TV Automation System
8
+
# Sofie TV Automation System
9
9
10
10

11
11
12
-
_**Sofie**_ is a web-based TV automation system for studios and live shows, used in daily live TV news productions by the Norwegian public service broadcaster [**NRK**](https://www.nrk.no/about/) since September 2018.
12
+
_**Sofie**_ is a web-based TV automation system for studios and live shows. It has been used in daily live TV news productions since September 2018 by broadcasters such as [**NRK**](https://www.nrk.no/about/), the [**BBC**](https://www.bbc.com/aboutthebbc), and [**TV 2 (Norway)**](https://info.tv2.no/info/s/om-tv-2).
13
13
14
14
## Key Features
15
15
16
16
- User-friendly, modern web-based GUI
17
17
- State-based device control and playout of video, audio, and graphics
18
-
- Modular device-control architecture with support for several hardware \(and software\) setups
19
-
- Modular data-ingest architecture, supports MOS and Google spreadsheets
18
+
- Modular device-control architecture with support for various hardware and software setups
19
+
- Modular data-ingest architecture that supports MOS and Google spreadsheets
20
20
- Plug-in architecture for programming shows
21
-
22
-
_The NRK logo is a registered trademark of Norsk rikskringkasting AS. The license does not grant any right to use, in any way, any trademarks, service marks or logos of Norsk rikskringkasting AS._
Copy file name to clipboardExpand all lines: packages/documentation/docs/for-developers/contribution-guidelines.md
+27-17Lines changed: 27 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,17 +7,21 @@ sidebar_position: 2
7
7
8
8
# Contribution Guidelines
9
9
10
-
_Last updated september 2024_
10
+
_Last updated January 2026_
11
11
12
12
## About the Sofie TV Studio Automation Project
13
13
14
-
The Sofie project includes a number of open source applications and libraries developed and maintained by the Norwegian public service broadcaster, [NRK](https://www.nrk.no/about/). Sofie has been used to produce live shows at NRK since September 2018.
14
+
The Sofie project includes a number of open source applications and libraries originally developed by the Norwegian public service broadcaster, [NRK](https://www.nrk.no/about/). Sofie has been used in daily live TV news productions since September 2018 by broadcasters such as [**NRK**](https://www.nrk.no/about/), the [**BBC**](https://www.bbc.com/aboutthebbc), and [**TV 2 (Norway)**](https://info.tv2.no/info/s/om-tv-2).
15
15
16
-
A list of the "Sofie repositories" [can be found here](libraries.md). NRK owns the copyright of the contents of the official Sofie repositories, including the source code, related files, as well as the Sofie logo.
16
+
A list of the "Sofie repositories" [can be found here](libraries.md). The Sofie Governance organisation owns the copyright of the contents of the official Sofie repositories, including the source code, related files, as well as the Sofie logo.
17
17
18
-
The Sofie team at NRK is responsible for development and maintenance. We also do thorough testing of each release to avoid regressions in functionality and ensure interoperability with the various hardware and software involved.
18
+
The Sofie Governance organisation is responsible for development and maintenance. We also do thorough testing of each release to avoid regressions in functionality and ensure interoperability with the various hardware and software involved.
19
19
20
-
The Sofie team welcomes open source contributions and will actively work towards enabling contributions to become mergeable into the Sofie repositories. However, as main stakeholder and maintainer we reserve the right to refuse any contributions.
20
+
The Sofie team welcomes open source contributions and will actively work towards enabling contributions to become mergeable into the Sofie repositories. However, we reserve the right to refuse any contributions.
21
+
22
+
Sofie releases are targeted on a quarterly release cycle and are feature frozen six weeks before the release date, after which PRs that introduce new features are no longer accepted for that release.
23
+
24
+
Three weeks before release, all PRs for that release should be merged to allow for testing and bug fixing before release.
21
25
22
26
## About Contributions
23
27
@@ -29,26 +33,28 @@ Before you start, there are a few things you should know:
29
33
30
34
**Minor changes** (most bug fixes and small features) can be submitted directly as pull requests to the appropriate official repo.
31
35
32
-
However, Sofie is a big project with many differing users and use cases. **Larger changes** may be difficult to merge into an official repository if NRK and other contributors have not been made aware of their existence beforehand. Since figuring out what side-effects a new feature or a change may have for other Sofie users can be tricky, we advise opening an RFC issue (_Request for Comments_) early in your process. Good moments to open an RFC include:
33
-
* When a user need is identified and described
34
-
* When you have a rough idea about how a feature may be implemented
35
-
* When you have a sketch of how a feature could look like to the user
36
+
However, Sofie is a big project with many differing users and use cases. **Larger changes** may be difficult to merge into an official repository if the Sofie Governance team and other contributors have not been made aware of their existence beforehand. Since figuring out what side-effects a new feature or a change may have for other Sofie users can be tricky, we advise opening an RFC issue (_Request for Comments_) early in your process. Good moments to open an RFC include:
37
+
38
+
- When a user need is identified and described
39
+
- When you have a rough idea about how a feature may be implemented
40
+
- When you have a sketch of how a feature could look like to the user
36
41
37
42
To facilitate timely handling of larger contributions, there’s a workflow intended to keep an open dialogue between all interested parties:
38
43
39
44
1. Contributor opens an RFC (as a _GitHub issue_) in the appropriate repository.
40
-
2.NRK evaluates the RFC, usually within a week.
41
-
3. If needed, NRK establishes contact with the RFC author, who will be invited to a workshop where the RFC is discussed. Meeting notes are published publicly on the RFC thread.
45
+
2.The Sofie Technical Steering Committee (TSC) evaluates the RFC, usually within two weeks.
46
+
3. If needed, the TSC establishes contact with the RFC author, who will be invited to a workshop where the RFC is discussed. Meeting notes are published publicly on the RFC thread.
42
47
4. Discussions about the RFC continue as needed, either in workshops or in comments in the RFC thread.
43
48
5. The contributor references the RFC when a pull request is ready.
44
49
45
-
It will be very helpful if your RFC includes specific use-cases that you are facing. Providing a background on how your users are using Sofie can clear up situations in which certain phrases or processes may be ambiguous. If during your process you have already identified various solutions as favorable or unfavorable, offering this context will move the discussion further still.
50
+
It will be very helpful if your RFC includes specific usecases that you are facing. Providing a background on how your users are using Sofie can clear up situations in which certain phrases or processes may be ambiguous. If during your process you have already identified various solutions as favorable or unfavorable, offering this context will move the discussion further still.
46
51
47
52
Via the RFC process, we're looking to maximize involvement from various stakeholders, so you probably don't need to come up with a very detailed design of your proposed change or feature in the RFC. An end-user oriented description will be most valuable in creating a constructive dialogue, but don't shy away from also adding a more technical description, if you find that will convey your ideas better.
48
53
49
54
### Base contributions on the in-development branch
50
55
51
56
In order to facilitate merging, we ask that contributions are based on the latest (at the time of the pull request) _in-development_ branch (often named `release*`).
57
+
52
58
See **CONTRIBUTING.md** in each official repository for details on which branch to use as a base for contributions.
53
59
54
60
## Developer Guidelines
@@ -65,14 +71,18 @@ All official Sofie repositories use TypeScript. When you contribute code, be sur
65
71
66
72
Most of the projects use a linter (eslint) and a formatter (prettier). Before submitting a pull request, please make sure it conforms to the linting rules by running yarn lint. yarn lint --fix can fix most of the issues.
67
73
74
+
### Tests
75
+
76
+
See **CONTRIBUTING.md** in each official repository for details on the level of unit tests required for contribution to that repository.
77
+
68
78
### Documentation
69
79
70
80
We rely on two types of documentation; the [Sofie documentation](https://sofie-automation.github.io/sofie-core/) ([source code](https://github.com/Sofie-Automation/sofie-core/tree/main/packages/documentation)) and inline code documentation.
71
81
72
82
We don't aim to have the "absolute perfect documentation possible", BUT we do try to improve and add documentation to have a good-enough-to-be-comprehensible standard. We think that:
73
83
74
84
-_What_ something does is not as important – we can read the code for that.
75
-
-_Why_ something does something, **is** important. Implied usage, side-effects, descriptions of the context etcetera...
85
+
-_Why_ something does something, **is** important. Implied usage, side-effects, descriptions of the context etc....
76
86
77
87
When you contribute, we ask you to also update any documentation where needed.
78
88
@@ -82,7 +92,7 @@ When updating dependencies in a library, it is preferred to do so via `yarn upgr
82
92
83
93
Be careful when bumping across major versions.
84
94
85
-
Also, each of the libraries has a minimum nodejs version specified in their package.json. Care must be taken when updating dependencies to ensure its compatibility is retained.
95
+
Also, each of the libraries has a minimum Node.js version specified in their package.json. Care must be taken when updating dependencies to ensure its compatibility is retained.
86
96
87
97
### Resolutions
88
98
@@ -92,10 +102,10 @@ When updating other dependencies, it is a good idea to make sure that the resolu
92
102
93
103
### Logging
94
104
95
-
When logging, we try to adher to the following guideliness:
105
+
When logging, we try to adhere to the following guidelines:
96
106
97
-
Usage of `console.log` and `console.error` directly is discouraged (except for quick debugging locally). Instead, use one of the logger libraries (to output json logs which are easier to index).
98
-
When logging, use one of the **log level** described below:
107
+
Usage of `console.log` and `console.error` directly is discouraged (except for quick debugging locally). Instead, use one of the logger libraries (to output JSON logs which are easier to index).
108
+
When logging, use one of the **log levels** described below:
Copy file name to clipboardExpand all lines: packages/documentation/docs/for-developers/for-blueprint-developers/sync-ingest-changes.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,11 +12,11 @@ In this blueprint method, you are able to update almost any of the properties th
12
12
13
13
### Tips
14
14
15
-
- You should make use of the `metaData` fields on each Part and Piece to help work out what has changed. At NRK, we store the parsed ingest data (after converting the MOS to an intermediary json format) for the Part here, so that we can do a detailed diff to figure out whether a change is safe to accept.
15
+
- You should make use of the `metaData` fields on each Part and Piece to help work out what has changed. At NRK, the parsed ingest data is stored (after converting the MOS to an intermediary json format) for the Part here, so that we can do a detailed diff to figure out whether a change is safe to accept.
16
16
17
17
- You should track in `metaData` whether a part has been modified by an adlib-action in a way that makes this sync unsafe.
18
18
19
-
- At NRK, we differentiate the Pieces into `primary`, `secondary`, `adlib`. This allows us to control the updates more granularly.
19
+
- At NRK, Pieces are differentiated into `primary`, `secondary`, `adlib`. This allows more granular control of updates.
20
20
21
21
-`newData.part` will be `undefined` when the PartInstance is orphaned. Generally, it's useful to differentiate the behavior of the implementation of this function based on `existingPartInstance.partInstance.orphaned` state
-[**CasparCG Launcher**](https://github.com/Sofie-Automation/sofie-casparcg-launcher) Launcher, controller, and logger for CasparCG Server.
51
-
-[**CasparCG Media Scanner**\(NRK fork\)](https://github.com/nrkno/sofie-casparcg-server) Sofie-specific fork of CasparCG Server 2.2 Media Scanner.
51
+
-[**CasparCG Media Scanner**](https://github.com/CasparCG/media-scanner)CasparCG Media Scanner.
52
52
-[**Sofie Chef**](https://github.com/Sofie-Automation/sofie-chef) A simple Chromium based renderer, used for kiosk mode rendering of web pages.
53
53
-[**Media Manager**](https://github.com/nrkno/sofie-media-management)_(deprecated)_ Handles media transfer and media file management for pulling new files and deleting expired files on playout devices.
54
54
-[**Quantel Browser Plugin**](https://github.com/Sofie-Automation/sofie-quantel-browser-plugin) MOS-compatible Quantel video clip browser for use with Sofie.
55
-
-[**Sisyfos Audio Controller**](https://github.com/nrkno/sofie-sisyfos-audio-controller)_developed by [*olzzon*](https://github.com/olzzon/)_
55
+
-[**Sisyfos Audio Controller**](https://github.com/Sofie-Automation/sofie-sisyfos-audio-controller)_developed by [*olzzon*](https://github.com/olzzon/)_
56
56
-[**Quantel Gateway**](https://github.com/Sofie-Automation/sofie-quantel-gateway) CORBA to REST gateway for _Quantel/ISA_ playback.
Copy file name to clipboardExpand all lines: packages/documentation/docs/user-guide/further-reading.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,10 +39,10 @@ description: This guide has a lot of links. Here they are all listed by section.
39
39
40
40
#### Installing CasparCG Server for Sofie
41
41
42
-
-NRK's version of [CasparCG Server](https://github.com/nrkno/sofie-casparcg-server/releases) on GitHub.
43
-
-[Media Scanner](https://github.com/Sofie-Automation/sofie-casparcg-launcher/releases) on GitHub.
44
-
-[CasparCG Launcher](https://github.com/Sofie-Automation/sofie-casparcg-launcher) on GitHub.
45
-
-[Microsoft Visual C++ 2015 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=52685) on Microsoft's website.
42
+
-[CasparCG Server](https://github.com/CasparCG/server/releases) on GitHub.
43
+
-[Media Scanner](https://github.com/CasparCG/media-scanner/releases) on GitHub.
44
+
-[CasparCG Launcher](https://github.com/Sofie-Automation/sofie-casparcg-launcher/releases) on GitHub.
45
+
-[Microsoft Visual C++ 2017 Redistributable](https://aka.ms/vc14/vc_redist.x64.exe) on Microsoft's website.
46
46
-[Blackmagic Design's DeckLink Cards](https://www.blackmagicdesign.com/products/decklink/models) on Blackmagic Design's website. Check the [DeckLink cards](installation/installing-connections-and-additional-hardware/casparcg-server-installation.md#decklink-cards) section for compatibility.
47
47
-[Installing a DeckLink Card](https://documents.blackmagicdesign.com/UserManuals/DesktopVideoManual.pdf) as a PDF.
48
48
-[Blackmagic Design 'Desktop Video' Driver Download](https://www.blackmagicdesign.com/support/family/capture-and-playback) on Blackmagic Design's website.
Copy file name to clipboardExpand all lines: packages/documentation/docs/user-guide/installation/installing-connections-and-additional-hardware/casparcg-server-installation.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -214,8 +214,8 @@ In the _Attached Sub Devices_ section, you should now see the status of the Casp
214
214
215
215
## Further Reading
216
216
217
-
-[CasparCG Server Releases](https://github.com/nrkno/sofie-casparcg-server/releases) on GitHub.
218
-
-[Media Scanner Releases](https://github.com/nrkno/sofie-media-scanner/releases) on GitHub.
217
+
-[CasparCG Server Releases](https://github.com/CasparCG/server/releases) on GitHub.
218
+
-[Media Scanner Releases](https://github.com/CasparCG/media-scanner/releases) on GitHub.
219
219
-[CasparCG Launcher](https://github.com/Sofie-Automation/sofie-casparcg-launcher) on GitHub.
220
220
-[Microsoft Visual C++ 2015 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=52685) on Microsoft's website.
221
221
-[Blackmagic Design's DeckLink Cards](https://www.blackmagicdesign.com/products/decklink/models) on Blackmagic's website. Check the [DeckLink cards](casparcg-server-installation.md#decklink-cards) section for compatibility.
'Sofie is a web-based, open\xa0source TV\xa0automation system for studios and live shows, used in daily live\xa0TV\xa0news productions by the Norwegian public\xa0service broadcaster NRK since September\xa02018.',
9
+
'Sofie is a web-based, open-source TV automation system for studios and live shows. Since September 2018, it has been used in daily live TV news productions by broadcasters such as NRK, the BBC, and TV 2 (Norway).',
0 commit comments