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
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,14 @@ jobs:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup
- run: ${{ matrix.run }}
- name: Upload tooling logs on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: tooling-logs-${{ matrix.id }}
path: .workspace/logs/
retention-days: 1
if-no-files-found: warn

test:
name: test (${{ matrix.id }})
Expand Down Expand Up @@ -247,6 +255,15 @@ jobs:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: pnpm site:build

- name: Upload tooling logs on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: tooling-logs-site
path: .workspace/logs/
retention-days: 1
if-no-files-found: warn

# Deploy Pages ships exactly this artifact; it builds nothing itself.
- uses: actions/upload-artifact@v4
with:
Expand Down
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,14 @@ script of its own: `pnpm lint --fix`, `pnpm test --coverage`,
through one runner, `pnpm perf <name>` (`pnpm perf` lists them); the
cross-library benchmarks through `pnpm bench` (see `packages/exojs-bench`).

The root gate and lane runners share an output policy. `auto` is the default:
it uses `normal` for an interactive terminal and `compact` for CI or redirected
output. Override it with `--output normal|compact|silent|verbose`, or set
`EXOJS_OUTPUT` for a process tree. Compact and silent runs stream complete
output to `.workspace/logs/` without buffering it in memory; failures print the
last diagnostic lines and the log path. Benchmark and release lanes keep at
least normal output.

## Shared configuration

`@codexo/exojs-config` (private, unpublished, never a runtime dependency) centralizes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "A TypeScript-first browser 2D runtime for games and interactive apps.",
"version": "0.17.0",
"type": "module",
"packageManager": "pnpm@11.4.0",
"packageManager": "pnpm@11.15.0+sha512.266f8957a30d2be6e9468e5e66bcdedd35a794175f71b067ba8504d686cce1d0c0f429b33c323c3c569ad4891e667574a49ff71d1b89a22cc66f13c65818c578",
"devEngines": {
"runtime": {
"name": "node",
Expand Down
3 changes: 2 additions & 1 deletion packages/exojs-bench/competitors/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
"name": "exojs-bench-competitors",
"version": "0.0.0",
"private": true,
"description": "Pinned exact-version competitor libraries for @codexo/exojs-bench (Pixi, Phaser, Excalibur, matter-js, planck, rapier2d-compat arms). Deliberately NOT a member of the repository workspace: a plain root `pnpm install` never resolves or downloads anything here, so a normal contributor pays zero weight for competitor libraries. Only `pnpm --filter @codexo/exojs-bench bench:setup` installs this folder - as its own workspace root (see pnpm-workspace.yaml beside this file), which applies the same minimumReleaseAge supply-chain quarantine as the repository workspace - and links the results into ../node_modules so the adapters' plain `import 'pixi.js'` (etc.) resolve unmodified.",
"description": "Pinned exact-version competitor libraries for @codexo/exojs-bench (Pixi, Phaser, Excalibur, matter-js, planck, nape-js, rapier2d-compat arms). Deliberately NOT a member of the repository workspace: a plain root `pnpm install` never resolves or downloads anything here, so a normal contributor pays zero weight for competitor libraries. Only `pnpm --filter @codexo/exojs-bench bench:setup` installs this folder - as its own workspace root (see pnpm-workspace.yaml beside this file), which applies the same minimumReleaseAge supply-chain quarantine as the repository workspace - and links the results into ../node_modules so the adapters' plain `import 'pixi.js'` (etc.) resolve unmodified.",
"dependencies": {
"pixi.js": "8.19.0",
"phaser": "4.2.1",
"excalibur": "0.32.0",
"matter-js": "0.20.0",
"planck": "1.5.0",
"@newkrok/nape-js": "3.42.0",
"@types/matter-js": "0.20.2",
"@dimforge/rapier2d-compat": "0.19.3"
}
Expand Down
10 changes: 10 additions & 0 deletions packages/exojs-bench/competitors/pnpm-lock.yaml

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

Loading
Loading