developer-guide/testing-and-contributing/index.md

64 lines
2.1 KiB
Markdown

---
id: testing-and-contributing
title: Testing and contributing
description: Targeted tests over full runs, what CI checks, and the license your contribution falls under.
tags: [testing, contributing, license]
lang: en
---
# Testing and contributing
## Run targeted checks, not the full suite
For a given change, run type-checking across the workspace and only the
test files of the modules you touched:
```
pnpm -w typecheck
pnpm --filter @f451/web test -- lib/urls.test.ts
```
Not the full `pnpm -w test` for every change — its output is the actual
cost driver on a change of any size, and it re-proves things your change
didn't touch. Full-suite runs and browser/E2E verification are what CI and
review are for, not every local iteration.
## What CI checks
`.github/workflows/ci.yml` runs on every push to `main`/`dev` and on every
pull request:
```
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
```
Two further jobs exist but only run on manual dispatch, because they are
expensive: a GitHub live-contract test against `packages/git-provider`
(needs real credentials), and a Playwright end-to-end read-flow test
(needs a browser install and container startup).
## Before opening a pull request
- Type-check, and run the tests for the files you changed (above).
- Keep the change to what the task asked for; unrelated cleanup belongs in
its own pull request.
- New code, comments, commit messages and documentation are written in
English. f451's UI itself stays bilingual — see [[web-frontend]] — but
written material *about* the project is English going forward.
## License
f451 is source-available, not Open Source in the OSI sense: noncommercial
use, modification and redistribution are free, with attribution to rote
code fraktion and a link to the project, both in the code and in the
running application's interface. Commercial use requires a separate
license on request. Full terms, including named exclusions, are in
`LICENSE.md` at the repository root — read it before assuming a use case
is covered.
> [!NOTE]
> Contribution guidelines beyond this page live in `CONTRIBUTING.md` at the
> repository root.