Skip to content

Commit acf7942

Browse files
author
Mint de Wit
authored
Merge branch 'release51' into chore/openapi-ci
2 parents 5b87e18 + 3374f2b commit acf7942

File tree

1,069 files changed

+65053
-45160
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,069 files changed

+65053
-45160
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @nrkno/sofieteam

.github/ISSUE_TEMPLATE/rfc.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Request for Comments ❗
2-
description: Use this to initiate a discussion about a new feature or a larger change
2+
description: Use this to initiate a discussion about a new feature or a larger change.
33
title: "RFC: [Short description of the feature/change]"
44
labels:
55
- RFC
@@ -14,15 +14,15 @@ body:
1414
1515
- type: textarea
1616
attributes:
17-
label: About me
17+
label: About Me
1818
description: Tell us who / which organization you are representing, and how the Sofie team will be able to contact you.
1919
placeholder: Example "This RFC is posted on behalf of the NRK."
2020
validations:
2121
required: true
2222

2323
- type: textarea
2424
attributes:
25-
label: Use case
25+
label: Use Case
2626
description: "Please write some background information here, such as: What is your use case? What problem are you trying to solve?"
2727
validations:
2828
required: true

.github/PULL-REQUEST-TEMPLATE.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,27 @@ What is the new behavior?
3030
-->
3131

3232

33-
## Testing Instructions
33+
## Testing
3434
<!--
35-
Please provide some instructions and other information for how to verify that the feature works.
35+
When you add a feature, you should also provide relevant unit tests, in order to
36+
* ensure that the feature works as expected
37+
* ensure that the feature will continue to work in the future
38+
-->
39+
40+
- [ ] I have added one or more unit tests for this PR
41+
- [ ] I have updated the relevant unit tests
42+
- [ ] No unit test changes are needed for this PR
43+
44+
### Affected areas
45+
46+
<!--
47+
Please provide some details on what areas of the system that are affected by this PR.
48+
This is useful for testers to know where to focus their testing efforts.
3649
Examples:
37-
* "Do a Take for a part that contains an adlib, verify that the adlib plays out."
38-
* "Open the Switchboard panel and toggle a route, verify that the route toggles in the GUI."
39-
* "This feature also affects 'feature X', so that needs to be tested for regressions as well."
50+
* This PR affects the playout logic in general.
51+
* This PR affects the timing calculation in the Rundown during playout.
52+
* This PR affects the NRC/MOS integration
53+
*
4054
-->
4155

4256

.github/actions/setup-meteor/action.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: "Setup Meteor"
33
runs:
44
using: "composite"
55
steps:
6-
- run: curl "https://install.meteor.com/?release=2.7.3" | sh
6+
- run: curl "https://install.meteor.com/?release=2.13.3" | sh
77
shell: bash
88
- run: meteor npm install -g yarn
99
shell: bash

.github/workflows/node.yaml

