Ini adalah alur kontribusi standar untuk repository ini. Silakan ikuti langkah-langkah berikut untuk memastikan proses kontribusi yang lancar dan kolaboratif.
flowchart TD
A([Mulai])
B[Temukan issue atau ide kontribusi]
C[Fork repository]
D[Clone ke mesin lokal]
E[Buat branch baru dari develop]
F[Lakukan development & testing]
G[Tambahkan path ke CODEOWNERS jika diperlukan]
H[Update dokumentasi jika diperlukan]
I[Update example_app untuk preview fitur]
J[Commit & push ke forked repo]
K[Buat Pull Request ke main repo]
L[Tunggu review & CI check]
M{Disetujui?}
N[Pull Request di-merge]
O[Revisi sesuai feedback]
P([Selesai 🎉])
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
I --> J
J --> K
K --> L
L --> M
M -- Ya --> N
N --> P
M -- Tidak --> O
O --> J
Temukan Issue atau Ide Kontribusi
- Cek Issues yang tersedia
- Lihat label
good first issueuntuk pemula - Atau buat issue baru untuk ide Anda
Fork dan Clone
# Fork repository di GitHub, lalu clone
git clone https://github.com/username-anda/stadata_flutter_sdk.git
cd stadata_flutter_sdk
# Tambahkan upstream remote
git remote add upstream https://github.com/ryanaidilp/stadata_flutter_sdk.gitBuat Branch Baru
# Update branch develop
git checkout develop
git pull upstream develop
# Buat branch fitur baru
git checkout -b feature/nama-fitur-andaKonvensi Penamaan Branch:
feature/nama-fitur- untuk fitur barufix/nama-bug- untuk perbaikan bugdocs/topik- untuk update dokumentasitest/nama-test- untuk menambah test
Lakukan Perubahan
- Ikuti Panduan Pengembangan Fitur
- Pastikan kode mengikuti Clean Architecture
- Tulis test untuk setiap perubahan
- Update example app jika diperlukan
Testing Lokal
# Jalankan semua test
melos test
# Format kode
melos format
# Analisis kode
melos analyze
# Build contoh aplikasi
cd app/example && flutter build apk --debugUpdate Dokumentasi
- Update README.md jika mengubah API
- Update CLAUDE.md untuk perubahan arsitektur
- Tambahkan entry ke CHANGELOG.md
- Update example app untuk demo fitur baru
Commit dan Push
# Stage perubahan
git add .
# Commit dengan pesan yang jelas
git commit -m "feat: tambah fitur census dataset dengan localization
- Implementasi CensusDataset entity dan repository
- Tambah controller dan view dengan GetX
- Ekstrak string ke localization files
- Update example app dengan UI yang lengkap"
# Push ke fork
git push origin feature/nama-fitur-andaKonvensi Commit Message:
feat:- fitur barufix:- perbaikan bugdocs:- perubahan dokumentasistyle:- formatting, semicolon, dllrefactor:- refactoring kodetest:- menambah testchore:- maintenance task
Buat PR di GitHub
- Buka repository fork Anda di GitHub
- Klik "Compare & pull request"
- Pilih base:
develop← compare:feature/nama-fitur-anda - Isi template PR dengan lengkap:
## 📋 Deskripsi
Brief description of changes...
## 🔗 Related Issues
Closes #123
## ✅ Checklist
- [x] Tests added/updated
- [x] Documentation updated
- [x] Example app updated
- [x] CHANGELOG.md updated
## 📱 Screenshots (jika ada perubahan UI)
 
## 🧪 Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completedMenunggu Review
- CI/CD akan otomatis cek kode Anda
- Maintainer akan review dalam 1-3 hari kerja
- Ikuti feedback dan lakukan revisi jika diperlukan
Mengatasi Review Feedback
# Lakukan perubahan yang diminta
git add .
git commit -m "fix: address review feedback"
git push origin feature/nama-fitur-anda- Diskusikan ide besar sebelum coding
- Tulis test untuk setiap perubahan
- Update dokumentasi yang relevan
- Follow coding standards yang ada
- Buat commit message yang jelas
- Respond to feedback dengan cepat
- Jangan buat PR besar tanpa diskusi
- Jangan skip testing
- Jangan force push ke main/develop
- Jangan ignore linting errors
- Jangan commit code yang commented out
- Keep PRs Small: Fokus pada satu fitur/bug per PR
- Write Tests: Minimum 80% coverage untuk code baru
- Document Changes: Update README dan inline docs
- Follow Conventions: Ikuti pattern yang sudah ada
- Be Responsive: Respond to feedback dalam 2-3 hari
- 💬 Diskusi: Gunakan GitHub Discussions
- 🐛 Bug Report: Buat Issue
- 📧 Kontak: Mention @ryanaidilp di issue atau PR
Selamat berkontribusi! 🚀
Setiap kontribusi Anda, sekecil apapun, sangat berharga bagi komunitas! 💝