Open Plant WSI
Open Source Workflow

Contribution Guide

This page is the practical workflow for contributing code, docs, and tests. For markdown version, see repository root CONTRIBUTING.md.

1. Scope

Runtime: tile/point/draw rendering correctness and performance.
Stability: type safety, API consistency, migration readiness.
DX: docs, tests, and reproducible benchmarks.

2. Local setup

npm install
npm run dev:example
# http://localhost:5174
Check engine-roadmap.md before starting larger changes.

3. Branch + PR flow

  1. Create a feature branch from main.
  2. Keep commits focused and small.
  3. Run release gate locally.
  4. Update docs if API or behavior changes.
  5. Open PR with problem/design/perf notes.
npm run release:gate

4. Quality rules

Type-first: keep strict TypeScript, no @ts-nocheck in engine paths.
No silent breakage: update EN/KO API docs and migration guide for user-facing changes.
Minimal runtime overhead: avoid unnecessary dependencies in hot paths.

5. Performance guardrails

Typed arrays first: prefer buffer reuse over object allocations.
Measure changes: include timing metrics for rendering/clip changes.
Report assumptions: mention dataset size and clip mode when sharing numbers.
npm run test:perf

6. Release gate

Publish is blocked unless this passes:

npm run release:gate
# typecheck + test:ws9 + build:lib

CI workflow: .github/workflows/release-gate.yml

7. PR checklist

  • [ ] Typecheck passed
  • [ ] Tests passed (test:ws9)
  • [ ] Library build passed
  • [ ] EN/KO docs updated (if needed)
  • [ ] Migration notes updated (if breaking)