Terima kasih telah tertarik berkontribusi pada Native Smart Contract (NSC) Pi β Predictive Development Suite.
Proyek ini bertujuan membangun model prediktif lengkap untuk Native Smart Contract Pi Network, termasuk compiler, VM, PiLang, toolchain, dan contoh kontrak.
Kontribusi Anda sangat berarti untuk memperkuat ekosistem Pi Developer.
Sebelum membuat perubahan, pastikan bahwa kontribusi Anda:
- Sejalan dengan visi proyek
- Menambah kualitas, stabilitas, keamanan, atau developer-experience
- Mengikuti standar kode dalam repository
- Tidak melanggar lisensi, hak cipta, atau regulasi Pi Network
Jika ragu, silakan buka Discussion atau Issue sebelum membuat Pull Request.
Klik Fork untuk membuat salinan repo ke akun Anda.
git clone https://github.com/<username>/Native-Smart-Contract-NSC-Pi
cd Native-Smart-Contract-NSC-Pi
3. Buat Branch Baru
Gunakan nama branch yang jelas:
git checkout -b feature/pilang-optimizer
Contoh lain:
fix/pivm-gas-metering
docs/update-readme
test/add-dex-fuzzer
feature/pylang-compiler-enhancement
---
π Panduan Kontribusi Kode
1. Ikuti Struktur Direktori
compiler/ β Parser, AST, IR, WASM backend
vm/ β PiVM runtime
contracts/ β Smart contract samples
sdk-js/ β JavaScript SDK
sdk-py/ β Python SDK
tools/ β Debugger, deployer, localnet
tests/ β Unit, integration, fuzzing
docs/ β Dokumentasi & spesifikasi
2. Standar Penulisan Kode
PiLang
Resource-oriented approach (Move-like)
Tidak menggunakan global mutable state
Hindari recursion
Emit event untuk setiap perubahan state
Python / Compiler
Ikuti PEP8
Berikan komentar pada logic penting
Minimal satu unit test untuk setiap perubahan modul compiler
JavaScript / SDK
Ikuti ES Modules
Gunakan async/await
Tambahkan JSDoc
---
π Testing
Sebelum membuat Pull Request, jalankan semua test:
pytest -n auto
Untuk test kontrak tertentu:
pytest tests/test_pilang_token.py
Fuzzing:
python tools/fuzzer.py contracts/PiDEX.pi
Pull Request tanpa test akan diminta revisi.
---
π§ͺ Menjalankan Local Testnet
Jika perubahan Anda terkait VM, storage, ledger, atau host API, jalankan localnet:
python tools/localnet.py --nodes 3
Deploy kontrak untuk pengujian:
python tools/deploy.py --node 4301 --wasm out/PiToken.wasm
---
β Checklist Sebelum PR
Pastikan:
[ ] Kode telah diformat sesuai standar
[ ] Tidak ada warning kritis
[ ] Semua test lulus
[ ] Dokumentasi diperbarui (jika perlu)
[ ] Komentar kode sudah jelas
[ ] PR Anda hanya fokus pada satu fitur / fix
---
π¬ Membuat Pull Request
1. Push branch Anda:
git push origin feature/nama-fitur
2. Buat Pull Request ke:
main
3. Sertakan:
Deskripsi yang jelas
Screenshot / logs (jika relevan)
Dampak perubahan
Penjelasan technical decision
---
π€ Aturan Diskusi & Etika
Hargai kontribusi developer lain
Gunakan bahasa yang sopan
Kritik harus bersifat membangun
Jangan memaksa timeline atau keputusan maintainer
---
π Keamanan
Jika Anda menemukan celah keamanan: JANGAN buat issue publik.
Silakan laporkan secara private ke:
π§ security@nsc-pi.dev (placeholder β ganti jika diperlukan)
---
π Lisensi
Dengan berkontribusi, Anda menyetujui bahwa kontribusi Anda dirilis di bawah MIT License.
---
β Terima kasih
Kontribusi Anda membantu membangun ekosistem developer Pi Network yang lebih besar, lebih aman, dan lebih inovatif.
Mari kita bangun NSC Pi bersama-sama. π
---