mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-06 23:32:08 +00:00
48 lines
2.6 KiB
Markdown
48 lines
2.6 KiB
Markdown
# Contributing to Parenthèse
|
|
|
|
[Version française](CONTRIBUTING.fr.md)
|
|
|
|
Parenthèse is maintained by one person. Feedback is welcome, and a few pointers save everyone time. You can write in English or in French.
|
|
|
|
## Before writing code
|
|
|
|
- A bug or an idea: open an issue with the matching template.
|
|
- A security issue: no public issue, follow [SECURITY.md](SECURITY.md).
|
|
- For any change bigger than a fix, talk about it in an issue first. A pull request that wasn't discussed may be declined, even a careful one.
|
|
- Prefer small, focused pull requests: one topic per PR, a diff that can be reviewed in a few minutes.
|
|
|
|
## Running the project locally
|
|
|
|
Everything is in the "Development" section of the [README](README.md).
|
|
|
|
## Tests
|
|
|
|
Before opening a pull request, run what the CI checks:
|
|
|
|
```bash
|
|
npm --prefix frontend ci && npm --prefix frontend run lint && npm --prefix frontend test && npm --prefix frontend run build
|
|
npm --prefix landing ci && npm --prefix landing test && npm --prefix landing run build
|
|
npm --prefix backend ci && npm --prefix backend run prisma:generate && npm --prefix backend run build && npm --prefix backend test
|
|
```
|
|
|
|
The CI also checks that the Prisma migrations apply to an empty database and reproduce `backend/prisma/schema.prisma` exactly. Any schema change therefore comes with a migration (`npm --prefix backend run prisma:migrate`).
|
|
|
|
If you touch Docker or nginx, run `docker compose up -d --build` then `bash tools/docker-smoke.sh http://localhost`.
|
|
|
|
## Conventions
|
|
|
|
- The interface is in French and English. Every visible text goes through `t()` from `frontend/src/i18n/index.js`, with the French text as the key and its English entry in `frontend/src/i18n/en/`. A test fails if an English entry is missing.
|
|
- No new heavy dependency (framework, UI library, external service) without discussing it in an issue.
|
|
- The README promise holds: no ads, and no analytics turned on by default on a self-hosted instance.
|
|
|
|
## License of contributions
|
|
|
|
Parenthèse is published under [PolyForm Noncommercial 1.0.0](LICENSE), and stays under it.
|
|
|
|
By opening a pull request, you:
|
|
|
|
- certify that you wrote the contribution or otherwise have the right to submit it, in the spirit of the [Developer Certificate of Origin](https://developercertificate.org/). Sign your commits with `git commit -s`, which adds a `Signed-off-by:` line;
|
|
- grant the maintainer, Ilies Allali, a perpetual, irrevocable, worldwide, royalty-free license to use, modify and relicense your contribution under any terms, including commercial ones.
|
|
|
|
If you can't agree to this, say so in the pull request before it is merged.
|