Thank you for your interest in contributing to @deessejs/type-testing! This guide covers everything you need to get a change merged.
By participating in this project you agree to abide by our Code of Conduct.
- Node.js >= 20
- pnpm 9 (
corepack enablewill pick up thepackageManagerfield)
This is a pnpm + turbo monorepo:
packages/type-testing/— the published library (@deessejs/type-testing)apps/web/— the landing site (Next.js)
# Install dependencies
pnpm install
# Enable husky git hooks
pnpm prepare- Fork the repository and create a feature branch off
main. - Make your change in the relevant workspace (
packages/type-testing/src/...). - Add or update tests. For type-level utilities, cover both directions:
the passing case and the "should fail" case (e.g. with
@ts-expect-error). A green test suite that never exercises a failure proves nothing. - Run the full check suite locally (see below).
- Add a changeset if your change affects the published package (see Changesets).
- Open a pull request. The PR template will prompt you for a description, the type of change, and a checklist — please fill it in.
All checks must pass before a PR can be merged (they also run in CI and via the pre-commit hook):
pnpm lint # ESLint across all packages
pnpm typecheck # tsc --noEmit
pnpm test # vitestRun a single workspace's tests while iterating:
pnpm --filter @deessejs/type-testing testThis project uses Conventional Commits:
feat:— a new featurefix:— a bug fixdocs:— documentation onlyrefactor:— code change that neither fixes a bug nor adds a featuretest:— adding or updating testschore:— tooling, dependencies, or maintenance
Versioning and changelogs are managed by changesets. If your change affects the published package, add a changeset:
pnpm changeset addPick the appropriate semver bump (patch / minor / major) and write a short, user-facing summary. Changes that don't affect the published output (CI, docs, the web app) don't need one.
Maintainers handle the actual release: pnpm release bumps versions, and
pushing a v* tag triggers the release workflow which builds and publishes to
npm.
Please use the issue forms (Bug report / Feature request) rather than a blank issue. For usage questions, open a Discussion instead. Security vulnerabilities should be reported privately — see SECURITY.md.