Thanks for your interest in contributing! This document covers the workflow and conventions.
git clone https://github.com/forgesworn/rendezvous-kit.git
cd rendezvous-kit
npm install
npm test- Branch from
main— create a feature branch for your work - Write a failing test first — we follow test-driven development (TDD)
- Implement the minimal code to make the test pass
- Run the full suite before committing:
npm test && npm run typecheck - Commit with conventional commits —
feat:,fix:,docs:,refactor:,test:
We use Conventional Commits with semantic-release. Your commit message determines the version bump:
feat: add walking mode support→ minor version bumpfix: correct ORS distance units→ patch version bumpdocs: update engine comparison table→ no version bump
- British English — favour, colour, behaviour, licence, initialise, metre
- ESM-only with
.jsextensions in imports (import { foo } from './bar.js') - TypeScript strict mode — no
any, no implicit returns - GeoJSON coordinates are
[longitude, latitude](GeoJSON standard) - Zero third-party dependencies — don't add external runtime deps
- JSDoc on all public exports — every exported function, class, interface, and type
npm test # run all tests
npm run test:watch # watch mode
npm run bench # benchmarks
npm run typecheck # type checking onlyTests use Vitest. Place test files alongside source files as *.test.ts or in tests/.
- Keep PRs focused on a single change
- Include tests for new functionality
- Ensure
npm test && npm run typecheckpasses - Reference any related issues
Open a GitHub Issue — we're happy to help.