Skip to content

fix(ci): release workflow uses npm install, not npm ci#8

Merged
Taure merged 1 commit into
mainfrom
fix/release-npm-install
May 1, 2026
Merged

fix(ci): release workflow uses npm install, not npm ci#8
Taure merged 1 commit into
mainfrom
fix/release-npm-install

Conversation

@Taure
Copy link
Copy Markdown
Contributor

@Taure Taure commented May 1, 2026

Summary

The Release workflow has been failing on every push to main since 2026-04-23 with:

```
npm error code EUSAGE
npm error The `npm ci` command can only install with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1.
```

The repo deliberately gitignores `package-lock.json` (see `.gitignore`). The other three workflows (smoke, test, lint) all use `npm install`. `release.yml` was the only outlier on `npm ci`, which requires a committed lockfile.

Fix

One-line change: `release.yml` line 98 `npm ci` -> `npm install`. Matches the rest of the workflow files and honors the no-lockfile policy.

Surfaced by

The recent SDK fleet audit during the protocol-dispatch rollout — when checking that all merged dispatch-test PRs were actually validated in CI on main, Release showed three consecutive failures. Same audit also confirmed every other repo's main-branch CI is green except asobi-unity (separate, expected — UNITY_LICENSE secrets not yet provisioned, tracked in asobi-unity#11).

Test plan

  • Confirmed all other workflows use `npm install`, not `npm ci`
  • Confirmed `.gitignore` lists `package-lock.json` (intentional repo policy)
  • Release workflow on this branch will run on PR merge; verify green

The repo deliberately gitignores package-lock.json (see .gitignore).
The other three workflows (smoke, test, lint) all use 'npm install';
release.yml was the outlier on 'npm ci', which requires a committed
lockfile. Result: every Release run since 2026-04-23 has been failing
at the install step with EUSAGE.

Switch to 'npm install' to match the rest and to honor the no-lockfile
policy. If a lockfile gets adopted later, all four workflows can be
flipped together.
@Taure Taure merged commit bfd1392 into main May 1, 2026
3 checks passed
@Taure Taure deleted the fix/release-npm-install branch May 1, 2026 22:23
Taure added a commit that referenced this pull request May 2, 2026
Rewrites the README so it reflects what asobi-js actually is — a thin transport client for the asobi protocol — and drops the broad feature-table claims (worlds, terrain, voting, economy, leaderboards, etc.) that overstated coverage.

Changes:
- Add Scope and Status sections; mark typed REST helpers as deprecated for v1.0
- Replace REST-heavy quickstart with a WebSocket-only example using `AsobiWebSocket`
- Add API reference block for `AsobiWebSocket`
- Move engine/framework integrations (Phaser/Three/Pixi) to opt-in `examples/` rather than bundled exports
- Remove the Features matrix that promised full coverage of unstable subsystems

Rebase note: this PR was rebased onto main after #4/#5/#7/#8 landed. The README conflict was resolved by keeping the PR's narrowed-scope structure (Scope/Status/API/adapters sections, no Features table) while preserving main's factual updates that don't conflict with the narrowing: the Node 22+ header, the @widgrensit/asobi package name, the "Run a backend first" section pointing at sdk_demo_backend on :8084, the Browser usage section, and the canonical link to the WebSocket protocol guide. The PR's deletion of the Features matrix and REST-flavoured quickstart was preserved — that deletion is the whole point of the PR.

No code change. Code refactor follows in a separate PR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant