Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3535 commits
Select commit Hold shift + click to select a range
c0c8d39
rename symbol values used only for their types
jberdine Oct 18, 2024
f5012ee
tighten type to remove type error
jberdine Oct 18, 2024
07edb7d
avoid type error using Object.defineProperty
jberdine Oct 18, 2024
456040d
explicitly drop return value of PromiseWorker subscription functions
jberdine Oct 18, 2024
82466fa
revise UnmanagedMessage constructor type
jberdine Oct 18, 2024
4189325
tighten type of __heap_base
jberdine Oct 18, 2024
abc23e6
Minor possibly-functional cleanups (#421)
jberdine Oct 23, 2024
2a543da
Remove empty Payload interface
jberdine Oct 25, 2024
b6e71d6
[skipruntime] Fix resource data name unicity
skiplabsdaniel Oct 25, 2024
293301f
[skipruntime] Fix resource data name unicity (#432)
skiplabsdaniel Oct 25, 2024
9076696
Remove empty Payload interface (#429)
bennostein Oct 25, 2024
f2f7bb6
[skipruntime] Allow to wait for external resources
skiplabsdaniel Oct 23, 2024
44db22e
s/runtime/service/ in runtime.spec.ts
bennostein Oct 25, 2024
e15c2b8
Reorder args in getOne/getAll and default to empty params record
bennostein Oct 25, 2024
e900281
Disambiguate `values` vs. `payload` fields in `GetResult`/`Values`
bennostein Oct 25, 2024
f71c160
Clean up tests and drop getAll/getOne helpers
bennostein Oct 25, 2024
216677a
s/Identified/Identifier/
bennostein Oct 25, 2024
0c66ed3
Rename `todo` callbacks and simplify logic
bennostein Oct 25, 2024
bd36149
Fix comments, variable names, and method names on ServiceInstance
bennostein Oct 28, 2024
372ccdf
Use ReactiveResponse type instead of unpacking collection/watermark
bennostein Oct 28, 2024
598b811
[skipruntime] Allow to wait for external resources (#425)
bennostein Oct 28, 2024
88a54f1
Add deps to react useEffect calls in hackernews example
jberdine Oct 25, 2024
2786918
Add deps to react useEffect calls in hackernews example (#428)
jberdine Oct 28, 2024
70db79d
[docs] Add overview for "Writing Functions" section
bennostein Sep 23, 2024
664f94f
English prose fixes
bennostein Oct 23, 2024
716d2e3
Replace `it` argument name by more-descriptive `values` for mappers
bennostein Oct 23, 2024
9a5dc13
[docs] Update glossary: drop obsolete info and add service/resource
bennostein Oct 23, 2024
0ef8fd3
[docs] Update introduction.md
bennostein Oct 28, 2024
4f69abe
[docs] Change markdown files from 80-column-wrapped to one-sentence-p…
bennostein Oct 28, 2024
83ca566
[docs] Batch of updates to www/docs (#433)
bennostein Oct 29, 2024
5b45ca8
Handle undefined result from getPost in hackernews front-end
jberdine Oct 23, 2024
e113363
Fix typescript-eslint/restrict-plus-operands
jberdine Oct 24, 2024
fcc2ff2
Fix typescript-eslint/no-unused-expressions
jberdine Oct 25, 2024
421ec4d
Remove unnecessary reassignment
jberdine Oct 25, 2024
ffc9cb3
Array types do not admit any falsy values
jberdine Oct 25, 2024
2c31e83
Function types do not admit any falsy values
jberdine Oct 25, 2024
8c6f4ea
ToWasmManager type does not admit null or undefined values
jberdine Oct 25, 2024
3c9303c
Record types do not admit falsy values
jberdine Oct 25, 2024
9fba44d
TextEncoderEncodeIntoResult type does not admit falsy values
jberdine Oct 25, 2024
b88ad1d
Type string does not admit null or undefined values
jberdine Oct 25, 2024
f30bfa6
IDBDatabase type does not admit null or undefined values
jberdine Oct 25, 2024
0c74172
Opaque<number, _> types do not admit null or undefined values
jberdine Oct 25, 2024
929d0c3
Revise Message constructors
jberdine Oct 25, 2024
2adb865
Appease typescript-eslint/prefer-optional-chain
jberdine Oct 25, 2024
42913bb
Fix stream type and replace range type assumption with runtime check
jberdine Oct 25, 2024
7ee3602
Not strictly NFC cleanups toward being lint-clean (#434)
jberdine Oct 29, 2024
bb8ff0a
Fix comment typo
jberdine Oct 18, 2024
fec6a39
Prefer ts-expect-error over ts-ignore
jberdine Oct 18, 2024
c2061f1
Suppress typescript-eslint/no-unsafe-return
jberdine Oct 18, 2024
6858d93
Suppress typescript-eslint/no-unsafe-argument
jberdine Oct 18, 2024
cbbbb9b
Suppress typescript-eslint/no-unsafe-call
jberdine Oct 18, 2024
c1293d5
Prefer const over let over var
jberdine Oct 18, 2024
6528542
Disable no-unused-vars lint rule
jberdine Oct 18, 2024
6c5a0df
Disable linter on sql/ts/tests
jberdine Oct 18, 2024
8132998
Explicitly drop promises returned by upvotePost, getInitialData, getPost
jberdine Oct 24, 2024
17f30b3
Appease typescript-eslint/use-unknown-in-catch-callback-variable
jberdine Oct 24, 2024
fde4894
Appease typescript-eslint/no-empty-function
jberdine Oct 25, 2024
df256ca
Suppress typescript-eslint/no-this-alias
jberdine Oct 25, 2024
f589659
Fix type of sk_worker runner
jberdine Oct 25, 2024
1c446da
Suppress typescript-eslint/no-unnecessary-condition on while(true) loops
jberdine Oct 25, 2024
9d34a0c
Suppress typescript-eslint/no-unnecessary-condition false alarm
jberdine Oct 25, 2024
979e774
Appease typescript-eslint/no-unnecessary-type-assertion
jberdine Oct 25, 2024
f4cf93b
Appease typescript-eslint/no-useless-constructor
jberdine Oct 25, 2024
5520ec1
Appease typescript-eslint/no-array-constructor
jberdine Oct 25, 2024
807addf
Appease typescript-eslint/array-type
jberdine Oct 25, 2024
54adbab
Appease stylistic/js/lines-between-class-members
jberdine Oct 25, 2024
df6e5c1
Run linter as part of `make check-ts`
jberdine Oct 25, 2024
970f68c
Make TS sources lint-clean and enable linter in check-ts target (#435)
jberdine Oct 29, 2024
872c75a
Add CI job to build and lint ts
jberdine Oct 29, 2024
701fa2b
Add CI job to build and lint ts (#436)
jberdine Oct 29, 2024
65b8501
Rename `it` argument of `mapElement` to `values`
jberdine Oct 29, 2024
ee66c76
Rename `it` argument of `mapElement` to `values` (#437)
jberdine Oct 29, 2024
ac9c395
Rename Skip REST service and fix getOne/getArray there
bennostein Oct 29, 2024
09cb97b
[nfc] Rename Skip REST service and fix getOne/getArray there (#439)
bennostein Oct 29, 2024
5a589ed
Rename ValueMapper, add ManyToOneMapper and use it to simplify examples
jberdine Oct 29, 2024
fc98ce8
Rename ValueMapper, add ManyToOneMapper and use it to simplify exampl…
jberdine Oct 30, 2024
933e2a3
Reorder args of reactiveCompute to allow omitting context
jberdine Oct 29, 2024
adb8e26
Reorder args of reactiveCompute to allow omitting context (#438)
jberdine Oct 30, 2024
c3e35ea
[skipruntime] Fix GetResult type
skiplabsdaniel Oct 30, 2024
0d53e99
[skipruntime] Fix ServiceInstance.getAll return type (#442)
skiplabsdaniel Oct 30, 2024
678cd71
Rename SkipService inputCollections to initialData
jberdine Oct 31, 2024
4cd4d54
Rename SkipService inputCollections to initialData (#445)
jberdine Oct 31, 2024
f5c5d45
Switch French to English spelling (#447)
jberdine Oct 31, 2024
2973e48
Print error message when client cannot connect to the websocket
pikatchu Oct 14, 2024
7c0a34d
Print error message when client cannot connect to the websocket (#414)
jberdine Nov 1, 2024
651ebaa
Tighten URI terminology to URL
jberdine Oct 30, 2024
87e8888
Tighten URI terminology to URL (#444)
jberdine Nov 1, 2024
3f813b1
[skiprutime] Create api package
skiplabsdaniel Oct 30, 2024
bcacca3
[skipruntime] Create helper package
skiplabsdaniel Oct 30, 2024
bdcb6d2
[skipruntime] Move skiplang code from core package
skiplabsdaniel Oct 30, 2024
a9a180d
[skipruntime] Rename core wasm and @skipruntime/core skip-wasm
skiplabsdaniel Oct 30, 2024
5626a47
[prelude] Manage @skip-wasm group
skiplabsdaniel Oct 30, 2024
80ae98b
[skiprutime] Split tests to allow run in wasm and native
skiplabsdaniel Oct 30, 2024
b49e36b
Prepare publish
skiplabsdaniel Oct 30, 2024
7cdcf46
Publish @skip-wasm packages
skiplabsdaniel Oct 31, 2024
a1fb2cc
[skiprutime] Prepare npm packages (#443)
skiplabsdaniel Nov 1, 2024
2c4d041
Fix Timeout type (and typo)
bennostein Oct 31, 2024
eeb464b
Fix inlined interval type in Polled external resources
bennostein Oct 31, 2024
a710a5b
Fix Timeout type (and typo in name) (#446)
bennostein Nov 1, 2024
9c5dfe5
[nfc] Clearly mark externals in tests as "Mock"
bennostein Oct 31, 2024
7b87ea7
Simplify and document external service vs. supplier
bennostein Nov 1, 2024
8ed2a6a
Use consistent name for SkipExternalService
bennostein Nov 1, 2024
350f809
Propagate deletion of "ExternalSupplier" through FFI/skiplang code
bennostein Nov 1, 2024
e04f9ff
Fix up renamings after rebase over npm-packaging PR
bennostein Nov 1, 2024
4298d17
Fix TimeCollection misnomer; rename to TimerResource
bennostein Nov 1, 2024
9aa0617
[docs] Update "functions" page with some examples
bennostein Oct 30, 2024
d1eded2
Add generic `CountMapper` utility
bennostein Oct 30, 2024
326db8e
[docs] Add note pointing to CountMapper utility
bennostein Oct 30, 2024
f920fb0
[docs] Update functions.md with some examples; add a generic CountMap…
bennostein Nov 4, 2024
10a3364
Simplify nomenclature around external services (#449)
bennostein Nov 4, 2024
f6137db
[skipruntime] Fix SkipRuntime_createAccumulator
skiplabsdaniel Nov 4, 2024
a013694
[skipruntime] Fix SkipRuntime_createAccumulator (#450)
skiplabsdaniel Nov 4, 2024
a60fdf8
[skipruntime] publish packages
skiplabsdaniel Nov 4, 2024
2dfb28d
[skipruntime] publish packages (#451)
skiplabsdaniel Nov 4, 2024
ce867ea
Fix getAll path to create resources
skiplabsdaniel Nov 5, 2024
a3553b5
Fix getAll path to create resources (#460)
skiplabsdaniel Nov 5, 2024
11501d2
Get ride of X-Reactive
skiplabsdaniel Nov 5, 2024
c01b106
Get rid of X-Reactive (#461)
skiplabsdaniel Nov 5, 2024
936c1f6
Rename TJSON to Json and JSONObject to JsonObject
jberdine Nov 1, 2024
5c10bce
Rename TJSON to Json and JSONObject to JsonObject (#448)
jberdine Nov 5, 2024
a6e045b
Fix spelling
jberdine Nov 1, 2024
d7712d9
Fix spelling (#464)
jberdine Nov 5, 2024
308f330
[skc] Fix stale analysis invalidation. (#385)
beauby Nov 6, 2024
f621813
[nfc] Minor tweaks from live example coding
bennostein Nov 5, 2024
8980a86
Combine asInt/asFloat -> asNumber
bennostein Nov 5, 2024
7b54f20
[skc] Explicitly encode package name + path for source files.
beauby Oct 14, 2024
14fa8ed
[skc] Add `pkg_dir` to sklib metadata.
beauby Oct 14, 2024
84b02e3
[skiplang/skc] Get rid of stale `getAst()` function.
beauby Oct 31, 2024
193e051
[skiplang/skc] Fix error message.
beauby Nov 6, 2024
cb0f383
[skiplang/skc] Keep track of analyzed source files by package.
beauby Nov 6, 2024
56ff1e0
[skiplang/skc] Avoid re-reading source files when displaying errors.
beauby Nov 6, 2024
efb0eac
[skiplang] Update bootstrap toolchain.
beauby Nov 6, 2024
d41af6d
[skc] Display proper file paths in errors. (#465)
beauby Nov 6, 2024
f8879cb
Comments pointing replicated Json type definitions to source definition
jberdine Oct 31, 2024
c343dc1
Comments pointing replicated Json type definitions to source definiti…
jberdine Nov 6, 2024
a35089d
Rename SkipRESTService to RESTWrapperOfSkipService
jberdine Nov 5, 2024
edc7a73
Rename SkipRESTService to RESTWrapperOfSkipService (#462)
jberdine Nov 6, 2024
c6e8a47
Use string as watermark representation throughout user-facing TS
bennostein Nov 6, 2024
0adcfc1
Stop unpacking/repacking reactive response tokens in thin client
bennostein Nov 6, 2024
1f0173e
Drop special stringify handling of bigints
bennostein Nov 6, 2024
b5673c6
Use strings to represent watermarks in user-facing and/or string-enco…
bennostein Nov 6, 2024
1fa1905
Fix string vs. bigint watermark in parseReactiveResponse
bennostein Nov 6, 2024
d417172
Fix helpers imports
skiplabsdaniel Nov 6, 2024
6c63445
Fix helpers imports (#468)
skiplabsdaniel Nov 6, 2024
31a8743
Fix string vs. bigint watermark in parseReactiveResponse (#467)
bennostein Nov 6, 2024
b655355
Manage only typed key path
skiplabsdaniel Nov 5, 2024
4d70fc5
Conserve only typed key write path (#469)
skiplabsdaniel Nov 6, 2024
67fccb3
Log errors in JS server error handler
bennostein Nov 7, 2024
283836d
Improve error message for collection-not-found errors
bennostein Nov 7, 2024
ea10b02
JS rest server error logging (#470)
bennostein Nov 7, 2024
1efd6da
s/Opt/Nullable/ (in runtime and prelude)
bennostein Nov 8, 2024
7be9c8b
s/mapElement/mapEntry/
bennostein Nov 8, 2024
40e91bf
Rename accumulator->reducer and accumulate/dismiss -> add/remove
bennostein Nov 8, 2024
5bcf413
Drop custom forEach from NonEmptyIterator (use `toArray().forEach` in…
bennostein Nov 8, 2024
2aac258
Clean up terminology around supplier/service/resource/identifier for …
bennostein Nov 8, 2024
1c0d1a4
s/lazy/createLazyCollection/
bennostein Nov 8, 2024
3665c53
Rename reactiveCompute to distinguish between resource/service variants
bennostein Nov 8, 2024
fe3e64e
Apply consistent semantics and naming for "getUnique"
bennostein Nov 8, 2024
a3a3e50
Renamings/refactorings from group discussion (#498)
bennostein Nov 8, 2024
6374d1b
Convert SkipService-implementing classes to object literals
bennostein Nov 13, 2024
ff23fcd
Inline service definitions to runService calls in examples
bennostein Nov 13, 2024
18355bc
Tidy now-unused imports
bennostein Nov 13, 2024
2f2671f
Add (optional) type parameters to SkipService and Resource
bennostein Nov 13, 2024
9ee2bf4
Update examples to use generic Service/Resource types
bennostein Nov 13, 2024
7e80936
Use index type directly instead of Record for NamedCollections
bennostein Nov 13, 2024
3b1eaef
Add conditional type for initial data; fix uncovered type errors in H…
bennostein Nov 14, 2024
5f6b0ae
Generic Service/Resource types (#502)
bennostein Nov 14, 2024
0b9ad43
[skip/server] Replace websockets with SSE.
beauby Nov 6, 2024
5494263
[skip/examples] Move to SSE.
beauby Nov 12, 2024
0e613d4
[examples/hackernews] Move frontend to SSE.
beauby Nov 13, 2024
7a4e375
[skip/server] Leverage SSE protocol for update/init/watermark.
beauby Nov 15, 2024
224be50
Server-sent events (#499)
beauby Nov 18, 2024
e3e3651
Fix binding types add example url
skiplabsdaniel Nov 14, 2024
09dac84
Remove reactiveAuth management
skiplabsdaniel Nov 14, 2024
d56e93a
Force eslint 9.14.0
skiplabsdaniel Nov 18, 2024
3474e6a
Remove reactiveAuth management (#507)
skiplabsdaniel Nov 18, 2024
8e39709
Explicitly instantiate SkipService and Resource
jberdine Nov 14, 2024
a1f08d6
Explicitly instantiate SkipService and Resource (#504)
jberdine Nov 18, 2024
72ef71a
Prefer indexed object types over Record
jberdine Nov 15, 2024
f20a6bb
Prefer indexed object types over Record (#505)
jberdine Nov 18, 2024
f85969a
Splat out arguments to `slice`
bennostein Nov 19, 2024
b1b76ff
Make `slice` variadic instead of taking an array argument (#510)
bennostein Nov 19, 2024
c35d1ad
Rename freeze to deepFreeze
jberdine Nov 15, 2024
6ef6df8
Improve deepFreeze
jberdine Nov 15, 2024
11eea65
Move check near to other operations related to frozen
jberdine Nov 15, 2024
cc06423
Improve check error messages
jberdine Nov 15, 2024
2c683d6
Do not support manually deep-frozen values
jberdine Nov 15, 2024
7d9a782
Treat bigint and symbol types as primitives in deepFreeze
jberdine Nov 18, 2024
72479c1
Improve freeze (#506)
jberdine Nov 19, 2024
77d590e
[docs] getting-started changes
bennostein Nov 5, 2024
0cbb2cb
[docs] Add WIP "anatomy of a skip service" section
bennostein Nov 13, 2024
499b069
[docs] Update WIP anatomy-of-a-service section with types a la #502
bennostein Nov 18, 2024
ca31262
[docs] Flesh out prose around getting-started example; update code to…
bennostein Nov 18, 2024
6022b7f
[docs] Add overview of collections/mappers in getting-started guide
bennostein Nov 19, 2024
2266fd1
[docs] Address Lucas' PR #508 comments
bennostein Nov 19, 2024
bf96b0a
[docs] Address Josh's PR #508 comments
bennostein Nov 19, 2024
146c9ff
[docs] Getting-started draft (#508)
bennostein Nov 19, 2024
381d2cf
Use sk_frozen symbol over "__sk_frozen" string in skjson core
bennostein Nov 21, 2024
15c67a8
Use sk_frozen symbol over "__sk_frozen" string in skjson core (#516)
bennostein Nov 21, 2024
3180668
[ts] Update version of config packages to match published version.
beauby Nov 20, 2024
2f09e69
[ts] Update version of config packages to match published version. (#…
beauby Nov 22, 2024
30b026e
Manage resource instance identifier to manage URL REWRITE With SSE
skiplabsdaniel Nov 19, 2024
6f74207
Clone proxy objects when they're bound as mapper/resource params
bennostein Nov 22, 2024
9eebbbc
[skip/server] Split control service and streaming service.
beauby Nov 20, 2024
9743870
[skip/server] Split control service and streaming service. (#515)
beauby Nov 22, 2024
2c14243
[skip/ts] Clean up dependencies.
beauby Nov 22, 2024
3ac9ef6
Update docs workflow following packaging changes
jberdine Nov 1, 2024
cbf8791
Upgrade docusaurus to 3.6.2
jberdine Nov 20, 2024
d234fc7
[skip/ts] Clean up dependencies. (#521)
beauby Nov 22, 2024
ef9d7ee
Update api docs workflow following packaging changes (#513)
jberdine Nov 22, 2024
fef1729
[skip/ts] Bump versions.
beauby Nov 22, 2024
b3437bf
[skip/ts] Bump versions. (#523)
beauby Nov 22, 2024
7dff806
[examples/hackernews] Update example to SSE + HTTP2.
beauby Nov 13, 2024
a2e381a
[examples/hackernews] Update to SSE + HTTP2. (#518)
beauby Nov 22, 2024
00f234a
Export fetchJSON
jberdine Nov 22, 2024
95c0a07
Export fetchJSON (#525)
jberdine Nov 22, 2024
d726ce6
Eagerly interpret arrays (instead of proxying)
bennostein Nov 22, 2024
09ed9e0
Eagerly interpret arrays (instead of proxying) (#526)
bennostein Nov 22, 2024
b1255f1
Clone object proxies in mapper/resource params (#519)
bennostein Nov 22, 2024
334aaaf
Add `InitialData` to public skipruntime/api
bennostein Nov 21, 2024
4a034f4
de-hardcode user ID in database example
bennostein Nov 21, 2024
acdc239
Fix typo in examples error message
bennostein Nov 21, 2024
393884c
Pull getting-started example into skipruntime-ts/examples, add plumbing
bennostein Nov 21, 2024
95150a2
Backport API changes and fixes into getting-started guide
bennostein Nov 21, 2024
7a0f05f
Snake-case resource name for URL
bennostein Nov 22, 2024
1598f32
Switch to string identifiers (from number) for URL parsing simplicity
bennostein Nov 22, 2024
f06f336
Flesh out server/client for groups example
bennostein Nov 22, 2024
5a5fdd3
Drop stale targets from root Makefile
bennostein Nov 22, 2024
36d0678
Stop using array methods on proxies (until we de-proxy arrays)
bennostein Nov 22, 2024
7cfb738
[nfc] Appease eslint with syntax/style changes
bennostein Nov 22, 2024
3429ff3
Update to #515's new split control/streaming interfaces
bennostein Nov 22, 2024
ff64f49
Replace hand-written logic with `Array.prototype` equivalents
bennostein Nov 22, 2024
e5015e7
Runnable version of getting-started example (#520)
bennostein Nov 22, 2024
e012550
Add basic see-it-in-action instructions to getting-started guide
bennostein Nov 22, 2024
f804eb0
Add basic see-it-in-action instructions to getting-started guide (#528)
bennostein Nov 22, 2024
92d4b1f
Add helper function to get stream UUIDs from a wrapped Skip service
bennostein Nov 22, 2024
98f0d30
Use getStreamUUID helper in examples
bennostein Nov 22, 2024
12f6c7b
Add helper function to get stream UUIDs from wrapped Skip service (#527)
bennostein Nov 22, 2024
0181faf
[skip/server] Return raw UUIDs for `POST /streams`.
beauby Nov 23, 2024
edf1a62
[skip/server] Return raw UUIDs for `POST /streams`. (#529)
beauby Nov 23, 2024
ba0987e
[examples/hackernews] Add missing build step.
beauby Nov 23, 2024
4a7f3e9
[examples/hackernews] Add missing build step. (#530)
beauby Nov 23, 2024
b92f491
[examples/hackernews] Fix exposed ports in `Dockerfile`.
beauby Nov 23, 2024
569f8c2
[examples/hackernews] Fix exposed ports in `Dockerfile`. (#531)
beauby Nov 23, 2024
7d29b2b
[skip/ts] Bump package versions.
beauby Nov 23, 2024
5d9be43
[skip/ts] Bump package versions. (#532)
beauby Nov 23, 2024
2581703
[runtime] Fix mutex locking when using in-memory persistent heap.
beauby Aug 19, 2024
ae08a0f
[prelude] Fix memory initialization on OSX.
beauby Oct 4, 2024
23ec253
[WIP] Embed `lib.skmeta` in dummy object.
beauby Oct 8, 2024
1d62278
[WIP][skc] Fix paths in error messages.
beauby Nov 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
120 changes: 120 additions & 0 deletions .circleci/base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
version: 2.1

commands:
setup:
description: "Setup skip toolchain"
steps:
- run:
name: Fetch submodules
command: |
git submodule update --init --recursive

jobs:
check-format:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- run:
name: Check code is formatted
command: |
make check-fmt

check-ts:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Typecheck and lint typescript sources
command: bun install && npm run build && npm run lint

compiler:
docker:
- image: skiplabs/skdb-base:latest
resource_class: xlarge
steps:
- checkout
- setup
- run:
name: Run compiler tests
no_output_timeout: 30m
command: |
mkdir -p ~/test-results
cd skiplang/compiler && make STAGE=1
PATH=$(realpath ./stage1/bin):$PATH skargo test --jobs 8 --junitxml ~/test-results/skc.xml
- store_test_results:
path: ~/test-results/skc.xml

skstore:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run skstore tests
command: |
mkdir -p ~/test-results
cd skiplang/prelude && skargo test --jobs 8 --junitxml ~/test-results/skstore.xml
- store_test_results:
path: ~/test-results/skstore.xml

skdb:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run native skdb tests
command: |
make test-native

skdb-wasm:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run wasm skdb tests
no_output_timeout: 15m
command: |
mkdir -p ~/test-results
make test-wasm
- store_test_results:
path: ~/test-results/skdb-wasm.xml

skjson:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run skjson tests
command: |
mkdir -p ~/test-results
cd skiplang/skjson && skargo test --junitxml ~/test-results/skjson.xml
- store_test_results:
path: ~/test-results/skjson.xml

skipruntime-wasm:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Typecheck and lint skip runtime
command: cd skipruntime-ts && make check-all
- run:
name: Run wasm skip runtime tests
no_output_timeout: 10m
command: |
mkdir -p ~/test-results
cd skipruntime-ts && make test
- store_test_results:
path: ~/test-results/skipruntime-wasm.xml
23 changes: 23 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
version: 2.1

setup: true

orbs:
continuation: circleci/continuation@1.0.0

jobs:
setup:
executor: continuation/default
steps:
- checkout
- run:
name: Generate config
command: |
.circleci/generate_config.sh > generated_config.yml
- continuation/continue:
configuration_path: generated_config.yml

workflows:
setup:
jobs:
- setup
79 changes: 79 additions & 0 deletions .circleci/generate_config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#!/bin/bash

# TODO: This is flaky as it relies on coarse directory-level diffs.
git diff --quiet HEAD $(git merge-base main HEAD) -- $(jq --raw-output ".workspaces[]" package.json)
check_ts=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skiplang/compiler/ skiplang/prelude/ :^skiplang/prelude/ts
skc=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skiplang/prelude/src/skstore/ skiplang/compiler/runtime/
skstore=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- sql/ skiplang/sqlparser/ skiplang/skbuild/
skdb=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skipruntime-ts/
skipruntime_wasm=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skiplang/prelude/ts/
ts_prelude=$?

cat .circleci/base.yml

echo "workflows:"

cat <<EOF
check-format:
jobs:
- check-format
EOF

if (( $check_ts != 0 ))
then
cat <<EOF
check-ts:
jobs:
- check-ts
EOF
fi

if (( $skc != 0 ))
then
cat <<EOF
compiler:
jobs:
- compiler
EOF
fi

if (( $skstore != 0 ))
then
cat <<EOF
skstore:
jobs:
- skstore
EOF
fi

if (( $skdb != 0 || $skstore != 0 ))
then
cat <<EOF
skdb:
jobs:
- skdb
EOF
fi

if (( $skdb != 0 || $skstore != 0 || $ts_prelude != 0 ))
then
cat <<EOF
skdb-wasm:
jobs:
- skdb-wasm
EOF
fi

if (( $skdb != 0 || $skstore != 0 || $skipruntime_wasm != 0 || $ts_prelude != 0 ))
then
cat <<EOF
skipruntime-wasm:
jobs:
- skipruntime-wasm
EOF
fi
Loading