Açık kaynaklı bir PHP uygulaması yayınlamak için en iyi uygulamalar


10

Ben yaşayan bir PHP geliştiriciyim ama daha önce hiç açık kaynak projelerinde çalışmamış veya katkıda bulunmamıştım.

Kendi kullanımım için bir CMS geliştiriyorum. Ben çalışan bir prototip var ve bir kez hazır olduğunu düşünüyorum (muhtemelen birkaç ay zaman) bu PHP topluluğu ilgilendi bir şey olabilir.

Oldukça emin bir geliştiriciyim, ancak özellikle açık kaynak sorunları söz konusu olduğunda, bilgimin eksik olduğu alanlar var:

  • Projeyi tanıtmanın ve / veya işbirliği yapmakla ilgilenebilecek diğer kişileri bulmanın en iyi yolu nedir?
  • CMS'im CakePHP tarafından destekleniyor ve temelde üzerine bir katman olarak oturuyor. GitHub'da CakePHP projesini çatalladım: Daha önce sürüm kontrol sistemlerini (SVN) kullandım ama GIT için oldukça yeniyim, bu yüzden işleri "en iyi şekilde" yaptığımdan emin olmak istiyorum
  • Lisans sorunları hakkında nasıl bilgi edinebilirim? Uygulamam için hangi açık kaynak lisansı en iyi olur? Ayrıca, projem birçok açık kaynak projesinden ödünç alıyor, örneğin kod bölümleri var (büyük ölçüde değiştirdim) ama telif hakkı / lisans bildirimleri vardı - Yükümlülüklerimin ne olduğu konusunda hiçbir fikrim yok bunları içeride tutmak

Bunlar, sahip olduğum soruların sadece birkaç örneğidir, ancak benim için yararlı olabilecek bazı kaynaklar olması gerektiğini hissediyorum. Başlamak için en iyi yer nerede, bu sorunları kapsayan en iyi topluluklar / siteler nelerdir? Etrafa bir göz attım ama fazla bir şey bulamadım ...


Lisanslama konusunda birkaç iyi yanıtınız oldu, diğer sorular hakkında bir fikriniz var mı? Muhtemelen bunu birkaç gönderiye bölmeliydim!
user916336

Yanıtlar:


5

Ben Avukat değilim, ama bunu deneyeceğim.

CakePHP, MIT lisansı altında lisanslanmıştır; bu, temel olarak, lisansın söz konusu yazılımla birlikte dağıtılması koşuluyla özel yazılım içinde yeniden kullanılmasına izin verdiği anlamına gelir. Birçok açık kaynaklı projenin yayınladığı GPL lisanslarıyla uyumludur .

"Ödünç aldığınız" diğer projelere gelince , lisans türlerini ve birbirleriyle ve kullanmaya karar verdiğiniz lisans türleriyle uyumluluklarını kontrol etmeniz gerekir. Eğer herhangi tanesi kullanmak GPL lisansı, ayrıca lisans devlet açısından olarak, GPL ile serbest gerekecek

GPL genel kullanım için ilk copyleft lisansıdır, yani türetilmiş eserler sadece aynı lisans koşulları altında dağıtılabilir.

...

GPL genel kullanım için ilk copyleft lisansıdır, yani türetilmiş eserler sadece aynı lisans koşulları altında dağıtılabilir.

Benim önerim, GNU GPL v3 lisansı altında yayınlanmasıdır , çünkü işiniz üzerinde yeterli sahiplik haklarını verirken diğerlerinin hem ticari hem de açık projelerde potansiyel olarak kullanmasına izin verir. Bununla birlikte, "ödünç alınan" projelerin lisanslarının uyumlu olması gerektiğini unutmayın .


Git ve Github ile ilgili en iyi uygulamalara gelince git submodule, kendi kütüphanenize diğer projeleri dahil etmek için kullanın . Bu, dosyaları kendiniz önermediğiniz için dosyaları doğrudan dahil etmekten daha iyidir.

$ git submodule add git://github.com/cakephp/cakephp.git vendor/cake-php
$ git submodule update --init

git submodule de belirsiz olduğum bir şey. Örneğin, projem jQuery ve jQuery UI kullanıyor - GitHub'daki kaynak birçok dosya ve klasöre ayrıldığından alt modül olarak nasıl ekleyebilirim. Ben de kullandığım HTMLPurifier ile aynı şeyi yaşadım. İhtiyacım olan dosyalar bir alt klasörde, ama git submodule ile hiçbir seçeneğim yok gibi görünüyor ama ya projemi gereksiz yere toparlayacağım ekstra şeyler bir sürü dahil etmek ya da başka birinin işini taahhüt etmek gibi benim!

Lisanslamanın doğası gibi, yalnızca istediğiniz dosyaları bölemez ve dahil edemezsiniz. Tüm projeyi paketlendiği gibi dahil etmelisiniz. git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
adlawson

Diğerleri bunu yapmıyor gibi görünüyor: Wordpress'i alın, jQuery'den

1
WordPress sürüm kontrolü için SVN kullanır. Github deposu basitçe bir aynadır. Bildiğim kadarıyla SVN'de "submodule" özelliği yok, bu yüzden onları tavsiye etmekten başka seçenekleri yoktu. Bir başka not, do not iyi uygulama örneği olarak WordPress alır.
adlawson

Ben bir şey eksik sürece jQuery durumunda bunu yapmak için bir yol gibi görünmüyor. Onların repo github.com/jquery/jquery bir göz atın, sadece yüzlerce bireysel .js dosyaları ve bir yapı komut dosyası - bu yüzden sadece jquery.com bir kopyasını indirmek ve kendim taahhüt olmadan projeme dahil edemiyorum , yoksa yanılıyor muyum?

0

Eric S. Raymond'un bu rehberine göz atın (kitabın geri kalanı da okumaya değer).

Kişisel olarak, bu konuda fazla endişelenmeyeceğim - doğrudan bundan para kazanamayacaksınız ve zaten başka hiç kimse yok, çünkü zaten mükemmel ücretsiz genel amaçlı CMS'lerin bolluğu var. Bir viral lisans altındaki kodu (genellikle GPL veya çeşitli) ödünç almadıkça, mümkün olan en liberal lisansla (MIT veya BSD) gitmenizi öneririm, bu durumda bu lisansa bir şekilde zorlanırsınız.

Kullandığınız kütüphanelerin ve snippet'lerin tüm lisanslarını dikkatlice okuduğunuzdan emin olun; kodu yeniden dağıtmanıza ve değiştirmenize izin verilip verilmediğini ve bunları türetilmiş herhangi bir çalışmaya dahil etmeniz gerekip gerekmediğini belirtmelidir (çoğu lisans gerektirir ve gerektirmeyenler için bile, teşekkür etmek için yapabileceğiniz en az şey atıftır. çalışmaları için orijinal yazarlar).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.