Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 1.56 KB

File metadata and controls

49 lines (37 loc) · 1.56 KB

Contributing

Solid Objects changes can affect durable state and recovery. A contribution should explain the invariant it changes and include a regression test at the lowest layer that can prove it.

Setup

Install Node.js 24.15 or newer, enable Corepack, and install the locked dependencies. The package supports Node.js 24.4.0 or newer. On that floor, CI runs the default suite, the build, the packaged artifact smoke test, and the recovery demo. Node.js 24.15 is where node:sqlite stops printing an experimental warning:

corepack enable
pnpm install --frozen-lockfile

Validation

Run the local quality gates before opening a pull request:

pnpm run format:check
pnpm run check
pnpm run test:coverage
pnpm run build
pnpm run pack:check
pnpm run test:package
pnpm run test:recovery

Run pnpm run test:browser after installing Playwright Chromium. The database and wake-up suites use these variables:

  • SOLID_OBJECTS_DATABASE_URL for PostgreSQL or MySQL integration tests;
  • SOLID_OBJECTS_REDIS_URL for the optional Redis wake-up suite.

Use disposable databases. Do not include credentials, production data, customer identifiers, or other personal information in fixtures or reports.

Correctness changes

For mailbox, lease, fencing, retry, effect, reminder, or migration changes, include the failure sequence the test exercises. Prefer deterministic clocks, explicit process coordination, and durable assertions over sleeps or mock-only proof. Update Correctness and delivery semantics when a guarantee or limitation changes.