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

Mitwirken

Vielen Dank für dein Interesse am Mitwirken. Dieser Leitfaden erklärt, wie du dich beteiligen kannst, was wir annehmen und wie du loslegst.

Möglichkeiten zum Mitwirken

Issues (kein Setup erforderlich)

  • Fehlerberichte - Etwas kaputt? Öffne einen Fehlerbericht mit Schritten zur Reproduktion.
  • Feature-Anfragen - Hast du eine Idee? Starte eine Diskussion, damit die Community sich einbringen und dafür stimmen kann.
  • Übersetzungsprobleme - Eine falsche oder fehlende Übersetzung entdeckt? Öffne ein Übersetzungs-Issue.
  • Dokumentationsprobleme - Etwas stimmt in der Dokumentation nicht? Öffne ein Dokumentations-Issue.

Code (erfordert CLA)

Wir nehmen Pull Requests an für:

TypAblauf
FehlerbehebungenÖffne direkt einen PR (verlinke das Issue, falls eines existiert)
Neue ÜbersetzungenÖffne direkt einen PR (siehe Übersetzungsleitfaden)
Verbesserungen an der DokumentationÖffne direkt einen PR
Verbesserungen der TestabdeckungÖffne direkt einen PR
Neue Tools oder FeaturesStarte zuerst eine Diskussion; ein Maintainer überführt genehmigte Ideen in ein nachverfolgtes Issue, bevor du Code schreibst
Refactorings oder ArchitekturänderungenStarte zuerst eine Diskussion und warte auf die Freigabe eines Maintainers, bevor du Code schreibst

Was wir nicht annehmen

  • Änderungen an CI/CD-Workflows, Release-Konfiguration oder Linter-/Compiler-Konfiguration
  • PRs ohne unterzeichnete Contributor License Agreement
  • PRs mit mehr als 400 geänderten Zeilen (teile große Arbeiten in kleinere PRs auf)
  • Features, die nicht zuvor besprochen und genehmigt wurden
  • Änderungen an packages/ai/ ohne vorherige Absprache

Contributor License Agreement

Bevor wir deinen ersten PR mergen können, musst du unsere Individual CLA unterzeichnen. Das ist eine einmalige Voraussetzung.

Warum: SnapOtter ist dual lizenziert (AGPLv3 + kommerziell). Die CLA gewährt uns das Recht, deine Beiträge unter beiden Lizenzen zu verbreiten. Du behältst das volle Urheberrecht an deiner Arbeit.

Wie: Wenn du deinen ersten PR öffnest, kommentiert der CLA-Assistant-Bot mit einem Link. Klicke darauf, prüfe die Vereinbarung und unterzeichne mit deinem GitHub-Konto. Das dauert 30 Sekunden.

Wenn du im Auftrag deines Arbeitgebers beiträgst und dein Arbeitgeber die IP-Rechte an deiner Arbeit behält, wende dich an [email protected], um vor der Einreichung eine Corporate CLA zu vereinbaren.

Erste Schritte

Voraussetzungen

  • Node.js 22+
  • pnpm 9+
  • Python 3.11+ (nur für AI-Tools)
  • Docker (optional, für vollständige Integrationstests)

Setup

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

Prüfungen ausführen

Stelle vor dem Einreichen eines PR sicher, dass alle Prüfungen lokal bestehen:

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

Ablauf eines Pull Requests

  1. Forke das Repository und erstelle einen Branch von main (feat/my-feature oder fix/issue-123)
  2. Nimm deine Änderungen in fokussierten, überprüfbaren Commits mit Conventional Commits vor
  3. Füge Tests für deine Änderungen hinzu oder aktualisiere sie
  4. Führe pnpm lint && pnpm typecheck && pnpm test lokal aus
  5. Öffne einen PR gegen main und fülle die Vorlage aus
  6. Unterzeichne die CLA, falls du dazu aufgefordert wirst
  7. Warte, bis die CI besteht und ein Maintainer den PR prüft

Was du bei der Prüfung erwarten kannst

  • Wir bemühen uns, innerhalb von 7 Tagen auf PRs zu reagieren
  • Kleine, fokussierte PRs werden schneller geprüft
  • Wenn du nach 7 Tagen nichts gehört hast, hinterlasse einen Kommentar und pinge den Thread an
  • Wir können Änderungen anfordern, einen anderen Ansatz vorschlagen oder den PR schließen, wenn er nicht zur Projektausrichtung passt

Nachdem dein PR gemergt wurde

Dein Beitrag wird im nächsten Release enthalten sein und im Changelog vermerkt.

Gute erste Issues

Suchst du etwas, woran du arbeiten kannst? Sieh dir unsere guten ersten Issues für einsteigerfreundliche Aufgaben an oder help wanted für größere Aufgaben, bei denen wir uns über Unterstützung aus der Community freuen.

Codestil

  • Biome übernimmt Formatierung und Linting (doppelte Anführungszeichen, Semikolons, Einrückung mit 2 Leerzeichen)
  • Der Pre-Commit-Hook führt biome check --write automatisch auf gestagten Dateien aus
  • Wenn der Linter meckert, behebe den Code (ändere nicht die Biome-Konfiguration)
  • ES-Module überall (import/export)
  • Conventional Commits: feat:, fix:, refactor:, docs:, test:, chore:

Vollständige Architekturdetails findest du im Entwicklerleitfaden.

Sicherheit

Öffne keinen öffentlichen PR oder kein öffentliches Issue für Sicherheitslücken. Melde sie privat über GitHub Security Advisories oder per E-Mail an [email protected]. Alle Details findest du in SECURITY.md.

Fragen?