Skip to content

feat: drop meteor (the final step) - #1805

Merged
Julusian merged 24 commits into
Sofie-Automation:mainfrom
SuperFlyTV:feat/combined-replace-meteor
Aug 17, 2026
Merged

feat: drop meteor (the final step)#1805
Julusian merged 24 commits into
Sofie-Automation:mainfrom
SuperFlyTV:feat/combined-replace-meteor

Conversation

@Julusian

@Julusian Julusian commented Aug 3, 2026

Copy link
Copy Markdown
Member

About the Contributor

This pull request is posted on behalf of Superfly

This is part of a series of PRs aiming to replace meteor.

Type of Contribution

This is a: Feature / Code improvement

Current Behavior

We are using meteor for the core backend app of Sofie. While this does give us some free stuff that we utilise, it also acts as a bit of a vendor lock-in and limits flexibility

New Behavior

This is the final push of dropping meteor.

This builds upon #1803, #1786 #1789 #1785 #1783 #1782 and includes all their changes. This PR will be rebased and tidied as the others get merged. Some bits may be plucked out into the above PRs as some of it fixing incompatibilities between them as they get merged.

Following this, the 'meteor' app, is just another nodejs app. Everything we still use from meteor (mongo wrappers and ddp server) has been rewritten as code that we own.

This has all been lightly tested, but will likely want some more thorough testing as parts get merged to ensure it does all operate as expected.

I have opted to not move the 'meteor' app into the packages directory or merge the yarn workspaces into one yet. I suspect that both of these will introduce quite a few merge conflicts, so am saving these for once the rest of this is merged and they can be pushed through quickly to avoid staleness.

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

Affected areas

Time Frame

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.

@Julusian Julusian added the Contribution from SuperFly.tv Contributions sponsored by SuperFly.tv label Aug 3, 2026
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 237 files, which is 137 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 388cd9b7-0c30-48f2-91c2-d79b64a3f9f9

📥 Commits

Reviewing files that changed from the base of the PR and between 5899274 and 39e5367.

