Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 6 additions & 21 deletions .github/workflows/build-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,12 @@ jobs:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v4.4.0
with:
node-version: "20"

- name: Setup Deno
uses: denoland/setup-deno@667a34cdef165d8d2b2e98dde39547c9daac7282 # v2
with:
deno-version: "2.x"

- name: Install Linux dependencies for Tauri
- name: Install Linux dependencies for Gossamer
run: |
sudo apt-get update
sudo apt-get install -y \
Expand All @@ -40,29 +35,20 @@ jobs:
librsvg2-dev \
patchelf

- name: Install npm dependencies
# `npm ci` requires package-lock.json to be a complete resolution
# of package.json. The committed lockfile is incomplete: tailwindcss's
# nested deps (chokidar wants picomatch@^2.3.1 at the top level)
# are missing entries, so `npm ci` refuses with "Missing: picomatch@2.3.2
# from lock file". `npm install` is non-strict and regenerates the
# missing entries in-place during CI, unblocking the gate without
# committing a touched lockfile. The real fix is the npm→Deno
# migration tracked in hyperpolymath/standards#253; this is a
# band-aid to keep CI green until then.
run: npm install --no-audit --no-fund
- name: Warm Deno cache (npm + jsr specifiers)
run: deno install

- name: ReScript build gate
run: npx --no-install rescript build
run: deno task res:build

- name: Deno test gate
run: deno task test

- name: Rust cargo check gate
run: cargo check --manifest-path src-tauri/Cargo.toml
run: cargo check

- name: Rust test gate
run: cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1
run: cargo test --lib -- --test-threads=1

- name: Setup Rust toolchain for PCC
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
Expand All @@ -74,4 +60,3 @@ jobs:

- name: Panel wiring verification gate
run: ./tools/pcc/target/release/panll panel verify --repo-root .

12 changes: 6 additions & 6 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ jobs:
deno-version: v2.x

- name: Install dependencies
run: deno install --node-modules-dir=auto
run: deno install

- name: Build ReScript
run: npx rescript build || echo "ReScript build attempted"
run: deno task res:build || echo "ReScript build attempted"

- name: Run E2E tests
run: deno test tests/e2e_*.js tests/cross_panel_integration_test.js tests/update_integration_test.js --allow-read --allow-env
Expand All @@ -69,10 +69,10 @@ jobs:
deno-version: v2.x

- name: Install dependencies
run: deno install --node-modules-dir=auto
run: deno install

- name: Build ReScript
run: npx rescript build || echo "ReScript build attempted"
run: deno task res:build || echo "ReScript build attempted"

- name: Run crosscutting aspect tests
run: deno test tests/*_crosscutting_test.js tests/panelbus_propagation_test.js --allow-read --allow-env
Expand All @@ -92,10 +92,10 @@ jobs:
deno-version: v2.x

- name: Install dependencies
run: deno install --node-modules-dir=auto
run: deno install

- name: Build ReScript
run: npx rescript build || echo "ReScript build attempted"
run: deno task res:build || echo "ReScript build attempted"

- name: Run benchmarks
run: deno test tests/*_bench_test.js --allow-read --allow-env 2>&1 | tee /tmp/bench-results.txt
Expand Down
22 changes: 13 additions & 9 deletions deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@
"license": "AGPL-3.0-or-later",
"description": "Panel workspace framework — TEA (The Elm Architecture) for ReScript with tiling layout, smart routing, keyboard navigation, undo engine, and security-hardened DOM. Build panel-based UIs for desktop and web.",
"exports": "./mod.js",
"nodeModulesDir": "auto",
"tasks": {
"dev": "cargo build && cargo run --bin panll-gossamer & deno task bundle && deno task serve:dev",
"build": "cargo build --release && deno task bundle && deno task css:build",
"gossamer:dev": "cargo build && cargo run --bin panll-gossamer & deno task bundle && deno task serve:dev",
"gossamer:build": "cargo build --release && deno task bundle && deno task css:build",
"gossamer:run": "cargo run --bin panll-gossamer",
"bundle": "DENO_NO_PACKAGE_JSON=1 deno run -A scripts/bundle.ts",
"bundle:watch": "DENO_NO_PACKAGE_JSON=1 deno run -A scripts/bundle.ts --watch",
"css:build": "deno run -A npm:tailwindcss -i ./src/styles/input.css -o ./public/styles.css --minify",
"css:watch": "deno run -A npm:tailwindcss -i ./src/styles/input.css -o ./public/styles.css --watch",
"bundle": "deno run -A scripts/bundle.ts",
"bundle:watch": "deno run -A scripts/bundle.ts --watch",
"css:build": "deno run -A --allow-scripts=npm:tailwindcss npm:tailwindcss@^3.4.19 -i ./src/styles/input.css -o ./public/styles.css --minify",
"css:watch": "deno run -A --allow-scripts=npm:tailwindcss npm:tailwindcss@^3.4.19 -i ./src/styles/input.css -o ./public/styles.css --watch",
"serve:dev": "deno run --allow-net=127.0.0.1:8000 --allow-read=. scripts/dev-server.ts",
"test": "deno test --no-check --allow-read --allow-env tests/",
"test:watch": "deno test --no-check --watch --allow-read --allow-env tests/",
Expand All @@ -23,16 +24,19 @@
"lint": "deno lint scripts/",
"fmt": "deno fmt scripts/",
"mock:echidna": "deno run --allow-net=127.0.0.1:9000 scripts/mock-echidna.ts",
"res:build": "deno run -A npm:rescript build",
"res:clean": "deno run -A npm:rescript clean",
"res:watch": "deno run -A npm:rescript watch"
"res:build": "deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 build",
"res:clean": "deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 clean",
"res:watch": "deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 watch"
},
"imports": {
"@std/": "jsr:@std/",
"@gossamer/api": "./src-gossamer/bindings/rescript/src/Gossamer.res.js",
"rescript": "npm:rescript@^12.0.0",
"@rescript/core/": "npm:@rescript/core@1.6.1/",
"@rescript/runtime/": "npm:@rescript/runtime@12.2.0/"
"@rescript/core": "npm:@rescript/core@^1.6.1",
"@rescript/core/": "npm:/@rescript/core@1.6.1/",
"@rescript/runtime": "npm:@rescript/runtime@^12.2.0",
"@rescript/runtime/": "npm:/@rescript/runtime@12.2.0/",
"tailwindcss": "npm:tailwindcss@^3.4.19"
},
"publish": {
"include": [
Expand Down
15 changes: 5 additions & 10 deletions deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading