Proje Çatalı Nedir?

Bilgi işlem uygulamalarında, proje çatalı, yerleşik bir yazılım ürününün belirli bir yönünün veya özelliğinin, orijinal yazılımın odağı olmayan uygulamalara yönelik yeni bir ürün oluşturmak için temel olarak kullanıldığı bir durumdur. Proje çatallarının oluşturulması yaygın bir durumdur ve açık kaynak kodlu veya özgür yazılımlar kullanılarak yapılabilir. Tescilli bir yazılım ürününün bir yönünü kullanarak ortaya çıkan bir proje çatalı projesi örneği de bulunmaktadır.

Yazılım mühendisliği sürecinde, artan bir tüketici gereksinimlerini karşılayan yeni yazılım paketlerinin sürekli gelişimi vardır. Genellikle, mevcut yazılım bu yeni ürünler için ilham kaynağıdır. Mevcut bir yazılım paketinin bir veya iki özelliği, yeni bir ürünün temelini oluşturabilir. Bu senaryoda, yeni yazılımın önceden var olan yazılım ürününden "çatallanmış" veya dallanmış olduğu söylenir. Yeni proje çatalı ödünç alınan özelliklerin çekiciliğini artırmanın yanı sıra, orijinal yazılım teklifinde bulunmayan yeni özellikler eklemeyi hedefliyor.

Bir proje çatalının oluşturulması için açık kaynaklı yazılımın kullanılması nispeten basittir. Orijinal geliştiricinin iznini veya kaynak yazılımın geliştiricileri ile herhangi bir şekilde işbirliği yapma gereksinimi yoktur. Ancak, bir proje çatalı geliştiricisinin orijinal geliştiricilerle, bazen proje çatalı üzerinde birlikte çalışma noktasına kadar etkileşime girmesi nadir değildir. Ancak, bu iletişim ve işbirliği düzeyi tamamen isteğe bağlıdır ve özgür yazılım söz konusu olduğunda bir gereklilik değildir.

Özel yazılım uygulamalarında, proje çatalı oluşturmak normal olarak, lisansı orijinal yazılımda tutan kişi tarafından gerçekleştirilir. Bununla birlikte, bağımsız bir geliştiricinin, branş veya çatalın geliştirilmesinde lisanslı yazılımın sınırlı kullanımına izin veren sözleşmeye bağlı bir anlaşmaya girmesi mümkündür. Daha yaygın olarak, orijinal yazılımı kontrol eden şirket, proje çatalını geliştirmek ve lisansın tam kontrolünü sağlamak için sadece kurum içi kaynakları kullanacaktır. Bu yaklaşım genellikle özel yazılımın zengin ve zengin sürümlerini geliştirirken veya orijinal yazılımla çalışacak yardımcı yazılım paketleri oluştururken kullanılır.

Bir proje çatalının, sonunda orijinal yazılımı gölgeleyen ve hatta yerini alan bir yazılım paketinin geliştirilmesine yol açması mümkündür. Diğer zamanlarda, çatallar yalnızca sonuçta orijinal yazılım uygulamasına yönlendirilmek ve yeni ve geliştirilmiş bir sürüm olarak pazarlanmak üzere gelişebilir.