⛔ Files ignored due to path filters (2)
  • meteor/.yarn/patches/@meteorjs-rspack-npm-2.0.1-d001eb481c.patch is excluded by !**/.yarn/**
  • meteor/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (237)
  • .dockerignore
  • .env.example
  • .github/actions/setup-meteor/action.yaml
  • .github/workflows/audit.yaml
  • .github/workflows/deploy-docs.yml
  • .github/workflows/node.yaml
  • .github/workflows/publish-libs.yml
  • .github/workflows/sonar.yaml
  • DEVELOPER.md
  • meteor/.gitignore
  • meteor/.meteor/.finished-upgraders
  • meteor/.meteor/.gitignore
  • meteor/.meteor/.id
  • meteor/.meteor/packages
  • meteor/.meteor/platforms
  • meteor/.meteor/release
  • meteor/.meteor/versions
  • meteor/.meteorignore
  • meteor/Dockerfile
  • meteor/Dockerfile.circle
  • meteor/__mocks__/_extendJest.ts
  • meteor/__mocks__/_setupMocks.ts
  • meteor/__mocks__/helpers/methods.ts
  • meteor/__mocks__/helpers/publications.ts
  • meteor/__mocks__/meteor-elastic-apm.ts
  • meteor/__mocks__/meteor.ts
  • meteor/__mocks__/slack.ts
  • meteor/__mocks__/time.ts
  • meteor/__mocks__/validated-method.ts
  • meteor/__mocks__/webapp.ts
  • meteor/docker-entrypoint.sh
  • meteor/eslint.config.mjs
  • meteor/jest.config.js
  • meteor/package.json
  • meteor/rspack.config.cjs
  • meteor/scripts/testingLogging.ts_
  • meteor/server/Connections.ts
  • meteor/server/__tests__/cronjobs.test.ts
  • meteor/server/__tests__/integration/conformance/wrapperParity.integration.test.ts
  • meteor/server/api/ExternalMessageQueue.ts
  • meteor/server/api/__tests__/client.test.ts
  • meteor/server/api/__tests__/externalMessageQueue.test.ts
  • meteor/server/api/__tests__/peripheralDevice.test.ts
  • meteor/server/api/__tests__/rundownLayouts.test.ts
  • meteor/server/api/__tests__/userActions/general.test.ts
  • meteor/server/api/__tests__/userActions/system.test.ts
  • meteor/server/api/blueprintConfigPresets.ts
  • meteor/server/api/blueprints/__tests__/api.test.ts
  • meteor/server/api/blueprints/__tests__/http.test.ts
  • meteor/server/api/blueprints/api.ts
  • meteor/server/api/blueprints/development.ts
  • meteor/server/api/blueprints/http.ts
  • meteor/server/api/buckets.ts
  • meteor/server/api/deviceTriggers/PieceInstancesObserver.ts
  • meteor/server/api/deviceTriggers/RundownContentObserver.ts
  • meteor/server/api/deviceTriggers/RundownsObserver.ts
  • meteor/server/api/deviceTriggers/StudioDeviceTriggerManager.ts
  • meteor/server/api/deviceTriggers/StudioObserver.ts
  • meteor/server/api/deviceTriggers/__tests__/StudioObserver.test.ts
  • meteor/server/api/deviceTriggers/observer.ts
  • meteor/server/api/deviceTriggers/reactiveContentCache.ts
  • meteor/server/api/deviceTriggers/reactiveContentCacheForPieceInstances.ts
  • meteor/server/api/deviceTriggers/triggersContext.ts
  • meteor/server/api/evaluations.ts
  • meteor/server/api/heapSnapshot.ts
  • meteor/server/api/ingest/actions.ts
  • meteor/server/api/ingest/debug.ts
  • meteor/server/api/ingest/genericDevice/actions.ts
  • meteor/server/api/ingest/http.ts
  • meteor/server/api/ingest/ingestCache.ts
  • meteor/server/api/ingest/lib.ts
  • meteor/server/api/ingest/mosDevice/__tests__/actions.test.ts
  • meteor/server/api/ingest/mosDevice/actions.ts
  • meteor/server/api/ingest/mosDevice/lib.ts
  • meteor/server/api/ingest/rundownInput.ts
  • meteor/server/api/integration/expectedPackages.ts
  • meteor/server/api/integration/influx.ts
  • meteor/server/api/integration/media-scanner.ts
  • meteor/server/api/meteorCall.ts
  • meteor/server/api/methodContext.ts
  • meteor/server/api/methods.ts
  • meteor/server/api/mongo.ts
  • meteor/server/api/peripheralDevice.ts
  • meteor/server/api/peripheralDevice/executeFunction.ts
  • meteor/server/api/playout/api.ts
  • meteor/server/api/playout/debug.ts
  • meteor/server/api/profiler/apm.ts
  • meteor/server/api/rest/koa.ts
  • meteor/server/api/rest/v0/__tests__/rest.test.ts
  • meteor/server/api/rest/v0/index.ts
  • meteor/server/api/rest/v1/blueprints.ts
  • meteor/server/api/rest/v1/buckets.ts
  • meteor/server/api/rest/v1/devices.ts
  • meteor/server/api/rest/v1/index.ts
  • meteor/server/api/rest/v1/ingest.ts
  • meteor/server/api/rest/v1/middlewares.ts
  • meteor/server/api/rest/v1/playlists.ts
  • meteor/server/api/rest/v1/showstyles.ts
  • meteor/server/api/rest/v1/snapshots.ts
  • meteor/server/api/rest/v1/studios.ts
  • meteor/server/api/rest/v1/system.ts
  • meteor/server/api/rest/v1/typeConversion.ts
  • meteor/server/api/rest/v1/types.ts
  • meteor/server/api/rundown.ts
  • meteor/server/api/rundownLayouts.ts
  • meteor/server/api/serviceMessages/api.ts
  • meteor/server/api/showStyles.ts
  • meteor/server/api/snapshot.ts
  • meteor/server/api/studio/api.ts
  • meteor/server/api/system.ts
  • meteor/server/api/translationsBundles.ts
  • meteor/server/api/triggeredActions.ts
  • meteor/server/api/userActions.ts
  • meteor/server/collections/changeStream/changeStreamCursor.ts
  • meteor/server/collections/collection.ts
  • meteor/server/collections/implementations/asyncCollection.ts
  • meteor/server/collections/implementations/mock.ts
  • meteor/server/collections/implementations/readonlyWrapper.ts
  • meteor/server/collections/index.ts
  • meteor/server/collections/indices.ts
  • meteor/server/collections/lib.ts
  • meteor/server/collections/mongoConnection.ts
  • meteor/server/coreSystem/collection.ts
  • meteor/server/coreSystem/index.ts
  • meteor/server/cronjobs.ts
  • meteor/server/ddp-server/ConnectionRegistry.ts
  • meteor/server/ddp-server/DdpConnection.ts
  • meteor/server/ddp-server/DdpPublicationContext.ts
  • meteor/server/ddp-server/DdpSession.ts
  • meteor/server/ddp-server/SessionCollectionView.ts
  • meteor/server/ddp-server/__tests__/DdpSession.test.ts
  • meteor/server/ddp-server/__tests__/clientServerIntegration.test.ts
  • meteor/server/ddp-server/__tests__/methodDispatch.test.ts
  • meteor/server/ddp-server/__tests__/subscriptionDispatch.test.ts
  • meteor/server/ddp-server/config.ts
  • meteor/server/ddp-server/index.ts
  • meteor/server/ddp-server/methodDispatch.ts
  • meteor/server/ddp-server/subscriptionDispatch.ts
  • meteor/server/ddp-server/types.ts
  • meteor/server/httpServer.ts
  • meteor/server/lib.ts
  • meteor/server/lib/__tests__/check.test.ts
  • meteor/server/lib/cacheResult.ts
  • meteor/server/lib/check.ts
  • meteor/server/lib/customPublication/optimizedObserverArray.ts
  • meteor/server/lib/customPublication/optimizedObserverBase.ts
  • meteor/server/lib/customPublication/publish.ts
  • meteor/server/lib/database.ts
  • meteor/server/lib/lib.ts
  • meteor/server/lib/rest/v1/blueprints.ts
  • meteor/server/lib/rest/v1/buckets.ts
  • meteor/server/lib/rest/v1/devices.ts
  • meteor/server/lib/rest/v1/ingest.ts
  • meteor/server/lib/rest/v1/playlists.ts
  • meteor/server/lib/rest/v1/showstyles.ts
  • meteor/server/lib/rest/v1/snapshots.ts
  • meteor/server/lib/rest/v1/studios.ts
  • meteor/server/lib/rest/v1/system.ts
  • meteor/server/lib/tic-toc.ts
  • meteor/server/logging.ts
  • meteor/server/logo.ts
  • meteor/server/main.ts
  • meteor/server/methodRegistry.ts
  • meteor/server/methods.ts
  • meteor/server/migration/1_40_0.ts
  • meteor/server/migration/__tests__/migrations.test.ts
  • meteor/server/migration/api.ts
  • meteor/server/migration/databaseMigration.ts
  • meteor/server/migration/lib.ts
  • meteor/server/migration/upgrades/__tests__/showStyleBase.test.ts
  • meteor/server/migration/upgrades/showStyleBase.ts
  • meteor/server/migration/upgrades/studio.ts
  • meteor/server/migration/upgrades/system.ts
  • meteor/server/performanceMonitor.ts
  • meteor/server/prometheus.ts
  • meteor/server/publicationRegistry.ts
  • meteor/server/publications/blueprintUpgradeStatus/systemStatus.ts
  • meteor/server/publications/blueprintUpgradeStatus/upgradesContentObserver.ts
  • meteor/server/publications/deviceTriggersPreview.ts
  • meteor/server/publications/fastTrack.ts
  • meteor/server/publications/ingestStatus/rundownContentObserver.ts
  • meteor/server/publications/lib/PromiseDebounce.ts
  • meteor/server/publications/lib/__tests__/lib.test.ts
  • meteor/server/publications/lib/__tests__/observerGroup.test.ts
  • meteor/server/publications/lib/lib.ts
  • meteor/server/publications/lib/observerChain.ts
  • meteor/server/publications/lib/observerGroup.ts
  • meteor/server/publications/lib/rundownsObserver.ts
  • meteor/server/publications/mountedTriggers.ts
  • meteor/server/publications/packageManager/expectedPackages/contentObserver.ts
  • meteor/server/publications/packageManager/expectedPackages/generate.ts
  • meteor/server/publications/partInstancesUI/rundownContentObserver.ts
  • meteor/server/publications/partsUI/rundownContentObserver.ts
  • meteor/server/publications/pieceContentStatusUI/bucket/bucketContentObserver.ts
  • meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts
  • meteor/server/publications/pieceContentStatusUI/rundown/rundownContentObserver.ts
  • meteor/server/publications/rundown.ts
  • meteor/server/publications/segmentPartNotesUI/rundownContentObserver.ts
  • meteor/server/publications/studio.ts
  • meteor/server/security/auth.ts
  • meteor/server/security/check.ts
  • meteor/server/security/securityVerify.ts
  • meteor/server/systemStatus/__tests__/api.test.ts
  • meteor/server/systemStatus/__tests__/systemStatus.test.ts
  • meteor/server/systemStatus/api.ts
  • meteor/server/systemStatus/semverUtils.ts
  • meteor/server/systemTime.ts
  • meteor/server/webmanifest.ts
  • meteor/server/worker/__tests__/jobQueue.test.ts
  • meteor/server/worker/jobQueue.ts
  • meteor/server/worker/worker.ts
  • meteor/tsconfig-base.json
  • meteor/tsconfig-meteor.json
  • meteor/tsconfig.build.json
  • meteor/tsconfig.jest.json
  • meteor/tsconfig.json
  • package.json
  • packages/corelib/src/__tests__/error.spec.ts
  • packages/corelib/src/error.ts
  • packages/documentation/versioned_docs/version-1.37.0/user-guide/configuration/sofie-core-settings.md
  • packages/live-status-gateway/Dockerfile
  • packages/live-status-gateway/Dockerfile.circle
  • packages/meteor-lib/src/Settings.ts
  • packages/meteor-lib/src/api/pubsub.ts
  • packages/meteor-lib/src/userPermissions.ts
  • packages/mos-gateway/Dockerfile
  • packages/mos-gateway/Dockerfile.circle
  • packages/playout-gateway/Dockerfile
  • packages/playout-gateway/Dockerfile.circle
  • packages/shared-lib/src/ddp/messageTypes.ts
  • packages/tsconfig.build.json
  • packages/tsconfig.test.json
  • packages/webui/package.json
  • packages/webui/src/client/collections/lib.ts
  • packages/webui/vite.config.mts
  • scripts/fix-windows-yarn.js
  • scripts/run.mjs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Julusian
Julusian force-pushed the feat/combined-replace-meteor branch from f1f7434 to 39e5367 Compare August 17, 2026 11:03
@Julusian
Julusian marked this pull request as ready for review August 17, 2026 11:04
@Julusian
Julusian merged commit 4b084fc into Sofie-Automation:main Aug 17, 2026
23 of 24 checks passed
@Julusian
Julusian deleted the feat/combined-replace-meteor branch August 17, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Contribution from SuperFly.tv Contributions sponsored by SuperFly.tv Goodbye Meteor!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants