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

Bidra

Tack för att du vill bidra. Den här guiden beskriver hur du deltar, vad vi accepterar och hur du kommer igång.

Sätt att bidra

Ärenden (ingen konfiguration krävs)

  • Buggrapporter - Något som är trasigt? Öppna en buggrapport med reproduktionssteg.
  • Funktionsförslag - Har du en idé? Starta en diskussion så att gemenskapen kan väga in och rösta på den.
  • Översättningsproblem - Hittade du en felaktig eller saknad översättning? Öppna ett översättningsärende.
  • Dokumentationsproblem - Något som inte stämmer i dokumentationen? Öppna ett dokumentationsärende.

Kod (kräver CLA)

Vi accepterar pull requests för:

TypProcess
BuggfixarÖppna en PR direkt (länka ärendet om ett finns)
Nya översättningarÖppna en PR direkt (se Översättningsguide)
DokumentationsförbättringarÖppna en PR direkt
Förbättrad testtäckningÖppna en PR direkt
Nya verktyg eller funktionerStarta en diskussion först; en underhållare omvandlar godkända idéer till ett spårat ärende innan du skriver kod
Refaktoreringar eller arkitekturändringarStarta en diskussion först och invänta godkännande från en underhållare innan du skriver kod

Vad vi inte accepterar

  • Ändringar av CI/CD-arbetsflöden, release-konfiguration eller linter/kompilator-konfiguration
  • PR:er utan ett signerat Contributor License Agreement
  • PR:er med över 400 rader ändring (dela upp stort arbete i mindre PR:er)
  • Funktioner som inte först har diskuterats och godkänts
  • Ändringar av packages/ai/ utan föregående diskussion

Contributor License Agreement

Innan vi kan slå samman din första PR måste du signera vårt individuella CLA. Det här är ett engångskrav.

Varför: SnapOtter är dubbellicensierat (AGPLv3 + kommersiellt). CLA:t ger oss rätten att distribuera dina bidrag under båda licenserna. Du behåller full upphovsrätt till ditt arbete.

Hur: När du öppnar din första PR kommenterar CLA Assistant-boten med en länk. Klicka på den, granska avtalet och signera med ditt GitHub-konto. Det tar 30 sekunder.

Om du bidrar för din arbetsgivares räkning och din arbetsgivare behåller de immateriella rättigheterna till ditt arbete, kontakta [email protected] för att ordna ett Corporate CLA innan du skickar in.

Kom igång

Förutsättningar

  • Node.js 22+
  • pnpm 9+
  • Python 3.11+ (endast för AI-verktyg)
  • Docker (valfritt, för fullständig integrationstestning)

Konfiguration

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

Köra kontroller

Innan du skickar in en PR, se till att alla kontroller passerar lokalt:

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

Pull request-processen

  1. Forka repot och skapa en gren från main (feat/my-feature eller fix/issue-123)
  2. Gör dina ändringar i fokuserade, granskningsbara commits med conventional commits
  3. Lägg till eller uppdatera tester för dina ändringar
  4. Kör pnpm lint && pnpm typecheck && pnpm test lokalt
  5. Öppna en PR mot main och fyll i mallen
  6. Signera CLA:t om du uppmanas
  7. Invänta att CI passerar och att en underhållare granskar

Vad du kan förvänta dig av granskningen

  • Vi strävar efter att svara på PR:er inom 7 dagar
  • Små, fokuserade PR:er granskas snabbare
  • Om du inte har hört något inom 7 dagar, lämna en kommentar som pingar tråden
  • Vi kan begära ändringar, föreslå ett annat tillvägagångssätt eller stänga PR:en om den inte stämmer med projektets inriktning

Efter att din PR har slagits samman

Ditt bidrag kommer att inkluderas i nästa release och krediteras i ändringsloggen.

Bra första ärenden

Letar du efter något att arbeta med? Kolla våra bra första ärenden för nybörjarvänliga uppgifter, eller hjälp önskas för större poster där vi skulle uppskatta hjälp från gemenskapen.

Kodstil

  • Biome sköter formatering och linting (dubbla citattecken, semikolon, 2 blanksteg indrag)
  • Pre-commit-hooken kör biome check --write på stagade filer automatiskt
  • Om lintern klagar, fixa koden (ändra inte Biome-konfigurationen)
  • ES-moduler överallt (import/export)
  • Conventional commits: feat:, fix:, refactor:, docs:, test:, chore:

För fullständiga arkitekturdetaljer, se Utvecklarguiden.

Säkerhet

Öppna inte en offentlig PR eller ett ärende för säkerhetssårbarheter. Rapportera dem privat via GitHub Security Advisories eller e-post [email protected]. Se SECURITY.md för fullständiga detaljer.

Frågor?