Lines changed: 72 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ jobs:
4242
- name: Run typecheck and linter
4343
run: |
4444
cd meteor
45+
46+
# setup zodern:types. No linters are setup, so this simply installs the packages
47+
meteor lint
48+
4549
meteor yarn ci:lint
4650
env:
4751
CI: true
@@ -77,6 +81,10 @@ jobs:
7781
- name: Run Tests
7882
run: |
7983
cd meteor
84+
85+
# setup zodern:types. No linters are setup, so this simply installs the packages
86+
meteor lint
87+
8088
NODE_OPTIONS="--max-old-space-size=6144" meteor yarn unitci --force-exit
8189
env:
8290
CI: true
@@ -204,7 +212,7 @@ jobs:
204212
password: ${{ secrets.GITHUB_TOKEN }}
205213
- name: Build and push to GHCR
206214
if: steps.check-build-and-push.outputs.enable == 'true' && steps.check-ghcr.outputs.enable == 'true' && steps.ghcr-tag.outputs.tags != 0
207-
uses: docker/build-push-action@v5
215+
uses: docker/build-push-action@v6
208216
with:
209217
context: .
210218
file: ./meteor/Dockerfile.circle
@@ -215,7 +223,7 @@ jobs:
215223
github-token: ${{ github.token }}
216224
- name: Build and push to DockerHub
217225
if: steps.check-build-and-push.outputs.enable == 'true' && steps.dockerhub.outputs.dockerhub-publish == '1'
218-
uses: docker/build-push-action@v5
226+
uses: docker/build-push-action@v6
219227
with:
220228
context: .
221229
file: ./meteor/Dockerfile.circle
@@ -231,7 +239,7 @@ jobs:
231239
echo "image=$image" >> $GITHUB_OUTPUT
232240
- name: Trivy scanning
233241
if: steps.check-build-and-push.outputs.enable == 'true' && steps.check-ghcr.outputs.enable == 'true' && steps.ghcr-tag.outputs.tags != 0
234-
uses: aquasecurity/trivy-action@0.17.0
242+
uses: aquasecurity/trivy-action@0.24.0
235243
with:
236244
image-ref: "${{ steps.trivy-image.outputs.image }}"
237245
format: "table"
@@ -354,7 +362,7 @@ jobs:
354362
password: ${{ secrets.GITHUB_TOKEN }}
355363
- name: Build and push to GHCR
356364
if: steps.check-build-and-push.outputs.enable == 'true' && steps.check-ghcr.outputs.enable == 'true' && steps.ghcr-tag.outputs.tags != 0
357-
uses: docker/build-push-action@v5
365+
uses: docker/build-push-action@v6
358366
with:
359367
context: ./packages
360368
file: ./packages/${{ matrix.gateway-name }}/Dockerfile.circle
@@ -364,7 +372,7 @@ jobs:
364372
tags: "${{ steps.ghcr-tag.outputs.tags }}"
365373
- name: Build and push to DockerHub
366374
if: steps.check-build-and-push.outputs.enable == 'true' && steps.dockerhub.outputs.dockerhub-publish == '1'
367-
uses: docker/build-push-action@v5
375+
uses: docker/build-push-action@v6
368376
with:
369377
context: ./packages
370378
file: ./packages/${{ matrix.gateway-name }}/Dockerfile.circle
@@ -380,7 +388,7 @@ jobs:
380388
echo "image=$image" >> $GITHUB_OUTPUT
381389
- name: Trivy scanning
382390
if: steps.check-build-and-push.outputs.enable == 'true' && steps.check-ghcr.outputs.enable == 'true' && steps.ghcr-tag.outputs.tags != 0
383-
uses: aquasecurity/trivy-action@0.17.0
391+
uses: aquasecurity/trivy-action@0.24.0
384392
with:
385393
image-ref: "${{ steps.trivy-image.outputs.image }}"
386394
format: "table"
@@ -459,7 +467,7 @@ jobs:
459467
- blueprints-integration
460468
- server-core-integration
461469
- shared-lib
462-
node-version: [14.x, 16.x, 18.x]
470+
node-version: [14.x, 16.x, 18.x, 20.x]
463471
include:
464472
# include additional configs, to run certain packages only for a certain version of node
465473
- node-version: 14.x
@@ -473,6 +481,8 @@ jobs:
473481
package-name: openapi
474482
- node-version: 18.x
475483
package-name: openapi
484+
- node-version: 20.x
485+
package-name: openapi
476486
# No tests for the gateways yet
477487
# - node-version: 18.x
478488
# package-name: playout-gateway
@@ -515,6 +525,60 @@ jobs:
515525
env:
516526
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
517527

