Membatalkan fork Blockly

Dokumen ini ditujukan bagi developer yang sebelumnya telah melakukan fork Blockly dan ingin mengupdate ke rilis terbaru Blockly, tanpa melakukan patch pada library. Meskipun ini tampak seperti tugas yang berat, ada beberapa langkah yang dapat Anda lakukan untuk membuat prosesnya lebih mudah dikelola.

Memahami Unforking

Menggunakan Blockly utama berarti Anda menggunakan versi Blockly yang baru dirilis, dan semua penyesuaian Anda menggunakan Blockly API publik tanpa monkeypatching. Unforking adalah pekerjaan yang perlu Anda lakukan untuk menerapkan fungsi kustom fork dengan API utama.

Kasus Unforking Sederhana

Berikut adalah dua alasan umum Anda mungkin melakukan fork, dan solusi untuk cara kembali ke mainline:

  • Anda membuat blok dan generator sendiri tanpa mengubah kode Blockly: Untuk membatalkan fork dalam situasi ini, Anda cukup memindahkan blok dan generator kustom dari repositori Blockly ke kode aplikasi Anda sendiri. Kemudian, Anda dapat mengupdate versi Blockly.
  • Anda menambahkan fungsi kustom di namespace Blockly tanpa mengubah kode Blockly apa pun: Misalnya, Anda menambahkan kolom kustom atau metode helper yang hanya digunakan oleh aplikasi Anda sendiri. Untuk membatalkan fork dalam situasi ini, pindahkan kode kustom ini ke aplikasi Anda sendiri di luar repositori Blockly. Anda akan dapat mengupdate versi Blockly.

Kasus Unforking yang Luas

Menentukan fungsi yang di-fork

Alasan terakhir kami melihat pengguna melakukan fork adalah untuk melakukan patch pada Blockly guna membuat fungsi kustom yang mereka anggap tidak disertakan di upstream pada saat itu. Jika fork Anda sudah sangat usang, kami mungkin telah menambahkan fungsi yang Anda perlukan, baik sebagai plugin maupun di core. Mengetahui fitur yang Anda tambahkan di fork dapat memberikan peta jalan untuk fitur yang perlu Anda update.

Memahami arsitektur

Setelah Anda memahami fitur yang menggunakan API khusus fork, pertimbangkan:

  • Untuk setiap fitur yang menggunakan fork, apakah ada cara untuk mereplikasinya menggunakan Blockly API?
  • Jika Anda sepertinya tidak dapat mereplikasi fitur menggunakan Blockly API, hubungi kami melalui forum atau laporkan masalah di GitHub. Tim kami kemudian akan menyelidiki penambahan API untuk mengaktifkan penyesuaian Anda.

Menentukan jalur unforking

Langkah berikutnya adalah benar-benar memulai proses penerapan arsitektur berbasis Blockly baru untuk fitur menggunakan fork. Ada dua pendekatan utama yang dapat Anda lakukan:

  • Mengupgrade Blockly dan melihat apa yang rusak: Anda akan langsung melihat area dalam kode yang perlu diperbarui. Anda dapat menggunakannya bersama dengan perilaku kustom yang sudah Anda ketahui untuk memandu pengembangan.
  • Memfaktorkan ulang kode untuk memisahkan fitur dari Blockly: Hal ini mengharuskan Anda untuk mendapatkan pemahaman mendalam tentang fitur mana yang khusus untuk fork Anda dan mana yang berasal dari Blockly. Setelah kode Anda dipisahkan sepenuhnya, ganti Blockly versi lama dengan versi terbaru, lalu perbaiki masalah integrasi yang tersisa.

Langkah Selanjutnya

Berikut beberapa aturan yang harus Anda ikuti sebagai developer Blockly di masa mendatang:

  • Secara umum, Anda tidak boleh menambahkan class baru ke namespace Blockly. Anda dapat mendaftarkan kolom kustom atau class lain yang dapat didaftarkan tanpa mendeklarasikannya di dalam repositori Blockly atau di namespace Blockly.
  • Anda tidak boleh mengandalkan alat build Blockly untuk mengompilasi aplikasi Anda sendiri. Kami tidak menganggap alat build sebagai bagian dari API publik, sehingga kami dapat melakukan perubahan pada alat tersebut yang dapat merusak aplikasi Anda. Anda bertanggung jawab untuk mengompilasi aplikasi jika ingin melakukannya.

Hubungi

Tim Blockly tersedia melalui Blockly Forum. Jika Anda mengalami masalah selama proses unfork, jangan ragu untuk mempostingnya di sana dan kami dapat membantu.