This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Bijdragen

Bedankt voor je interesse om bij te dragen. Deze gids beschrijft hoe je kunt meedoen, wat we accepteren en hoe je begint.

Manieren om bij te dragen

Issues (geen installatie vereist)

  • Bugmeldingen - Werkt er iets niet? Open een bugmelding met stappen om het te reproduceren.
  • Functieverzoeken - Heb je een idee? Start een discussie zodat de community erop kan reageren en erop kan stemmen.
  • Vertaalproblemen - Zie je een verkeerde of ontbrekende vertaling? Open een vertaalprobleem.
  • Documentatieproblemen - Klopt er iets niet in de documentatie? Open een documentatieprobleem.

Code (vereist CLA)

We accepteren pull requests voor:

TypeProces
BugfixesOpen direct een PR (link de issue als die bestaat)
Nieuwe vertalingenOpen direct een PR (zie Vertaalgids)
DocumentatieverbeteringenOpen direct een PR
Verbeteringen aan testdekkingOpen direct een PR
Nieuwe tools of functiesStart eerst een discussie; een maintainer zet goedgekeurde ideeën om in een bijgehouden issue voordat je code schrijft
Refactors of architectuurwijzigingenStart eerst een discussie en wacht op goedkeuring van een maintainer voordat je code schrijft

Wat we niet accepteren

  • Wijzigingen aan CI/CD-workflows, release-configuratie of linter-/compilerconfiguratie
  • PR's zonder een ondertekende Contributor License Agreement
  • PR's met meer dan 400 gewijzigde regels (splits groot werk op in kleinere PR's)
  • Functies die niet vooraf zijn besproken en goedgekeurd
  • Wijzigingen aan packages/ai/ zonder voorafgaand overleg

Contributor License Agreement

Voordat we je eerste PR kunnen samenvoegen, moet je onze Individual CLA ondertekenen. Dit is een eenmalige vereiste.

Waarom: SnapOtter heeft een duale licentie (AGPLv3 + commercieel). De CLA geeft ons het recht om je bijdragen onder beide licenties te verspreiden. Je behoudt het volledige auteursrecht op je werk.

Hoe: Wanneer je je eerste PR opent, plaatst de CLA Assistant-bot een reactie met een link. Klik erop, bekijk de overeenkomst en onderteken met je GitHub-account. Kost 30 seconden.

Als je bijdraagt namens je werkgever en je werkgever de IP-rechten op je werk behoudt, neem dan contact op met [email protected] om een Corporate CLA te regelen voordat je iets indient.

Aan de slag

Vereisten

  • Node.js 22+
  • pnpm 9+
  • Python 3.11+ (alleen voor AI-tools)
  • Docker (optioneel, voor volledige integratietests)

Installatie

bash
# Fork and clone
git clone https://github.com/<your-username>/snapotter.git
cd snapotter

# Start Postgres + Redis for local dev
docker compose -f docker-compose.dev.yml up -d

# Install dependencies
pnpm install

# Start dev servers (web on :1349, API on :13490)
pnpm dev

Controles uitvoeren

Zorg voordat je een PR indient dat alle controles lokaal slagen:

bash
pnpm lint          # Biome lint + format check
pnpm typecheck     # TypeScript across monorepo
pnpm test          # Vitest unit + integration tests

Pull request-proces

  1. Fork de repo en maak een branch aan vanaf main (feat/my-feature of fix/issue-123)
  2. Breng je wijzigingen aan in gerichte, beoordeelbare commits met conventional commits
  3. Voeg tests toe of werk ze bij voor je wijzigingen
  4. Voer pnpm lint && pnpm typecheck && pnpm test lokaal uit
  5. Open een PR tegen main en vul het sjabloon in
  6. Onderteken de CLA als daarom wordt gevraagd
  7. Wacht tot CI slaagt en een maintainer het beoordeelt

Beoordelingsverwachtingen

  • We streven ernaar om binnen 7 dagen op PR's te reageren
  • Kleine, gerichte PR's worden sneller beoordeeld
  • Als je binnen 7 dagen niets hebt gehoord, plaats dan een reactie om de thread te pingen
  • We kunnen wijzigingen vragen, een andere aanpak voorstellen of de PR sluiten als die niet aansluit bij de richting van het project

Nadat je PR is samengevoegd

Je bijdrage wordt opgenomen in de volgende release en vermeld in de changelog.

Goede eerste issues

Op zoek naar iets om aan te werken? Bekijk onze good first issues voor toegankelijke taken, of help wanted voor grotere onderdelen waarbij we hulp uit de community waarderen.

Codestijl

  • Biome verzorgt de opmaak en linting (dubbele aanhalingstekens, puntkomma's, inspringen met 2 spaties)
  • De pre-commit-hook voert biome check --write automatisch uit op gestagede bestanden
  • Als de linter klaagt, pas dan de code aan (wijzig de Biome-configuratie niet)
  • Overal ES-modules (import/export)
  • Conventional commits: feat:, fix:, refactor:, docs:, test:, chore:

Zie voor volledige architectuurdetails de Ontwikkelaarsgids.

Beveiliging

Open geen publieke PR of issue voor beveiligingslekken. Meld ze privé via GitHub Security Advisories of e-mail [email protected]. Zie SECURITY.md voor alle details.

Vragen?