528+
asyncapi-generation:
529+
name: AsyncAPI Generation
530+
runs-on: ubuntu-latest
531+
timeout-minutes: 15
532+
steps:
533+
- uses: actions/checkout@v4
534+
with:
535+
persist-credentials: false
536+
- name: Use Node.js
537+
uses: actions/setup-node@v4
538+
with:
539+
node-version-file: ".node-version"
540+
- name: Prepare Environment
541+
run: |
542+
cd packages
543+
yarn
544+
env:
545+
CI: true
546+
- name: Run generator
547+
run: |
548+
cd packages/live-status-gateway
549+
550+
yarn gendocs
551+
yarn genserver
552+
env:
553+
CI: true
554+
openapi-generation:
555+
name: OpenAPI Generation
556+
runs-on: ubuntu-latest
557+
timeout-minutes: 15
558+
steps:
559+
- uses: actions/checkout@v4
560+
with:
561+
persist-credentials: false
562+
- name: Use Node.js
563+
uses: actions/setup-node@v4
564+
with:
565+
node-version-file: ".node-version"
566+
- name: Prepare Environment
567+
run: |
568+
cd packages
569+
yarn
570+
env:
571+
CI: true
572+
- name: Run generator
573+
run: |
574+
cd packages/openapi
575+
576+
yarn gendocs
577+
yarn genserver
578+
yarn genclient:ts
579+
env:
580+
CI: true
581+
518582
publish-docs:
519583
name: Publish Docs
520584
runs-on: ubuntu-latest
@@ -558,7 +622,7 @@ jobs:
558622
CI: true
559623
- name: Publish
560624
if: github.ref == 'refs/heads/master' # always publish for just the master branch
561-
uses: peaceiris/actions-gh-pages@v3
625+
uses: peaceiris/actions-gh-pages@v4
562626
with:
563627
github_token: ${{ secrets.GITHUB_TOKEN }}
564628
publish_dir: ./packages/documentation/build

.github/workflows/prerelease-libs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
- blueprints-integration
5454
- server-core-integration
5555
- shared-lib
56-
node-version: [14.x, 16.x, 18.x]
56+
node-version: [14.x, 16.x, 18.x, 20.x]
5757

5858
steps:
5959
- uses: actions/checkout@v4

.github/workflows/sonar.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ jobs:
1212
sonarcloud:
1313
name: SonarCloud
1414
runs-on: ubuntu-latest
15-
if: ${{ github.repository_owner == 'nrkno' }}
15+
if: ${{ github.repository_owner == 'nrkno' && !github.event.pull_request.head.repo.fork }}
16+
timeout-minutes: 15
1617

1718
steps:
1819
- uses: actions/checkout@v4

.github/workflows/trivy.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@ jobs:
1111
strategy:
1212
matrix:
1313
image: ["server-core", "playout-gateway", "mos-gateway"]
14+
timeout-minutes: 15
15+
1416
steps:
1517
- name: Run Trivy vulnerability scanner (json)
16-
uses: aquasecurity/trivy-action@0.17.0
18+
uses: aquasecurity/trivy-action@0.24.0
1719
with:
1820
image-ref: ghcr.io/nrkno/sofie-core-${{ matrix.image }}:latest
1921
format: json
2022
output: '${{ matrix.image }}-trivy-scan-results.json'
2123

