Açık kaynağın “nedir”i ve “neden”i

Yani açık kaynak kodlu bir projeye başlamayı mı düşünüyorsun? Tebrikler! Dünya katkınızı takdir ediyor. Açık kaynağın ne olduğu ve insanların neden yaptıkları hakkında konuşalım.

“Açık kaynak” ne demek?

Bir proje açık kaynak olduğunda, herhangi biri herhangi bir amaç için projenizi görüntüleyebilir, kullanabilir, değiştirebilir ve dağıtabilir. Bu izinler açık kaynaklı bir lisans aracılığıyla uygulanmaktadır.

Açık kaynak güçlüdür çünkü fikirlerin hızla yayılmasına izin vererek, benimseme engellerini azaltır.

Nasıl çalıştığını anlamak için, arkadaşınızın herkes yemek getirsin partisi verdiğini hayal edin ve vişneli turta götürmüşsünüz.

  • Herkes turta yemek istedi (kullanma)
  • Turta çok popüler oldu! Sizden tarifi isterler (görüntüleme)
  • Bir arkadaşın, pasta şefi Alex şekeri azaltmayı önerir (değiştirme)
  • Başka bir arkadaş, Lisa gelecek hafta bir akşam yemeği için kullanmak istiyor (dağıtma)

Buna karşılık, kapalı kaynak işlemi bir restorana gidip bir dilim vişneli turta siparişi vermek gibidir. Pasta yemek için bir ücret ödemeniz gerekir ve restoran muhtemelen size tariflerini vermez. Pastalarını aynen kopyalayıp kendi adınızla satarsanız, restoran size karşı dava açabilir.

İnsanlar neden işlerini açık kaynak olarak sunarlar?

Bir kişinin veya örgütün bir projeyi açmak istemesinin birçok nedeni vardır. Bazı örnekler:

  • İşbirliği: Açık kaynaklı projeler, dünyadaki herhangi birinden değişiklikleri kabul edebilir. Exercism, örneğin, 350’den fazla katkıda bulunanlarla bir programlama egzersizi platformudur.

  • Adapte etme ve yeniden tanımlama: Açık kaynaklı projeler herkes tarafından herhangi bir amaç için kullanılabilir. İnsanlar başka şeyler yapmak için bile kullanabilirler. Örneğin WordPress, b2 adı verilen mevcut bir projenin dalı olarak başladı.

  • Şeffaflık: Açık kaynaklı bir projeyi herkes hata veya tutarsızlık açısından inceleyebilir. Şeffaflık, Bulgaristan veya ABD gibi hükümetlerle, bankacılık veya sağlık gibi endüstrileri düzenleyen ve Let’s Encrypt gibi güvenlik yazılımları için önemlidir.

Açık kaynak sadece yazılım için değil. Veri setlerinden kitaplara kadar her şeyi açık kaynak olarak sunabilirsiniz. GitHub’a göz atın başka nelerin açık kaynak olabileceğini görün.

Açık kaynak “ücretsiz” anlamına mı geliyor?

Açık kaynağın en büyük çekimlerinden biri paraya mal olmamasıdır. Bununla birlikte, “ücretsiz” olması, açık kaynağın toplam değerinin bir yan ürünüdür.

Açık kaynaklı bir lisans, herkesin projenizi neredeyse her amaç için kullanmasını, değiştirmesini ve paylaşmasını gerektirdiğinden, projelerin kendileri ücretsiz olma eğilimindedir. Projenin kullanımı paraya mal olursa, herkes yasal olarak bir kopya çıkarabilir ve bunun yerine ücretsiz sürümü kullanabilir.

Sonuç olarak, çoğu açık kaynaklı proje ücretsizdir, ancak “ücretsiz” açık kaynak tanımlamasının bir parçası değildir. Açık kaynaklı projeler için dolaylı olarak ikili lisanslama veya sınırlı özellikler aracılığıyla ücretlendirme yapılmasına rağmen, açık kaynaklı resmi tanımlamaya uymanın yolları vardır.

Kendi açık kaynak projemi başlatmalı mıyım?

Kısa cevap evet, çünkü sonuç ne olursa olsun, kendi projenizi başlatmak, açık kaynağın nasıl çalıştığını öğrenmek için harika bir yoldur.

Daha önce hiç kaynaklı bir proje açmadıysanız, insanların ne söyleyeceği veya birileri tarafından hiç fark edilip edilmeyeceği konusunda endişeli olabilirsiniz. Sizin ruh haliniz böyle ise, kesinlikle yalnız değilsin!

Açık kaynak eser, ister yazı ister resim olsun, diğer tüm yaratıcı faaliyetler gibidir. Çalışmanızı dünyayla paylaşmak korkutucu gelebilir, ancak daha iyi olmanın tek yolu pratik yapmaktır - izleyiciniz olmasa bile.

Henüz ikna olmadıysanız, hedeflerinizin ne olabileceğini düşünmek için biraz zaman ayırın.

Hedeflerinizi belirlemek

Hedefler, neyin üzerinde çalışacağınızı, neye hayır diyeceğinizi ve başkalarından yardım almanız gereken yerleri bulmanıza yardımcı olabilir. Kendinize sorarak başlayın, bu açık kaynak projeyi neden yapıyorum?

Bu sorunun doğru bir cevabı yok. Tek bir proje için birden fazla hedefiniz veya farklı hedefleri olan farklı projeleriniz olabilir.

Tek amacınız çalışmanızı göstermekse, katkı bile istemeyebilirsiniz ve hatta README’de de söyleyebilirsiniz. Öte yandan, insanların katkıda bulunanmasını istiyorsanız, açık belgelere yatırım yapacak ve yeni gelenlerin kendilerini rahat hissetmelerini sağlayacaksınız.

Projeniz büyüdükçe, topluluğunuzun yalnızca sizin kodunuzdan daha fazlasına ihtiyacı olabilir. Sorunlara cevap vermek, kodları incelemek ve projenizi geliştirmek, açık kaynaklı bir projedeki önemli görevlerdir.

Kodlama dışı görevler için harcadığınız zaman miktarı projenizin boyutuna ve kapsamına bağlı olsa da, bunları kendiniz yapmak veya size yardımcı olacak birini bulmak için bir sorumlu olarak hazırlanmalısınız.

Bir projeye açık kaynak veren bir şirketin bir parçasıysanız, projenizin gelişmesi gereken dahili kaynaklara sahip olduğundan emin olun. Projeyi başlattıktan sonra korumaktan kimin sorumlu olduğunu ve bu görevleri topluluğunuzla nasıl paylaşacağınızı belirlemek isteyeceksiniz.

Terfi, işlemler ve projenin sürdürülmesi için özel bir bütçeye veya personele ihtiyaç duyuyorsanız, bu konuşmaları erkenden başlatın.

Diğer projelere katkıda bulunmak

Amacınız başkalarıyla nasıl işbirliği yapabileceğinizi veya açık kaynağın nasıl çalıştığını anlamaksa, mevcut bir projeye katkıda bulunmayı düşünün. Zaten kullandığınız ve sevdiğiniz bir projeyle başlayın. Bir projeye katkıda bulunmak, yazım hatalarını düzeltmek veya belgeleri güncellemek kadar kolay olabilir.

Katkıda bulunmaya nasıl başlayacağınızdan emin değilseniz, Açık Kaynağa Nasıl Katkıda Bulunur kılavuzumuza bakın.

Kendi açık kaynak projenizi başlatmak

Projenizi başlatmak için mükemmel bir zaman yoktur. Bir fikri, ya da yıllarca kapalı kaldıktan sonra eski bir çalışmayı açabilirsiniz.

Genel olarak konuşursak, başkalarının çalışmalarını görmesi ve çalışmalarınız hakkında geri bildirim vermesi konusunda kendinizi rahat hissettiğinizde açık kaynak projenizi yayınlamalısınız.

Projenizi hangi aşamada yayınlamaya karar verirseniz verin, her proje aşağıdaki belgeleri içermelidir:

Bir geliştirici olarak, bu bileşenler beklentileri iletmenize, katkıları yönetmenize ve herkesin yasal haklarını (kendi haklarınız dahil) korumanıza yardımcı olur. Olumlu bir deneyim yaşama şansınızı önemli ölçüde artırırlar.

Projeniz GitHub’taysa, bu dosyaları önerilen dosya adlarıyla kök dizininize koymak GitHub’ın onları okuyucularınıza tanıtmasına ve otomatik olarak göstermesine yardımcı olacaktır.

Bir lisans seçimi

Açık kaynaklı lisans, başkalarının projenize yanıt vermeden kullanabileceğini, kopyalayabileceğini, değiştirebileceğini ve katkıda bulunabileceğini garanti eder. Aynı zamanda sizi kötü yasal durumlardan korur. Açık kaynak kodlu bir proje başlatırken projenize bir lisans eklemelisiniz.

Hukiki işler eğlenceli değildir. İyi haber şu ki, mevcut bir lisansı kopyalayıp havuzunuza yapıştırabilirsiniz. Zor işinizi korumak sadece bir dakikanızı alacaktır.

MIT, Apache 2.0 ve GPLv3 en popüler açık kaynaklı lisanslardır, ancak seçilebilecek başka seçenekler de vardır.

GitHub’da yeni bir proje oluşturduğunuzda, size bir lisans seçme seçeneği sunulur. Açık kaynak lisansı eklemek GitHub projenizi açık kaynak yapar.

Pick a license

Eğer bir açık kaynak projesi yönetmek hukuki yönleri etrafında diğer sorularınız veya endişeleriniz varsa, sizin ihtiyaçlarınızı giderebilecek içeriğimiz var .

README Yazma

README’ler projenizi nasıl kullanacağınızı açıklamaktan daha fazlasını yapar. Ayrıca, projenizin neden önemli olduğunu ve kullanıcılarınızın bununla neler yapabileceğini de açıklar.

README’nizde aşağıdaki soruları cevaplamaya çalışın:

  • Bu proje ne yapıyor?
  • Bu proje neden faydalıdır?
  • Kullanmaya naıl başlarım?
  • İhtiyacım olursa nereden daha fazla yardım alabilirim?

README’nizi, katkıları nasıl ele aldığınız, projenin amaçlarının ne olduğu ve lisanslar ve atıflar hakkında bilgiler gibi diğer soruları yanıtlamak için kullanabilirsiniz. Katkı kabul etmek istemiyorsanız veya projeniz henüz olgun değilse, bunu mutlaka belirtin.

Bazen, insanlar bir README yazmaktan kaçınırlar çünkü proje bitmemiş gibi hissederler veya katkı kabul etmek istemezler. Bunların hepsi yazmak için çok iyi nedenler.

Daha fazla ilham almak için, eksiksiz bir README yazmak için @dguo’nun “Make a README” kılavuzunu veya @PurpleBooth’ın README şablonunu kullanmayı deneyin.

Kök dizinine bir README dosyası eklediğinizde, GitHub otomatik olarak depo ana sayfasında görüntüler.

Katkıda bulunma rehberinizi yazmak

Bir CONTRIBUTING dosyası, izleyicilerinize projenize nasıl katkıda bulunabileceklerini söyler. Örneğin, şunlarla ilgili bilgiler de ekleyebilirsiniz:

  • Hata raporu nasıl gönderilir (sorun ve istek şablonlarını kullanmayı deneyin)
  • Yeni bir özellik nasıl önerilir
  • Proje ortamı nasıl kurulur ve testler nasıl yapılır

Teknik ayrıntılara ek olarak, bir CONTRIBUTING dosyası, aşağıdakiler gibi katkılar için beklentilerinizi iletme fırsatıdır:

  • Aradığınız katkı türleri
  • Proje için yol haritanız veya vizyonunuz
  • Katkıda bulunanlar sizinle nasıl temasa geçmeli (veya geçmemeli)

Sıcak, arkadaşça bir ton kullanmak ve katkılar için özel önerilerde bulunmak (örneğin, dokümantasyon yazmak veya bir web sitesi yapmak gibi) yeni gelenlerin kendilerini memnun ve istekli hissetmelerini sağlama konusunda yardımcı olabilir.

Örneğin, Active Admin katkıda bulunan rehberine şu şekilde başlar:

Öncelikle, Active Admin’e katkıda bulunduğunuz için teşekkür ederiz. Active Admin’i harika bir araç yapan sizin gibi insanlar.

Projenizin ilk aşamalarında, CONTRIBUTING dosyanız basit olabilir. Hataların veya dosya sorunlarının nasıl bildirileceğini ve katkı sağlamak için teknik gereksinimleri (testler gibi) her zaman açıklamalısınız.

Zamanla, CONTRIBUTING dosyanıza sıkça sorulan diğer soruları ekleyebilirsiniz. Bu bilgileri yazmak, daha az kişinin size aynı soruları tekrar soracağı anlamına gelir.

CONTRIBUTING dosyanızı yazarken daha fazla yardım için @nayafia’nın katkıda bulunma rehber şablonuna veya @mozilla’nın “Bir CONTRIBUTING.md Nasıl Oluşturulur” makalesine bakabilirsiniz.

README’nizden CONTRIBUTING dosyanıza bağlantı verin, böylece daha çok insan görsün. CONTRIBUTING dosyasını projenizin deposuna yerleştirirseniz, bir katılımcı bir sorun oluşturduğunda veya bir PR açtığında GitHub otomatik olarak dosyanıza bağlanır.

Contributing guidelines

Davranış kural listesi oluşturmak

Son olarak, bir davranış kural listesi projenizin katılımcı davranışları için temel kurallar koymanıza yardımcı olur. Bir topluluk veya şirket için açık kaynak kodlu bir proje başlatıyorsanız, bu özellikle değerlidir. Davranış kuralları, sağlıklı ve yapıcı topluluk davranışını kolaylaştırmanıza yardımcı olur ve bu da geliştirici olarak stresinizi azaltacaktır.

Daha fazla bilgi için Davranış Kuralları kılavuzumuza göz atın.

Katılımcıların nasıl davranmasını beklediğinizi iletmenin yanı sıra, bir davranış kural listesi de bu beklentilerin kimlere, ne zaman başvuruda bulunduklarına ve bir ihlal meydana geldiğinde ne yapılması gerektiğini açıklamaya meyillidir.

Açık kaynaklı lisanslara benzer şekilde, davranış kuralları için de yeni ortaya çıkan standartlar vardır, bu yüzden kendiniz yazmak zorunda değilsiniz. Contributor Covenant, Kubernet, Rails ve Swift dahil olmak üzere 40.000’den fazla açık kaynaklı proje tarafından kullanılan bir davranış kural listesi şablonudur. Hangi metni kullanırsanız kullanın, gerektiğinde davranış kurallarınızı uygulamak için hazırlıklı olmalısınız.

Metni doğrudan projenizdeki bir CODE_OF_CONDUCT dosyasına yapıştırın. Dosyayı projenizin kök dizininde tutun, böylece README’nizden kolayca bulabilir ve linkleyebilirsiniz.

Projenizi isimlendirme ve markalama

Marka, gösterişli bir logo veya çekici bir proje adından daha fazlasıdır. Projeniz hakkında nasıl konuştuğunuzla ve mesajınızla kime ulaştığınızla ilgilidir.

Doğru ismi seçmek

Hatırlanması kolay olan ve ideal olarak projenin ne yaptığı hakkında bir fikir veren bir isim seçin. Örneğin:

  • Sentry çöküş raporlaması için uygulamaları izler
  • Thin hızlı ve basit bir Ruby web sunucusudur

Mevcut bir projenin üzerine inşa ediyorsanız, adlarını ön ek olarak kullanmak projenizin ne yaptığını netleştirmeye yardımcı olabilir (örneğin, node-fetch window.fetch komutunu getirir).

