Search K
Berkontribusi
Terima kasih atas minat Anda untuk berkontribusi. Panduan ini menjelaskan cara berpartisipasi, apa yang kami terima, dan cara memulai.
Cara berkontribusi
Issue (tanpa penyiapan)
- Laporan bug - Ada yang rusak? Buka laporan bug dengan langkah-langkah reproduksi.
- Permintaan fitur - Punya ide? Mulai sebuah diskusi agar komunitas dapat menimbang dan mendukungnya.
- Masalah terjemahan - Menemukan terjemahan yang salah atau hilang? Buka issue terjemahan.
- Masalah dokumentasi - Ada yang keliru di dokumentasi? Buka issue dokumentasi.
Kode (memerlukan CLA)
Kami menerima pull request untuk:
| Tipe | Proses |
|---|---|
| Perbaikan bug | Buka PR langsung (tautkan issue jika ada) |
| Terjemahan baru | Buka PR langsung (lihat Panduan Terjemahan) |
| Peningkatan dokumentasi | Buka PR langsung |
| Peningkatan cakupan tes | Buka PR langsung |
| Tool atau fitur baru | Mulai sebuah diskusi terlebih dahulu; seorang maintainer mengubah ide yang disetujui menjadi issue yang dilacak sebelum Anda menulis kode |
| Refaktor atau perubahan arsitektur | Mulai sebuah diskusi terlebih dahulu dan tunggu persetujuan maintainer sebelum menulis kode |
Apa yang tidak akan kami terima
- Perubahan pada alur kerja CI/CD, konfigurasi rilis, atau konfigurasi linter/compiler
- PR tanpa Contributor License Agreement yang ditandatangani
- PR dengan lebih dari 400 baris perubahan (pecah pekerjaan besar menjadi PR yang lebih kecil)
- Fitur yang tidak didiskusikan dan disetujui terlebih dahulu
- Perubahan pada
packages/ai/tanpa diskusi sebelumnya
Contributor License Agreement
Sebelum kami dapat menggabungkan PR pertama Anda, Anda harus menandatangani Individual CLA kami. Ini adalah persyaratan satu kali.
Mengapa: SnapOtter berlisensi ganda (AGPLv3 + komersial). CLA memberi kami hak untuk mendistribusikan kontribusi Anda di bawah kedua lisensi tersebut. Anda tetap memegang penuh hak cipta atas karya Anda.
Bagaimana: Ketika Anda membuka PR pertama, bot CLA Assistant akan berkomentar dengan sebuah tautan. Klik tautan itu, tinjau perjanjiannya, dan tanda tangani dengan akun GitHub Anda. Hanya butuh 30 detik.
Jika Anda berkontribusi atas nama pemberi kerja Anda dan pemberi kerja Anda memegang hak kekayaan intelektual atas karya Anda, hubungi [email protected] untuk mengatur Corporate CLA sebelum mengirimkan.
Memulai
Prasyarat
- Node.js 22+
- pnpm 9+
- Python 3.11+ (hanya untuk tool AI)
- Docker (opsional, untuk pengujian integrasi penuh)
Penyiapan
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 devMenjalankan pemeriksaan
Sebelum mengirimkan PR, pastikan semua pemeriksaan lolos secara lokal:
bash
pnpm lint # Biome lint + format check
pnpm typecheck # TypeScript across monorepo
pnpm test # Vitest unit + integration testsProses pull request
- Fork repo dan buat branch dari
main(feat/my-featureataufix/issue-123) - Lakukan perubahan Anda dalam commit yang terfokus dan dapat ditinjau menggunakan conventional commits
- Tambahkan atau perbarui tes untuk perubahan Anda
- Jalankan
pnpm lint && pnpm typecheck && pnpm testsecara lokal - Buka PR terhadap
maindan isi templatnya - Tanda tangani CLA jika diminta
- Tunggu CI lolos dan seorang maintainer meninjau
Ekspektasi peninjauan
- Kami berupaya menanggapi PR dalam 7 hari
- PR yang kecil dan terfokus ditinjau lebih cepat
- Jika Anda belum mendapat kabar dalam 7 hari, tinggalkan komentar untuk mengingatkan thread
- Kami mungkin meminta perubahan, menyarankan pendekatan yang berbeda, atau menutup PR jika tidak selaras dengan arah proyek
Setelah PR Anda digabungkan
Kontribusi Anda akan disertakan dalam rilis berikutnya dan dicantumkan dalam changelog.
Good first issue
Mencari sesuatu untuk dikerjakan? Lihat good first issues kami untuk tugas yang ramah pemula, atau help wanted untuk item yang lebih besar tempat kami menghargai bantuan komunitas.
Gaya kode
- Biome menangani pemformatan dan linting (tanda kutip ganda, titik koma, indentasi 2 spasi)
- Hook pra-commit menjalankan
biome check --writepada file yang di-stage secara otomatis - Jika linter mengeluh, perbaiki kodenya (jangan ubah konfigurasi Biome)
- ES module di mana-mana (
import/export) - Conventional commits:
feat:,fix:,refactor:,docs:,test:,chore:
Untuk detail arsitektur lengkap, lihat Panduan Developer.
Keamanan
Jangan buka PR atau issue publik untuk kerentanan keamanan. Laporkan secara privat melalui GitHub Security Advisories atau email [email protected]. Lihat SECURITY.md untuk detail lengkap.