2224
- name: Run Trivy vulnerability scanner (table)
23-
uses: aquasecurity/trivy-action@0.17.0
25+
uses: aquasecurity/trivy-action@0.24.0
2426
with:
2527
image-ref: ghcr.io/nrkno/sofie-core-${{ matrix.image }}:latest
2628
output: '${{ matrix.image }}-trivy-scan-results.txt'
@@ -36,7 +38,7 @@ jobs:
3638
echo $CODE_BLOCK >> $GITHUB_STEP_SUMMARY
3739
3840
- name: Run Trivy in GitHub SBOM mode and submit results to Dependency Graph
39-
uses: aquasecurity/trivy-action@0.17.0
41+
uses: aquasecurity/trivy-action@0.24.0
4042
with:
4143
format: 'github'
4244
output: 'dependency-results-${{ matrix.image }}.sbom.json'
@@ -54,7 +56,7 @@ jobs:
5456
echo ${{ env.SUMMARY }}
5557
5658
- name: Send Slack Notification
57-
uses: slackapi/slack-github-action@v1.25.0
59+
uses: slackapi/slack-github-action@v1.26.0
5860
with:
5961
payload: |
6062
{

DEVELOPER.md

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@ Follow these instructions to start up Sofie Core in development mode. (For produ
1818

1919
### Prerequisites
2020

21-
- Install [Node.js](https://nodejs.org) 18 (14 should also work) (using [nvm](https://github.com/nvm-sh/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows) is the recommended way to install Node.js)
22-
- If on Windows: `npm install --global windows-build-tools`
23-
- Install [Meteor](https://www.meteor.com/install) (`npm install --global meteor`)
21+
- Install [Node.js](https://nodejs.org) 14 (using [nvm](https://github.com/nvm-sh/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows) is the recommended way to install Node.js)
22+
- Install [Meteor](https://www.meteor.com/install) (`npm install --global meteor@2`)
23+
- Install [Node.js](https://nodejs.org) 18 (using the same method you used above, you can uninstall node 14 if needed)
24+
- Install an older version of corepack (`npm install --global [email protected]`)
2425
- Enable [corepack](https://nodejs.org/api/corepack.html#corepack) (`corepack enable`) as administrator/root. If `corepack` is not found, you may need to install it first with `npm install --global corepack`
2526

27+
- If on Windows, you may need to `npm install --global windows-build-tools` but this is not always necessary
28+
2629
### Quick Start
2730

2831
```bash
@@ -129,6 +132,30 @@ The resulting JSON file will be placed in `meteor/public/locales/xx`, where it w
129132

130133
Then submit this as a PR.
131134

135+
## Deprecations
136+
137+
### ConfigManifests
138+
139+
The ConfigManifests for Blueprints and Gateways was replaced with JSONSchema in R50.
140+
However, one usage by AdlibActions for their userDataManifest remains as this is not something we are actively using.
141+
142+
## Blueprint Migrations
143+
144+
In R49, a replacement flow was added consisting of `validateConfig` and `applyConfig`.
145+
It is no longer recommended to use the old migrations flow for showstyle and studio blueprints.
146+
147+
### ExpectedMediaItems
148+
149+
These are used for Media-manager which is no longer being developed.
150+
151+
### Blueprints: getPieceABSessionId & getTimelineObjectAbSessionId
152+
153+
With AB being a native concept supported by Sofie since R50, these are likely no longer useful to Blueprints.
154+
155+
### MongoQuery `fields` specifier
156+
157+
It is recommended to use `projection` instead, as it is functionally identical but follows recommended naming from mongodb.
158+
132159
## Other info
133160

134161
### Version-Numbering Scheme

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ This is the _Core_ application of the [**Sofie** TV Automation System](https://g
44

55
The _Core_ is a _Meteor/Node.JS_-based web server that serves the web GUIs as well as handling the business logic for the Sofie system.
66

7-
* [_Core_-specific Developer Info](DEVELOPER.md)
8-
7+
- [_Core_-specific Developer Info](DEVELOPER.md)
98

109
## General Sofie System Information
11-
* [_Sofie_ Documentation](https://nrkno.github.io/sofie-core/)
12-
* [_Sofie_ Releases](https://nrkno.github.io/sofie-core/releases)
13-
* [Contribution Guidelines](CONTRIBUTING.md)
14-
* [License](LICENSE)
10+
11+
- [_Sofie_ Documentation](https://nrkno.github.io/sofie-core/)
12+
- [_Sofie_ Releases](https://nrkno.github.io/sofie-core/releases)
13+
- [Contribution Guidelines](CONTRIBUTING.md)
14+
- [License](LICENSE)
1515

1616
---
1717

0 commit comments

Comments
 (0)