Dalam konteks lisensi perangkat lunak dan sumber terbuka, "forking" mengacu pada proses pembuatan versi baru dan berbeda dari proyek perangkat lunak yang sudah ada, dengan menggunakan kode sumber aslinya sebagai dasar. Praktik ini memungkinkan pengembang untuk memodifikasi, memperluas, dan mengadaptasi perangkat lunak agar selaras dengan kebutuhan atau tujuan spesifik mereka, tanpa memengaruhi proyek aslinya. Forking telah menjadi bagian integral dari komunitas open source karena dukungan bawaannya terhadap kolaborasi, inovasi, dan solusi perangkat lunak yang dapat disesuaikan.
Forking terjadi ketika pengembang memutuskan untuk menyimpang dari jalur pengembangan utama proyek perangkat lunak, menciptakan cabang terpisah untuk mengejar pilihan atau tujuan desain yang berbeda. Cabang-cabang ini, atau "garpu", bisa bersifat sementara, dengan tujuan mengintegrasikan kembali perubahan ke dalam proyek utama, atau permanen, yang mengarah pada pembentukan proyek yang berbeda dan independen. Garpu dapat diklasifikasikan menjadi dua kategori utama:
- Hard Fork: Jenis fork ini menciptakan pemisahan permanen dan tidak kompatibel dari proyek perangkat lunak asli, sehingga menghasilkan dua proyek independen yang berbagi basis kode yang sama. Hard fork biasanya muncul ketika timbul perbedaan pendapat yang signifikan dalam komunitas pengembang mengenai arah atau tujuan pengembangan di masa depan. Contoh hard fork yang terkenal adalah pembuatan mata uang kripto Bitcoin Cash (BCH) dari Bitcoin (BTC) pada tahun 2017.
- Soft Fork: Soft fork, di sisi lain, adalah pemisahan sementara dari proyek utama, dengan tujuan untuk berkolaborasi pada fitur baru atau peningkatan sebelum akhirnya digabungkan kembali ke proyek utama. Soft fork sering kali muncul sebagai cara yang aman dan efektif untuk menguji ide dan inovasi baru sebelum diintegrasikan ke dalam basis kode utama.
Penting untuk dicatat bahwa model lisensi open source memainkan peran penting dalam praktik forking. Lisensi sumber terbuka memberikan kebebasan kepada pengembang untuk mengakses, memodifikasi, dan mendistribusikan ulang kode sumber proyek perangkat lunak, memastikan bahwa fork dapat dibuat dan dipelihara secara legal. Oleh karena itu, Forking merupakan komponen penting dalam pengembangan perangkat lunak sumber terbuka, memberdayakan pengembang untuk beradaptasi dan membangun proyek yang ada guna mencapai visi dan tujuan mereka sendiri.
Dalam lanskap pengembangan perangkat lunak, forking telah memainkan peran penting dalam mendorong inovasi, mempercepat proses pengembangan, dan memungkinkan ketersediaan solusi perangkat lunak yang dapat disesuaikan secara luas. Misalnya, sistem operasi Linux telah mengalami fork berkali-kali, sehingga menghasilkan banyak distribusi (distro) yang melayani berbagai kasus penggunaan, industri, dan preferensi pengguna. Ekosistem distribusi Linux ini menunjukkan kekuatan forking sebagai sarana untuk memenuhi beragam kebutuhan dan mendorong lingkungan pertumbuhan inklusif dalam pengembangan perangkat lunak.
Platform AppMaster, sebagai solusi pengembangan no-code terkemuka yang diarahkan pada pembuatan aplikasi backend, web, dan seluler, mengakui pentingnya forking dalam ekosistem pengembangan perangkat lunak modern. Meskipun AppMaster terutama berfokus pada pembuatan aplikasi baru menggunakan alat desain visual intuitifnya, pelanggan langganan Business+ dan Enterprise dapat memperoleh paket kode sumber proyek mereka dan mengadopsi praktik forking sesuai kebutuhan untuk mengejar jalur pengembangan independen.
Dengan memanfaatkan kode sumber Go (golang) yang dihasilkan untuk aplikasi backend atau kerangka kerja Vue3 dan kode JS/TS untuk aplikasi web, atau kode Kotlin dan Jetpack Compose atau SwiftUI untuk aplikasi seluler, pengguna dapat membuat fork yang memenuhi kebutuhan atau tujuan tertentu , di luar cakupan lingkungan no-code AppMaster. Fleksibilitas ini memungkinkan pelanggan AppMaster memanfaatkan keunggulan praktik forking, sambil tetap mendapatkan manfaat dari pengembangan aplikasi cepat yang disediakan oleh kemampuan no-code platform.
Singkatnya, forking adalah praktik utama dalam lisensi perangkat lunak dan konteks sumber terbuka yang memungkinkan pengembang membuat versi baru dari proyek perangkat lunak yang ada dengan memanfaatkan kode sumber asli. Hal ini mendorong inovasi, mempercepat proses pengembangan, dan memastikan bahwa solusi perangkat lunak dapat disesuaikan untuk memenuhi kebutuhan atau tujuan tertentu. Platform AppMaster mengakui pentingnya forking dalam pengembangan perangkat lunak kontemporer, menyediakan paket kode sumber yang dihasilkan kepada pelanggan, memungkinkan mereka untuk mengejar jalur pengembangan independen melalui praktik forking bila diperlukan.