Skip to content

Latest commit

 

History

History
43 lines (36 loc) · 2.02 KB

File metadata and controls

43 lines (36 loc) · 2.02 KB

Contributing

Thanks for your interest in Corbits Workbench.

vendor/intx is read-only vendored code. Never open a PR that changes anything under vendor/intx — it is hand-copied, ledgered @intx/* source, not code this repo owns. See VENDORED.md for the ledger and how to propose a change upstream instead.

Before you start

  • Contributions are accepted under the terms of the Contributor License Agreement and the project license: the application (GPLv2 with AI Exception), or LGPL-2.1-or-later for contributions to a library under packages/ or workflows/.
  • Read AGENTS.md — the ground rules there apply to human and agent contributors alike.

The short version

  1. bun install (or bun run hooks:install) sets a repo-local pre-push hook. That hook is the local stand-in for the cheap CI jobs: lint, typecheck, and unit tests. GitHub still runs walking-skeleton, e2e, isolation, and database-backed suites. Skip the hook with git push --no-verify or SKIP_WORKBENCH_HOOKS=1. Typecheck and tests narrow to the packages your change touches; a change under package.json, bun.lock, a shared tsconfig, scripts/, or .github/ falls back to checking every package instead, which takes much longer — that's expected for those paths, not a hang.
  2. bun run check — everything must be green before and after your change.
  3. Tests first: add failing tests, then the implementation, then docs.
  4. One logical change per commit; write messages for a public audience.
  5. Never commit secrets. .env.example is the only tracked env file.
  6. Never vendor code without a ledger row and kill date in VENDORED.md.
  7. A package that owns its own product tables follows docs/package-migrations.md: literal SQL, a package-owned ledger table, applied transactionally.
  8. Security issues go through SECURITY.md, never a public issue.

This document will grow as the project does.