Berkontribusi ke LensCore
Terima kasih atas ketertarikan Anda untuk berkontribusi ke LensCore! Kami menyambut kontribusi dari semua orang. Panduan ini akan membantu Anda memulai berkontribusi ke proyek ini.
Cara Berkontribusi
- Laporkan bug dan masalah
- Usulkan fitur atau peningkatan baru
- Perbaiki dokumentasi
- Tulis test
- Kirim perubahan kode
- Review pull request
- Bantu pengguna lain dalam diskusi
Memulai
1. Fork Repository
Mulai dengan melakukan fork repository di GitHub:
# Fork di GitHub, lalu clone fork Anda
git clone https://github.com/USERNAME_ANDA/LensCore.git
cd LensCore2. Setup Environment Development
# Install dependencies
make install
# Copy file environment
cp env.example .env
# Jalankan development server
make dev3. Buat Branch
Buat branch baru untuk fitur atau bugfix Anda:
git checkout -b feature/nama-fitur-anda
# atau
git checkout -b fix/nama-bugfix-andaAlur Kerja Development
Menjalankan Test
# Jalankan semua test
make test
# Jalankan test dalam mode watch
npm run test:watch
# Jalankan file test tertentu
npm test -- path/to/test.tsLinting & Formatting
# Jalankan linter
make lint
# Perbaiki masalah linting
make lint:fix
# Format kode
make formatType Checking
# Jalankan TypeScript type checking
make typecheckPanduan Kontribusi
Gaya Kode
- Ikuti gaya kode dan konvensi yang ada
- Gunakan TypeScript dengan strict type checking
- Tulis kode yang jelas dan self-documenting
- Tambahkan komentar untuk logika yang kompleks
- Gunakan nama variabel dan fungsi yang bermakna
Testing
- Tulis test untuk fitur baru
- Pastikan test yang ada tetap pass
- Targetkan code coverage yang tinggi
- Test edge case dan skenario error
Aksesibilitas
- Ikuti panduan WCAG 2.1
- Pastikan navigasi keyboard berfungsi
- Sediakan ARIA label yang tepat
- Test dengan screen reader
- Jaga kontras warna yang cukup
Dokumentasi
- Update dokumentasi yang relevan
- Tambahkan JSDoc comment ke fungsi
- Update README jika diperlukan
- Dokumentasikan breaking changes
Submit Pull Request
Sebelum Submit
- Pastikan semua test pass dan kode sudah di-lint
- Update dokumentasi jika diperlukan
- Tambah atau update test untuk perubahan Anda
- Commit perubahan dengan pesan yang jelas
- Push ke fork Anda dan buat pull request
Format Pesan Commit
Gunakan pesan commit yang jelas dan deskriptif:
feat: tambah rule aksesibilitas baru untuk kontras warna
fix: perbaiki masalah crawling halaman nested
docs: update dokumentasi API untuk endpoint baru
test: tambah unit test untuk service aksesibilitas
refactor: tingkatkan struktur kode di AI processorTemplate Pull Request
Sertakan hal berikut dalam deskripsi PR Anda:
- Deskripsi: Apa yang dilakukan PR ini?
- Issue Terkait: Link ke issue yang terkait
- Jenis Perubahan: Bug fix, feature, dokumentasi, dll
- Testing: Bagaimana ini ditest?
- Screenshot: Jika ada
- Checklist: Test pass, docs updated, dll
Kode Etik
Kami berkomitmen untuk menyediakan lingkungan yang ramah dan inklusif. Harap bersikap hormat dan perhatian dalam interaksi Anda dengan kontributor lain. Kami mengharapkan semua kontributor mengikuti Kode Etik kami.
Standar Kami
- Bersikap hormat dan inklusif
- Sambut pendatang baru
- Terima kritik konstruktif dengan lapang dada
- Fokus pada apa yang terbaik untuk komunitas
- Tunjukkan empati terhadap anggota komunitas lainnya
Detail Setup Development
Prasyarat
- Node.js >= 20.0.0
- Docker dan Docker Compose
- Git
- npm atau yarn
Struktur Project
LensCore/
├── src/ # Source code
│ ├── api/ # API routes dan handlers
│ ├── cli/ # CLI commands dan services
│ ├── services/ # Core services
│ ├── types/ # TypeScript types
│ └── utils/ # Utility functions
├── tests/ # File test
├── docs/ # Dokumentasi (VitePress)
├── pages/ # Legacy HTML pages
└── dist/ # Compiled outputPerintah yang Tersedia
# Development
make dev # Start development server
make build # Build TypeScript
make start # Start production server
# Testing
make test # Jalankan tests
make test:coverage # Jalankan tests dengan coverage
make test:watch # Jalankan tests dalam mode watch
# Quality
make lint # Jalankan linter
make lint:fix # Perbaiki masalah linting
make format # Format code
make typecheck # Type checking
# Docker
make docker-build # Build Docker image
make docker-up # Start Docker containers
make docker-down # Stop Docker containersPanduan Issue
Melaporkan Bug
Ketika melaporkan bug, sertakan:
- Deskripsi: Deskripsi jelas dari bug
- Langkah untuk Reproduce: Langkah bernomor untuk reproduce
- Perilaku yang Diharapkan: Apa yang Anda harapkan terjadi
- Perilaku Aktual: Apa yang sebenarnya terjadi
- Environment: OS, versi Node, browser, dll
- Screenshot: Jika ada
- Logs: Log error yang relevan
Menyarankan Fitur
Ketika menyarankan fitur, sertakan:
- Masalah: Masalah apa yang diselesaikan ini?
- Solusi yang Diusulkan: Pendekatan yang Anda sarankan
- Alternatif: Solusi lain yang Anda pertimbangkan
- Konteks Tambahan: Screenshot, contoh, dll
Proses Review
- Submission: Anda submit pull request
- Automated Checks: CI menjalankan tests dan linting
- Code Review: Maintainer review kode Anda
- Feedback: Anda address komentar review
- Approval: Maintainer approve dan merge
Mendapatkan Bantuan
Jika Anda memiliki pertanyaan tentang kontribusi:
- Buka issue di GitHub
- Bergabung dengan diskusi komunitas kami
- Hubungi maintainer
Pengakuan
Kontributor diakui di:
- Daftar kontributor GitHub
- Release notes
- Project README
- Kredit dokumentasi
Lisensi
Dengan berkontribusi ke LensCore, Anda setuju bahwa kontribusi Anda akan dilisensikan di bawah Lisensi MIT.
Terima kasih telah berkontribusi ke LensCore! Upaya Anda membantu membuat testing aksesibilitas lebih baik untuk semua orang. 🎉