Her şeyden önce netlik düşünün. Püf noktaları eğlencelidir, ancak bazı şakaların diğer kültürlere veya sizden farklı deneyimlere sahip insanlara tercüme edilemeyebileceğini unutmayın. Potansiyel kullanıcılarınızdan bazıları şirket çalışanları olabilir: projenizi işte açıklamak zorunda kaldıklarında onları rahatsız etmek istemezsiniz!

İsim çatışmalarından kaçınmak

Özellikle aynı dili veya ekosistemi paylaşıyorsanız, benzer bir adla açık kaynaklı projeleri kontrol edin. İsminiz popüler bir projeyle örtüşüyorsa, takipçilerinizin kafaları karışabilir.

Bir web sitesi, Twitter hesabı veya projenizi temsil eden diğer özellikleri istiyorsanız, istediğiniz adları aldığınızdan emin olun. İdeal olarak, bu isimleri henüz kullanmak istemediğiniz zamanlarda bile, rahat etmek için şimdiden alın.

Projenizin adının herhangi bir ticari markayı ihlal etmediğinden emin olun. Bir şirket sizden projenizi kapatmanızı isteyebilir veya hatta aleyhinize yasal işlem başlatabilir. Bu riske değmez.

WIPO Global Marka Veritabanını ticari marka çakışmaları için kontrol edebilirsiniz. Eğer bir şirketteyseniz, bu hukuk ekibinizin size yardımcı olabileceği şeylerden biridir.

Sonunda, proje adınız için hızlı bir Google araması yapın. İnsanlar projenizi kolayca bulabilecek mi? Arama sonuçlarında görmelerini istemediğiniz başka bir şey var mı?

Nasıl yazdığın (ve kodladığın) markanı da etkiler!

Projenizin ömrü boyunca birçok yazı yazacaksınız: README’ler, öğretici belgeler, topluluk belgeleri, sorulara cevaplar, belki de haber bültenleri ve posta listeleri.

Resmi bir belge veya geçici bir e-posta olsun, yazma stiliniz projenizin markasının bir parçasıdır. Hedef kitlenize nasıl sesleneceğinizi ve bunun iletmek istediğiniz ton olup olmadığını düşünün.

Sıcak, kapsayıcı bir dil kullanmak (“onlar” gibi, tek bir kişiye atıfta bulunsanız bile), projenizin yeni katılımcılar için memnuniyetle karşılanmasında yardımcı olabilir. Okuyucularınızın çoğu anadili İngilizce olmayabilir.

Kelimeleri nasıl yazdığınızın ötesinde, kodlama stiliniz de projenizin markasının bir parçası olabilir. Angular ve jQuery titiz kodlama stilleri ve yönergeleri olan projelere iki örnektir.

Yeni başladığınızda, projeniz için bir stil rehberi yazmak gerekli değildir ve yine de projenize farklı kodlama stilleri eklemekten zevk aldığınızı fark edebilirsiniz. Ancak, yazma ve kodlama stilinizin farklı insanları nasıl çekebileceğini veya caydıracağını tahmin etmelisiniz. Projenizin ilk aşamaları, görmek istediğiniz emsali belirleme fırsatınızdır.

Lansman öncesi kontrol listeniz

Projenizi açmaya hazır mısınız? İşte size yardımcı olacak bir kontrol listesi. Bütün kutuları kontrol ettin mi? Gitmeye hazırsın! “Yayınlayı” tıklayın ve arkanıza yaslanın.

Belgeler

Kod

İnsanlar

Bireyseniz:

Bir şirket veya kuruluşsanız:

Başardın!

İlk açık kaynak projenizi yayınladığınız için tebrikler. Sonuç ne olursa olsun, açık kaynak çalışmak topluma bir armağandır. Her katkı, yorum ve PR ile kendiniz ve başkalarının öğrenmesi ve büyümesi için fırsatlar yaratıyorsunuz.