Introduction

Berkontribusi pada Nylo Website

Pengantar

Terima kasih telah mempertimbangkan untuk berkontribusi pada Nylo Website!

Panduan ini akan membantu Anda memahami cara berkontribusi pada micro-framework ini. Baik Anda memperbaiki bug, menambahkan fitur, atau meningkatkan dokumentasi, kontribusi Anda sangat berharga bagi komunitas Nylo Website.

Nylo Website dibagi menjadi tiga repositori:

Repositori Tujuan
nylo Aplikasi boilerplate
framework Kelas inti framework (nylo_framework)
support Library pendukung dengan widget, helper, utilitas (nylo_support)

Memulai

Fork Repositori

Fork repositori yang ingin Anda kontribusikan:

Clone Fork Anda

git clone https://github.com/YOUR-USERNAME/nylo
git clone https://github.com/YOUR-USERNAME/framework
git clone https://github.com/YOUR-USERNAME/support

Lingkungan Pengembangan

Persyaratan

Pastikan Anda telah menginstal yang berikut:

Persyaratan Versi Minimum
Flutter 3.24.0 atau lebih tinggi
Dart SDK 3.10.7 atau lebih tinggi

Hubungkan Paket Lokal

Buka boilerplate Nylo di editor Anda dan tambahkan override dependensi untuk menggunakan repositori framework dan support lokal Anda:

pubspec.yaml

dependency_overrides:
  nylo_framework:
    path: ../framework  # Path to your local framework repository
  nylo_support:
    path: ../support    # Path to your local support repository

Jalankan flutter pub get untuk menginstal dependensi.

Sekarang perubahan yang Anda buat pada repositori framework atau support akan tercermin di boilerplate Nylo.

Menguji Perubahan Anda

Jalankan aplikasi boilerplate untuk menguji perubahan Anda:

flutter run

Untuk perubahan widget atau helper, pertimbangkan untuk menambahkan tes di repositori yang sesuai.

Panduan Pengembangan

Gaya Kode

  • Ikuti panduan gaya Dart resmi
  • Gunakan nama variabel dan fungsi yang bermakna
  • Tulis komentar yang jelas untuk logika yang kompleks
  • Sertakan dokumentasi untuk API publik
  • Jaga kode tetap modular dan mudah dipelihara

Dokumentasi

Saat menambahkan fitur baru:

  • Tambahkan komentar dartdoc ke kelas dan method publik
  • Perbarui file dokumentasi yang relevan jika diperlukan
  • Sertakan contoh kode dalam dokumentasi

Pengujian

Sebelum mengirimkan perubahan:

  • Uji di perangkat/simulator iOS dan Android
  • Verifikasi kompatibilitas mundur jika memungkinkan
  • Dokumentasikan setiap perubahan yang merusak dengan jelas
  • Jalankan tes yang ada untuk memastikan tidak ada yang rusak

Mengirimkan Perubahan

Diskusikan Terlebih Dahulu

Untuk fitur baru, sebaiknya diskusikan dengan komunitas terlebih dahulu:

Buat Branch

git checkout -b feature/your-feature-name

Gunakan nama branch yang deskriptif:

  • feature/collection-view-pagination
  • fix/storage-null-handling
  • docs/update-networking-guide

Commit Perubahan Anda

git add .
git commit -m "Add: Your feature description"

Gunakan pesan commit yang jelas:

  • Add: CollectionView grid mode support
  • Fix: NyStorage returning null on first read
  • Update: Improve router documentation

Push dan Buat Pull Request

git push origin feature/your-feature-name

Kemudian buat pull request di GitHub.

Panduan Pull Request

  • Berikan deskripsi yang jelas tentang perubahan Anda
  • Referensikan issue terkait
  • Sertakan screenshot atau contoh kode jika berlaku
  • Pastikan PR Anda hanya menangani satu masalah
  • Jaga perubahan tetap fokus dan atomik

Melaporkan Masalah

Sebelum Melaporkan

  1. Periksa apakah masalah sudah ada di GitHub
  2. Pastikan Anda menggunakan versi terbaru
  3. Coba reproduksi masalah di proyek baru

Tempat Melaporkan

Laporkan masalah di repositori yang sesuai:

Template Issue

Berikan informasi detail:

### Description
Brief description of the issue

### Steps to Reproduce
1. Step one
2. Step two
3. Step three

### Expected Behavior
What should happen

### Actual Behavior
What actually happens

### Environment
- Flutter: 3.24.x
- Dart SDK: 3.10.x
- nylo_framework: ^7.0.0
- OS: macOS/Windows/Linux
- Device: iPhone 15/Pixel 8 (if applicable)

### Code Example
```dart
// Minimal code to reproduce the issue

### Mendapatkan Informasi Versi

``` bash
# Flutter and Dart versions
flutter --version

# Check your pubspec.yaml for Nylo version
# nylo_framework: ^7.0.0