4a3d9d407d
This PR replaces the extendable TLServer class with an instantiatable wrapper for the TLSyncRoom called TLSocketRoom. The goal is to provide an API where you pretty much just 1. create a room from some (optional) snapshot 2. pass websockets into it when they connect And then lifecycle stuff and persistence stuff is left to the consumer, since that all seems to be much more context dependent. One thing remaining here is to work on observability. We had a slightly messy situation regarding logging and error handling and analytics and I want to clean that all up. ### Change Type <!-- ❗ Please select a 'Scope' label ❗️ --> - [ ] `sdk` — Changes the tldraw SDK - [ ] `dotcom` — Changes the tldraw.com web app - [ ] `docs` — Changes to the documentation, examples, or templates. - [ ] `vs code` — Changes to the vscode plugin - [x] `internal` — Does not affect user-facing stuff <!-- ❗ Please select a 'Type' label ❗️ --> - [ ] `bugfix` — Bug fix - [ ] `feature` — New feature - [ ] `improvement` — Improving existing features - [ ] `chore` — Updating dependencies, other boring stuff - [x] `galaxy brain` — Architectural changes - [ ] `tests` — Changes to any test code - [ ] `tools` — Changes to infrastructure, CI, internal scripts, debugging tools, etc. - [ ] `dunno` — I don't know ### Test Plan 1. Add a step-by-step description of how to test your PR here. 4. - [ ] Unit Tests - [ ] End to end tests ### Release Notes - Add a brief release note for your PR here.
81 lines
1.9 KiB
YAML
81 lines
1.9 KiB
YAML
name: Checks
|
|
|
|
on:
|
|
pull_request:
|
|
merge_group:
|
|
push:
|
|
branches: [main]
|
|
|
|
env:
|
|
CI: 1
|
|
PRINT_GITHUB_ANNOTATIONS: 1
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
test:
|
|
name: 'Tests & checks'
|
|
timeout-minutes: 15
|
|
runs-on: ubuntu-latest-16-cores-open # TODO: this should probably run on multiple OSes
|
|
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v3
|
|
|
|
- uses: ./.github/actions/setup
|
|
|
|
- name: Check version constraints
|
|
run: yarn constraints
|
|
|
|
- name: Check for duplicate dependencies
|
|
run: yarn dedupe --check
|
|
|
|
# Not the most sophisticated way to check for warnings, but I don't think
|
|
# Yarn can be convinced to exit with a non-zero exit code on warnings
|
|
# see also https://unix.stackexchange.com/a/433713 for the explanation of the parameters
|
|
- name: Check for installation warnings
|
|
run: 'yarn | grep -vzq "with warnings"'
|
|
|
|
- name: Check tsconfigs
|
|
run: yarn check-tsconfigs
|
|
|
|
- name: Typecheck
|
|
run: yarn build-types
|
|
|
|
- name: Check scripts
|
|
run: yarn check-scripts
|
|
|
|
- name: Check PR template
|
|
run: yarn update-pr-template --check
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
|
|
- name: Lint
|
|
run: yarn lint
|
|
|
|
- name: Check API declarations and docs work as intended
|
|
run: yarn api-check
|
|
|
|
- name: Test
|
|
run: yarn test-ci
|
|
|
|
build:
|
|
name: 'Build all projects'
|
|
timeout-minutes: 15
|
|
runs-on: ubuntu-latest-16-cores-open
|
|
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v3
|
|
|
|
- uses: ./.github/actions/setup
|
|
|
|
- name: Build all projects
|
|
# the sed pipe makes sure that github annotations come through without
|
|
# turbo's prefix
|
|
run: "yarn build | sed -E 's/^.*? ::/::/'"
|
|
|
|
- name: Pack public packages
|
|
run: "yarn lazy pack-tarball | sed -E 's/^.*? ::/::/'"
|