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 190 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
190 commits
Select commit Hold shift + click to select a range
0140ac5
wip(SOFIE-69): looping section
ianshade Dec 11, 2023
199b8b1
wip(SOFIE-69): appearance of the looping section
ianshade Dec 14, 2023
225b03c
wip(SOFIE-69): improve finding next part
ianshade Dec 19, 2023
6ac90d5
wip(SOFIE-69): improve loop markers in timeline view
ianshade Dec 19, 2023
079293a
wip(SOFIE-69): style line parts
ianshade Dec 20, 2023
971c7d3
wip(SOFIE-69): more styling
ianshade Dec 21, 2023
adf027a
wip(SOFIE-69): appearance tweaks
ianshade Dec 22, 2023
a1194ee
wip(SOFIE-69): fix dots when loop start and end order is reversed
ianshade Dec 22, 2023
49a6487
wip(SOFIE-69): legacy looping to new looping
ianshade Jan 5, 2024
e936479
wip(SOFIE-69): alow extending loop by dynamically inserting parts
ianshade Jan 5, 2024
262b7a8
wip(SOFIE-69): fix extending a single-part loop with dynamically inse…
ianshade Jan 8, 2024
68f790e
wip(SOFIE-69): reset pieceInstances alongside partInstances when leav…
ianshade Jan 9, 2024
dfb8d27
wip(SOFIE-69): reset part overrides when clearing the loop
ianshade Jan 9, 2024
216287d
Merge remote-tracking branch 'origin/release51' into feat/quickLoop
ianshade Jan 11, 2024
41d021c
Merge remote-tracking branch 'origin/release51' into feat/quickLoop
ianshade Jan 12, 2024
c03f3ba
wip(SOFIE-69): hide quickloop context menu when locked
ianshade Jan 15, 2024
a904c59
wip(SOFIE-69): rename css class
ianshade Jan 15, 2024
4d084de
wip(SOFIE-69): metaData is now privateData
ianshade Jan 15, 2024
fb46080
wip(SOFIE-69): rename css class
ianshade Jan 15, 2024
562ea2b
wip(SOFIE-69): disable dots when looping entire playlist
ianshade Jan 15, 2024
134938d
wip(SOFIE-69): invalid parts when forcing autonext and make quickloop…
ianshade Jan 15, 2024
f0fe93c
wip(SOFIE-69): deduplicate partInstances when looping a single part
ianshade Jan 15, 2024
7227fdb
wip(SOFIE-69): make meteor tests pass; remove unused property
ianshade Jan 19, 2024
55b7546
wip(SOFIE-69): make package tests pass
ianshade Jan 19, 2024
7ff22b2
Merge remote-tracking branch 'origin/release51' into feat/quickLoop
ianshade Jan 19, 2024
84082c0
wip(SOFIE-69): move findPartInstancesInQuickLoop and add tests
ianshade Jan 30, 2024
e9bdf70
wip(SOFIE-69): refactor; add tests for selectNextPart
ianshade Jan 31, 2024
528694d
wip(SOFIE-69): add fallbackPartDuration; refactor quickloop
ianshade Jan 31, 2024
81fb057
wip(SOFIE-69): changing next part when moving markers
ianshade Feb 1, 2024
06eb35b
Merge remote-tracking branch 'origin/release51' into feat/quickLoop
ianshade Feb 1, 2024
1af9cfd
wip(SOFIE-69): fix changing next when moving markers
ianshade Feb 1, 2024
951a79c
wip(SOFIE-69): solve wrong marker order
ianshade Feb 1, 2024
9b53aa2
refactor(SOFIE-69): code improvements from PR comments
ianshade Feb 26, 2024
5fbea60
fix(SOFIE-69): wrong defaults in calls to selectNextPart
ianshade Feb 26, 2024
31ddb92
refactor(SOFIE-69): overridenProperties type, based on PR review comm…
ianshade Feb 26, 2024
f6cc8d0
refactor(SOFIE-69): extract quickLoop methods from PlayoutModelImpl
ianshade Feb 26, 2024
4b41445
chore: minor fixes after PR discussion
nytamin Apr 12, 2024
36dc3ce
refactor: move UIParts to the client-side of meteor
ianshade Apr 22, 2024
a793397
perf: track invalidated segments and parts in UIParts publication
ianshade May 7, 2024
398ecd1
wip: turn partInstances into a custom uiPartInstances publication
ianshade Jun 27, 2024
d8dd003
wip: move webui to separate package in monorepo, bundled with vite SO…
Julusian Jul 25, 2024
e79a82d
chore: enable webui lint
Julusian Aug 1, 2024
28943a7
chore: release 52 version bump
nytamin Aug 19, 2024
8d31505
Merge branch 'release51' into release52
nytamin Aug 19, 2024
3c723ae
Merge branch 'release51' into release52
nytamin Aug 19, 2024
eba6c0e
chore: fix CURRENT_SYSTEM_VERSION
nytamin Aug 19, 2024
8a0759f
feat: modify datastore in `onRundownActivate` SOFIE-3310 (#1240)
Julusian Aug 19, 2024
1aa3a53
chore: update tsr
Julusian Aug 19, 2024
c1fd174
chore: update nodejs versions in ci
Julusian Aug 19, 2024
cc85d85
chore: yarn dedupe
Julusian Aug 19, 2024
f2fe508
Merge branch 'release51' into release52
Julusian Aug 21, 2024
f6c1640
refactor: apply quickloop overrides during playout
ianshade Aug 19, 2024
caa2a38
feat: vite deduplicate meteor lib SOFIE-3360 (#1235)
Julusian Aug 26, 2024
3bbeb56
feat: vite reduce reliance on copied Meteor code (#1239)
Julusian Aug 26, 2024
3339dbd
feat: remove broken accounts and auth in ui SOFIE-3326 (#1241)
Julusian Aug 26, 2024
cf8ca93
Merge branch 'release52' into feat/vite-ui-bundler2
Julusian Aug 26, 2024
3774dcf
chore: fix windows vite usage
Julusian Aug 28, 2024
1564bc0
Merge branch 'release51' into release52
Julusian Aug 29, 2024
4ed4906
chore: update some vulnerable dependencies
Julusian Aug 30, 2024
e495db2
chore: remove some unnecessary uses of EditAttribute (#1254)
Julusian Sep 2, 2024
0d1b890
Merge remote-tracking branch 'origin/release51' into feat/quickLoop
ianshade Sep 2, 2024
d5c2cad
fix: update mos-connection dependency (SOFIE-3006) (#1251)
nytamin Sep 5, 2024
497bd3d
Merge branch 'release51' into release52
Julusian Sep 6, 2024
503e622
Merge branch 'release52' into feat/vite-ui-bundler2
Julusian Sep 6, 2024
8e16b94
fix: rework versionExtended flow to be done via meteor runtime_config
Julusian Sep 6, 2024
5844a0c
Merge pull request #1230 from nrkno/feat/vite-ui-bundler2
Julusian Sep 9, 2024
ea30e05
chore: update to new nightly of TSR
jstarpl Sep 9, 2024
f94db28
fix: removing parts/segments with quickloop markers
mint-dewit Sep 18, 2024
45659c2
Merge remote-tracking branch 'origin/release51' into release52
jstarpl Sep 18, 2024
e8826c1
fix: no quickloop autotake on parts that were running for a long time
mint-dewit Sep 19, 2024
6950fea
fix: quickloop rundown reset
mint-dewit Sep 19, 2024
43e0564
fix: asyncapi-generator-react-sdk patch
jstarpl Sep 19, 2024
479f696
Merge branch 'release51' into release52
jstarpl Sep 19, 2024
02be272
feat: allow ab sessions to declare themselves as 'globally unique'
Julusian Sep 17, 2024
f4e61fa
fix: ensure ab sessions get reordered when adlibbing a fixed duration…
Julusian Sep 17, 2024
250b5d7
fix: ensure pieces don't claim to have durations when their end has n…
Julusian Sep 18, 2024
a19ab10
Merge remote-tracking branch 'nrk/release52' into feat/quickLoop
mint-dewit Sep 24, 2024
6afbb53
chore: lint
mint-dewit Sep 24, 2024
1d87ef1
chore: remove file that got duplicated in merge
mint-dewit Sep 24, 2024
bf1719d
chore: remove local patch of `@asyncapi/generator-react-sdk`
jstarpl Sep 25, 2024
506b920
chore: remove a extraneous import in meteor server code
jstarpl Sep 25, 2024
cdb6c90
Merge pull request #1261 from bbc/upstream/SUPERFLY-5-ab-sessions-acr…
nytamin Sep 25, 2024
e962e5e
chore: Eslint server in vscode doesn't work because it can't find the…
jstarpl Sep 26, 2024
8c154af
Merge pull request #1112 from bbc/feat/quickLoop
jstarpl Sep 26, 2024
298c0fd
fix: In kiosk mode, rundown page gets stalled if rundown is removed w…
olzzon Sep 27, 2024
e839b97
feat: routeset config defined in blueprints
olzzon Sep 23, 2024
92b9e85
fix: go to renderDataMissing() is rundown is not found - and revert p…
olzzon Sep 30, 2024
7c4f1ae
fix: re-implement setReady to false in useSubscriptionIfEnabled()
olzzon Sep 30, 2024
e560a4c
Merge branch 'release51' into release52
jstarpl Sep 30, 2024
7438176
fix: patch `timecode` dependency to work once packaged with vite
Julusian Oct 1, 2024
88fc61d
fix: missing font once packaged with vite
Julusian Oct 1, 2024
c7c1d10
fix: koa not serving app for non-root url
Julusian Oct 1, 2024
5dc59ed
fix: some styling bugs
Julusian Oct 1, 2024
339f8cb
fix: webui eslint failure
Julusian Oct 2, 2024
81bf9cb
feat: rework user permissions in the ui to use a react context
Julusian Sep 20, 2024
bb4c22b
fix: handle durations of onRundownChange infinites correctly when spa…
Julusian Oct 2, 2024
101b369
Merge pull request #1273 from bbc/upstream/r52-ui-bugs
jstarpl Oct 3, 2024
f4e1108
Merge pull request #1269 from bbc/fix/ui-no-return-to-rundown-if-deleted
jstarpl Oct 3, 2024
9aaa2dd
feat: add segment timing countdownType
Julusian Oct 3, 2024
22b4a3c
fix: track segmentStartedPlayback against `SegmentPlayoutId` instead …
Julusian Oct 3, 2024
b06a4e5
Merge remote-tracking branch 'origin/master' into release51
jstarpl Oct 7, 2024
ee3e569
Rework playout connection management (sofie 1152) (#1271)
mint-dewit Oct 8, 2024
985f4f4
Merge pull request #1276 from bbc/upstream/fix-on-change-infinites-in…
nytamin Oct 8, 2024
752a30a
fix: review comments
Julusian Oct 8, 2024
198ccaf
fix(Bucket AdLibs): maintain rank and label over regeneration of a Bu…
jstarpl Oct 8, 2024
954a05a
fix: implement editor ui
Julusian Oct 8, 2024
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
bf98383
fix: restore snapshot: don't set adlib.partId twice
nytamin Oct 9, 2024
b554b72
fix: restore snapshot: don't update _id:s of inner objects
nytamin Oct 9, 2024
333d401
fix: restore snapshot: don't update _id:s of objects that have alread…
nytamin Oct 9, 2024
d2c4ecb
fix(NotificationPopUp): buttons have no margins
jstarpl 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
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
c42e4cb
chore: rename to clarify scope
nytamin Oct 15, 2024
3fd22ef
Merge pull request #1281 from nrkno/fix/snapshot-restore
nytamin Oct 15, 2024
cfec9d4
fix(External Messages Status): Queued Messages List displays sent mes…
jstarpl Oct 15, 2024
017e3a9
chore(ExternalMessages): improve layout
jstarpl Oct 15, 2024
c7e44cd
Merge pull request #1280 from nrkno/fix/bucketAdLibsRerankedOnRegener…
jstarpl Oct 15, 2024
91d2b48
Merge pull request #1278 from bbc/upstream/rework-ui-permissions-flow
jstarpl Oct 15, 2024
af75f8f
fix(Studio-Screen Source Layer Type): correct step counter background
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
d4e6ca4
fix: always call `validateAdlibTestingPartInstanceProperties` during …
Julusian Oct 16, 2024
6f9c82b
Merge pull request #1288 from bbc/upstream/fix/typo-in-sync-ingest-ch…
nytamin Oct 17, 2024
132ebc0
chore: fix unit test and lint
nytamin Oct 17, 2024
8bded15
chore: make the query match getUnsentExternalMessageCount
jstarpl Oct 17, 2024
5854695
Merge pull request #1286 from nrkno/fix/sofie-3470/external-messages-…
jstarpl Oct 17, 2024
0d5e157
fix(job-worker): queue a PartInstanceTimingEvent on deactivation
jstarpl 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
3666320
chore: update TSR
jstarpl Oct 18, 2024
28189ac
chore(release): 1.51.1-0
jstarpl Oct 18, 2024
1ca2cf8
chore: update deps
jstarpl Oct 18, 2024
16e9987
chore(release): 1.51.1-1
jstarpl Oct 18, 2024
ca11fc8
Merge pull request #1292 from bbc/upstream/remove-meteor-packages
nytamin Oct 21, 2024
dfc7c5e
chore: fix tests
Julusian Oct 21, 2024
781112e
Merge pull request #1290 from nrkno/fix/sofie-3470/deactivatePartInst…
jstarpl Oct 22, 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
67b3a96
fix: prompter skipped pieces
mint-dewit Oct 22, 2024
1dfdaad
chore: add playlist timings to LSG
mint-dewit Oct 14, 2024
69ae70a
fix(StoryboardPartThumbnail): make ThumbnailRendererFactory work as a…
jstarpl Oct 23, 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
bf311c8
fix: handle a case in syncChangesToPartInstances()
nytamin Oct 24, 2024
eb0416e
Merge pull request #1302 from nrkno/fix/ingest-error
jstarpl 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
94fd992
Merge pull request #1299 from nrkno/fix/sofie-3542/rundown-view-crash
jstarpl Oct 24, 2024
c5b833d
feat: add `notes` to `RundownPlaylist` and pipe notes from blueprints…
Julusian Oct 21, 2024
ea7cece
chore(release): 1.51.1-2
jstarpl 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
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 22 additions & 4 deletions .github/workflows/node.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -184,11 +184,18 @@ jobs:
run: |
cd meteor
yarn inject-git-hash
- name: Prepare webui for meteor build
if: steps.check-build-and-push.outputs.enable == 'true'
run: |
rm -Rf meteor/public
cp -R packages/webui/dist meteor/public
- name: Meteor Build
if: steps.check-build-and-push.outputs.enable == 'true'
run: |
cd meteor
NODE_OPTIONS="--max-old-space-size=4096" METEOR_DEBUG_BUILD=1 meteor build --allow-superuser --directory .
mv bundle/programs/web.browser/assets/ bundle/programs/web.browser/app/assets/ || true

- name: Meteor Bundle NPM Build
if: steps.check-build-and-push.outputs.enable == 'true'
run: |
Expand Down Expand Up @@ -426,9 +433,11 @@ jobs:
- mos-gateway
- corelib
- shared-lib
- meteor-lib
- job-worker
- openapi
- live-status-gateway
- webui

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -471,7 +480,7 @@ jobs:
- blueprints-integration
- server-core-integration
- shared-lib
node-version: [14.x, 16.x, 18.x, 20.x]
node-version: [14.x, 18.x, 20.x, 22.x]
include:
# include additional configs, to run certain packages only for a certain version of node
- node-version: 14.x
Expand All @@ -481,19 +490,28 @@ jobs:
package-name: job-worker
send-coverage: true
# manual openapi to avoid testing for 14.x
- node-version: 16.x
package-name: openapi
- node-version: 18.x
package-name: openapi
- node-version: 20.x
package-name: openapi
- node-version: 22.x
package-name: openapi
# No tests for the gateways yet
# - node-version: 18.x
# package-name: playout-gateway
# - node-version: 18.x
# package-name: mos-gateway
- node-version: 18.x
package-name: live-status-gateway
send-coverage: true
- node-version: 18.x
package-name: webui
# manual meteor-lib as it only needs a couple of versions
- node-version: 18.x
package-name: meteor-lib
send-coverage: true
- node-version: 14.x
package-name: meteor-lib

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -524,7 +542,7 @@ jobs:
env:
CI: true
- name: Send coverage
if: (matrix.node-version == '16.x' || matrix.send-coverage == true) && ((github.event_name == 'pull_request') && ((!startsWith(github.head_ref, 'release'))) || ((github.event_name == 'push') && (!startsWith(github.ref_name, 'release'))))
if: (matrix.node-version == '18.x' || matrix.send-coverage == true) && ((github.event_name == 'pull_request') && ((!startsWith(github.head_ref, 'release'))) || ((github.event_name == 'push') && (!startsWith(github.ref_name, 'release'))))
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prerelease-libs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
- blueprints-integration
- server-core-integration
- shared-lib
node-version: [14.x, 16.x, 18.x, 20.x]
node-version: [14.x, 18.x, 20.x, 22.x]

steps:
- uses: actions/checkout@v4
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json.default
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"packages/shared-lib",
"packages/job-worker",
"packages/openapi",
"packages/live-status-gateway"
"packages/live-status-gateway",
"packages/webui"
],
"prettier.enable": true,
"sonarlint.connectedMode.project": { "projectKey": "nrkno_sofie-core" },
Expand Down
2 changes: 2 additions & 0 deletions DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ yarn start

> 💡 First startup may take a while, especially on Windows. To speed things up, consider adding `%LOCALAPPDATA%\.meteor` and the directory where you cloned `server-core` to your Windows Defender virus protection exclusions.

The Sofie ui (served by Vite) can be accessed at `http://localhost:3005`. The meteor http server can be access directly at `http://localhost:3000`

### Slightly more Involved Start

1. Clone the repository (for development, it is recommended to base your work on the latest unstable release branch)
Expand Down
29 changes: 3 additions & 26 deletions meteor/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,43 +56,20 @@ const tsBase = {
}

module.exports = {
extends: [...commonExtends, 'plugin:react/recommended'],
plugins: [...commonPlugins, 'react'],
extends: [...commonExtends],
plugins: [...commonPlugins],
rules: {
'prettier/prettier': 'error',
},
env: { es2017: true },
parserOptions: { sourceType: 'module', ecmaVersion: 2018 },
settings: {
react: {
version: 'detect', // Tells eslint-plugin-react to automatically detect the version of React to use
},
},
settings: {},
overrides: [
// Note: these replace the values defined above, so make sure to extend them if they are needed
{
files: ['*.ts'],
...tsBase,
},
{
files: ['*.tsx'],
...tsBase,
extends: [...tsBase.extends, 'plugin:react/recommended'],
parserOptions: {
...tsBase.parserOptions,
ecmaFeatures: {
jsx: true, // Allows for the parsing of JSX
},
},
rules: {
...tsBase.rules,
'node/no-extraneous-import': 'off', // because there are a lot of them as dev-dependencies
'node/no-missing-import': 'off', // erroring on every single import
'react/prop-types': 'off', // we don't use this
'@typescript-eslint/no-empty-interface': 'off', // many prop/state types are {}
'@typescript-eslint/promise-function-async': 'off', // event handlers can't be async
},
},
{
files: ['*.js'],
env: {
Expand Down
1 change: 1 addition & 0 deletions meteor/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ src/**/*.js.map
coverage
settings.json
server/_force_restart.js
public/

# Ignore TV2-features:
client/styles/tv2
Expand Down
10 changes: 0 additions & 10 deletions meteor/.meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,14 @@
# but you can also edit it by hand.

[email protected] # Packages every Meteor app needs to have
[email protected] # Packages for a great mobile UX
[email protected] # The database Meteor supports right now
[email protected] # Reactive variable for tracker

[email protected] # CSS minifier run for production mode
[email protected] # JS minifier run for production mode
[email protected] # ECMAScript 5 compatibility for older browsers
[email protected] # Enable ECMAScript2015+ syntax in app code
[email protected] # Enable TypeScript syntax in .ts and .tsx modules
[email protected] # Server-side component of the `meteor shell` command
[email protected] # Select when to allow use of the "modern" bundle

[email protected] # Define static page content in .html files
react-meteor-data # React higher-order component for reactively tracking Meteor data

[email protected] # Meteor's client-side reactive programming library
[email protected]
fourseven:scss

[email protected]
ostrio:meteor-root
Expand Down
35 changes: 23 additions & 12 deletions meteor/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
# syntax=docker/dockerfile:experimental

# BUILD WEBUI
FROM node:18
COPY packages /opt/core/packages
WORKDIR /opt/core/packages

RUN rm -R *-gateway documentation openapi
RUN corepack enable
RUN yarn install && yarn build

# Install production dependencies for the worker
# HACK:
# RUN yarn workspaces focus --production @sofie-automation/job-worker @sofie-automation/corelib

# BUILD IMAGE
FROM meteor/node:14.21.4
RUN curl "https://install.meteor.com/?release=2.13.3" | sh
Expand All @@ -9,17 +23,18 @@ ENV NODE_ENV anythingButProduction

# Prepare the packages
COPY package.json /opt/core/package.json
COPY packages /opt/core/packages
WORKDIR /opt/core/packages
RUN rm -R *-gateway documentation openapi
RUN corepack enable
RUN yarn install && yarn build
COPY --from=0 /opt/core/packages /opt/core/packages

# Add the meteor source
COPY meteor /opt/core/meteor
COPY scripts /opt/core/scripts
WORKDIR /opt/core/meteor

# move the webui to the correct place
RUN rm -Rf /opt/core/meteor/public
RUN cp -R /opt/core/packages/webui/dist /opt/core/meteor/public
RUN rm -R /opt/core/packages/webui

# Force meteor to setup the runtime
RUN meteor --version --allow-superuser
RUN meteor corepack enable
Expand All @@ -31,9 +46,8 @@ RUN --mount=type=cache,target=/opt/core/meteor/.meteor/local NODE_OPTIONS="--max
WORKDIR /opt/bundle/programs/server/
RUN npm install

# Install production dependencies for the worker
WORKDIR /opt/core/packages
RUN yarn workspaces focus --production @sofie-automation/job-worker @sofie-automation/corelib
# meteor does something weird with these files
RUN mv /opt/bundle/programs/web.browser/assets /opt/bundle/programs/web.browser/app/assets || true

# DEPLOY IMAGE
FROM alpine:3.19
Expand All @@ -60,11 +74,8 @@ ENV PATH $DIR_NODE/v$NODE_VERSION/bin:$PATH
# confirm installation
RUN node -v && npm -v

COPY --from=0 /opt/bundle /opt/core
COPY --from=1 /opt/bundle /opt/core
COPY meteor/docker-entrypoint.sh /opt

# Tell meteor where the worker code is located
ENV WORKER_EXEC_DIR=/opt/packages/job-worker

WORKDIR /opt/core/
CMD ["/opt/docker-entrypoint.sh"]
3 changes: 1 addition & 2 deletions meteor/__mocks__/_extendJest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ import { UserError, UserErrorMessage } from '@sofie-automation/corelib/dist/erro
import { Meteor } from 'meteor/meteor'
import { clone } from '@sofie-automation/corelib/dist/lib'
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
import '../server/api/logger'
import _ from 'underscore'
import { ClientAPI } from '../lib/api/client'
import { ClientAPI } from '@sofie-automation/meteor-lib/dist/api/client'

// Include this file in to get access to the extended functions

Expand Down
4 changes: 1 addition & 3 deletions meteor/__mocks__/_setupMocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { setLogLevel } from '../server/logging'
import { Fiber } from './Fibers'
import { resetRandomId } from './random'
import { makeCompatible } from 'meteor-promise'
import { LogLevel } from '../lib/lib'
import { LogLevel } from '../server/lib/tempLib'
import { SupressLogMessages } from './suppressLogging'

// This file is run before all tests start.
Expand Down Expand Up @@ -34,8 +34,6 @@ jest.mock('meteor/webapp', (...args) => require('./webapp').setup(args), { virtu
jest.mock('../server/api/integration/slack', (...args) => require('./slack').setup(args), { virtual: true })
jest.mock('../server/worker/worker', (...args) => require('./worker').setup(args), { virtual: true })

require('../server/api/logger.ts')

SupressLogMessages.init()

beforeEach(() => {
Expand Down
Loading
Loading