Proses
Plugin melalui empat tahap: saran, diskusi, penerapan, dan publikasi.
Saran
Plugin dimulai sebagai saran. Anda dapat menyarankan plugin dengan membuat masalah baru dengan template Permintaan Fitur.
Baca tentangSelain informasi permintaan fitur dasar, saran plugin harus menyertakan:
- API yang akan diekspos oleh plugin.
- API yang perlu ditambahkan atau diubah di Blockly inti untuk mendukung plugin.
- Screenshot, GIF, atau mock-up jika plugin menyertakan fitur UI.
- Penjelasan tentang alasan mengapa plugin harus berupa plugin pihak pertama, bukan plugin pihak ketiga.
Tim Blockly akan meninjau saran begitu saran diterima, lalu menutup masalah atau menambahkan label status: diskusi.
Diskusi
Selanjutnya, plugin akan masuk ke fase diskusi. Fase ini meliputi:
- Klarifikasi fungsi yang diinginkan.
- Klarifikasi API plugin.
- Perencanaan implementasi.
- Merencanakan pengujian.
- Pembahasan tentang perubahan API di Blockly inti.
- Membagi plugin besar ke dalam langkah-langkah implementasi.
- Penamaan plugin, berdasarkan konvensi penamaan kami.
- Konfirmasi bahwa semua kriteria pihak pertama akan terpenuhi.
Diskusi ini umumnya terjadi pada masalah GitHub. Semakin kecil cakupan plugin, semakin cepat fase diskusinya. Plugin yang lebih besar dapat menarik perhatian komunitas dan opini yang kuat tentang Solusi yang Tepat. Jika ini terjadi pada masalah Anda, selamat. Anda telah menemukan sesuatu yang sangat diminati banyak orang.
Tujuannya adalah pada akhir fase diskusi, semua keputusan desain utama telah dibuat dan daftar langkah implementasi yang jelas telah tersedia. Keduanya harus didokumentasikan dalam komentar terkait masalah tersebut.
Selama diskusi, kami dapat memutuskan bahwa plugin harus berupa plugin pihak ketiga,
dan tidak dipublikasikan dalam cakupan @blockly
. Dalam hal ini kami akan menjelaskan
mengapa dan menutup masalahnya.
Setelah diskusi selesai, anggota tim Blockly akan menambahkan label status: implementation ke masalah.
Penerapan
Langkah-langkah penerapan meliputi:
- Menjalankan
npx @blockly/create-package
untuk menyiapkan plugin dan direktorinya dari template. Pelajari lebih lanjut... - Menerapkan logika inti untuk plugin.
- Mengimplementasikan UI, jika diperlukan.
- Menguji plugin, menggunakan mocha.
- Mendokumentasikan plugin, termasuk
README
.
Jika masalah plugin memiliki label status: implementation, artinya plugin sudah siap untuk diimplementasikan atau sedang aktif diterapkan. Untuk menghindari upaya duplikat, siapa pun yang tertarik dapat mengomentari masalah tersebut dan menanyakan apakah masalah tersebut masih terbuka untuk menerima kontribusi.
Penerapan dapat dilakukan oleh beberapa kontributor secara paralel. Anda dapat mengimplementasikan plugin secara kolaboratif di fork Anda sendiri, atau melalui permintaan pull terhadap repositori ini. Jika Anda ingin berkolaborasi pada plugin di repositori ini, minta tim Blockly untuk membuat cabang fitur untuk Anda.
Plugin harus ditambahkan ke file
gh-pages/index.md
di cabang master
dari contoh blockly. Ini akan menyebabkan plugin tersebut muncul di situs Plugin kami. Plugin pihak pertama
harus mengarah ke halaman pengujiannya. Plugin pihak ketiga juga dapat ditambahkan
ke halaman ini, dan dapat mengarah ke link yang dipilih pemiliknya, seperti
demo yang dihosting atau halaman npm.
Memublikasikan
Terakhir, publikasi. Tim Blockly menggunakan Lerna untuk mengelola pembuatan versi dan publikasi untuk semua plugin.
Setiap hari Kamis, plugin apa pun yang telah berubah sejak rilis terakhirnya akan dipublikasikan. Jika Anda ingin perubahan dipublikasikan lebih cepat, harap cantumkan pada permintaan pull Anda.
Situs Plugin juga diperbarui setiap kali plugin dipublikasikan.
Plugin yang belum siap dipublikasikan harus ditandai sebagai private
di
package.json
. Hal ini dapat terjadi jika plugin bergantung pada perubahan yang belum dipublikasikan
di core Blockly. Core Blockly dipublikasikan
pada minggu terakhir setiap kuartal (tiga bulan sekali).