64 lines
2.1 KiB
Markdown
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.
|