Kontribusi
Kami menyambut kontribusi dalam segala bentuk — laporan bug, perbaikan dokumentasi, proposal fitur, dan kode. Halaman ini merangkum prosesnya. Untuk perjanjian kontributor lengkap dan panduan detail, lihat CONTRIBUTING.md di GitHub.
Setup Development
Prasyarat
| Persyaratan | Versi Minimum |
|---|---|
| PHP | 8.5+ |
| Composer | 2.x |
| PHPUnit | 12.x |
| PHPStan | 2.x |
Memulai
# Clone repository
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next
# Instal dependensi
composer install
# Verifikasi semuanya berfungsi
composer testMenjalankan Test
TCPDF-Next menggunakan PHPUnit 12 dengan suite terpisah untuk unit test dan integration test.
# Jalankan full test suite
composer test
# Jalankan hanya unit test (cepat, tanpa I/O)
composer test:unit
# Jalankan hanya integration test (output file, loading font, dll.)
composer test:integrationSemua test harus lolos sebelum pull request dapat di-merge. Pipeline CI menjalankan full suite pada setiap push.
Static Analysis
Codebase dianalisis dengan PHPStan pada Level 10 (level paling ketat):
composer analyseNol error yang ditoleransi. Jika perubahan Anda menghasilkan error PHPStan, build CI akan gagal.
Persyaratan Code Style
declare(strict_types=1)di bagian atas setiap file PHP.- PHPStan Level 10 compliance — tidak ada pengecualian baseline untuk kode baru.
readonlyclass diutamakan jika mutable state tidak diperlukan.- Backed enum untuk semua set nilai terbatas (tidak ada magic string atau integer constant).
- Named parameter di method API publik untuk kejelasan.
- Tidak ada tipe
mixed— setiap parameter, return type, dan property harus diketik secara eksplisit. - Final secara default — class bersifat
finalkecuali dirancang untuk extension.
Proses Pull Request
Fork repository dan buat feature branch dari
main.Tulis test terlebih dahulu — TCPDF-Next mengikuti workflow berorientasi TDD. Fitur baru dan bug fix harus menyertakan test yang sesuai.
Jaga commit tetap fokus — satu perubahan logis per commit. Tulis commit message yang jelas.
Jalankan full check suite sebelum push:
bashcomposer analyse && composer testBuka pull request terhadap
main. Isi template PR dengan:- Deskripsi perubahan dan motivasinya.
- Link ke issue terkait (gunakan sintaks
Closes #123). - Breaking change atau catatan migrasi.
Tanggapi review feedback — maintainer mungkin meminta perubahan. Silakan tanggapi atau diskusikan setiap komentar.
Melaporkan Bug
Buka GitHub Issue dengan:
- Versi PHP dan OS.
- Versi TCPDF-Next (
composer show yeeefang/tcpdf-next). - Kode reproduksi minimal.
- Perilaku yang diharapkan vs aktual.
Kerentanan Keamanan
Jangan melaporkan masalah keamanan melalui GitHub Issue publik. Gunakan GitHub Security Advisories sebagai gantinya. Lihat FAQ untuk detail.
Terima Kasih
Setiap kontribusi membuat TCPDF-Next lebih baik. Baik Anda memperbaiki typo di dokumentasi atau mengimplementasikan fitur besar, waktu dan usaha Anda sangat dihargai.