Najlepsze praktyki dotyczące wypuszczania aplikacji PHP typu open source


10

Zarabiam na życie programistą PHP, ale nigdy wcześniej nie pracowałem ani nie brałem udziału w projektach typu open source.

Tworzę CMS na własny użytek. Mam działający prototyp i myślę, że gdy będzie gotowy (prawdopodobnie za kilka miesięcy), może to zainteresować społeczność PHP.

Jestem dość pewnym programistą, ale w niektórych obszarach brakuje mojej wiedzy, szczególnie jeśli chodzi o problemy z otwartym oprogramowaniem:

  • Jaki jest najlepszy sposób na promocję projektu i / lub znalezienie innych osób, które mogą być zainteresowane współpracą
  • Mój CMS jest zasilany przez CakePHP i zasadniczo leży na nim jako warstwa. Rozwinąłem projekt CakePHP na GitHub: wcześniej korzystałem z systemów kontroli wersji (SVN), ale jestem dość nowy w GIT, więc chcę mieć pewność, że robię wszystko w „najlepszy sposób”
  • Jak mogę dowiedzieć się o problemach licencyjnych? Która licencja typu open source byłaby najlepsza dla mojej aplikacji? Ponadto mój projekt zapożycza z wielu innych projektów open source, na przykład mam sekcje kodu (które mocno zmodyfikowałem), ale które zawierały informacje o prawach autorskich / licencjach - nie mam pojęcia, jakie są moje obowiązki w zakresie trzymanie ich w

To tylko kilka przykładów pytań, które mam, ale wydaje mi się, że muszą istnieć pewne zasoby, które byłyby dla mnie przydatne. Gdzie najlepiej zacząć, jakie są najlepsze społeczności / witryny zajmujące się tymi problemami? Rozejrzałem się, ale nie byłem w stanie wymyślić wiele ...


Czy masz kilka dobrych odpowiedzi na temat licencjonowania, jakieś pomysły na inne pytania? Być może powinienem podzielić to na kilka postów!
user916336,

Odpowiedzi:


5

Nie jestem prawnikiem, ale dam temu szansę.

CakePHP jest licencjonowany na licencji MIT , co w zasadzie oznacza, że ​​zezwala na ponowne użycie w oprogramowaniu zastrzeżonym, pod warunkiem, że licencja jest rozpowszechniana z tym oprogramowaniem. Jest kompatybilny z licencjami GPL , na podstawie których wydano wiele projektów open source.

Jeśli chodzi o inne projekty, które „pożyczasz”, musisz sprawdzić ich typy licencji i sprawdzić ich zgodność ze sobą oraz typ licencji, z której zdecydujesz się skorzystać. Jeśli którykolwiek z nich korzysta z licencji GPL , musisz również wydać licencję z GPL, zgodnie z warunkami licencji

GPL jest pierwszą licencją typu copyleft do użytku ogólnego, co oznacza, że ​​utwory pochodne mogą być rozpowszechniane wyłącznie na tych samych warunkach licencyjnych.

...

GPL jest pierwszą licencją typu copyleft do użytku ogólnego, co oznacza, że ​​utwory pochodne mogą być rozpowszechniane wyłącznie na tych samych warunkach licencyjnych.

Moją propozycją jest wydanie na licencji GNU GPL v3, ponieważ daje ono odpowiednie prawa własności do twojej pracy, a jednocześnie umożliwia innym potencjalne wykorzystanie jej zarówno w komercyjnych, jak i otwartych projektach. Pamiętaj jednak, że licencje „pożyczonych” projektów muszą być kompatybilne .


Jeśli chodzi o najlepsze praktyki z Git i Github, użyj, git submoduleaby dołączyć inne projekty do swojej biblioteki. Jest to lepsze niż bezpośrednie dołączanie plików, ponieważ nie wznawiasz pracy jako własnej.

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

podmoduł git jest również czymś, co jest niejasne. Na przykład, mój projekt używa jQuery i jQuery UI - jak mogę dołączyć go jako submoduł, ponieważ źródło GitHub jest podzielone na wiele plików i folderów. Mam to samo z HTMLPurifier, którego również używam. Pliki, których potrzebuję, znajdują się w jednym podfolderze, ale w podmodule git wydaje się, że nie mam innego wyboru, jak albo dołączyć mnóstwo dodatkowych rzeczy, których nie potrzebuję, które niepotrzebnie rozłożą mój projekt lub, jak mówisz, popełnić cudzą pracę jako mój własny!

Podobnie jak natura licencjonowania, nie można dzielić i uwzględniać tylko tych plików, które chcesz. Powinieneś uwzględnić cały projekt w postaci spakowanej. git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
adlawson

Wydaje się, że inni tego nie robią: weź Wordpress, wydaje się, że właśnie włożyli

1
WordPress używa SVN do kontroli wersji. Ich repozytorium Github jest po prostu lustrem. O ile mi wiadomo, w SVN nie ma możliwości „podmodułu”, więc nie mieli oni innej opcji, jak tylko ją ponownie uruchomić. Z drugiej strony, nie traktuj WordPress jako przykład najlepszej praktyki.
adlawson

Chyba że coś mi umknie, wydaje się, że nie ma sposobu, aby to zrobić w przypadku jQuery. Rzuć okiem na ich repozytorium github.com/jquery/jquery , to tylko setki pojedynczych plików .js i skrypt kompilacji - więc nie mogę dołączyć go do mojego projektu bez pobierania kopii z jquery.com i samodzielnego zatwierdzenia czy się mylę?

0

Sprawdź ten przewodnik Erica S. Raymonda (resztę książki też warto przeczytać).

Osobiście nie martwiłbym się tym zbytnio - nie zarobisz na tym pieniędzy bezpośrednio, podobnie jak nikt inny, ponieważ istnieje już mnóstwo doskonałych darmowych CMS-ów ogólnego zastosowania. Sugeruję skorzystanie z najbardziej liberalnej licencji, jaką możesz (MIT lub BSD), chyba że pożyczysz kod, który jest objęty licencją wirusową (zazwyczaj GPL lub jej różnorodność), w którym to przypadku jesteś zmuszony do uzyskania takiej licencji w taki czy inny sposób.

Pamiętaj, aby uważnie przeczytać wszystkie licencje bibliotek i fragmentów, których używasz; powinni określić, czy wolno redystrybuować i modyfikować kod oraz czy należy je uwzględnić w dowolnych utworach pochodnych (większość licencji tego wymaga, a nawet w przypadku tych, które tego nie robią, to co najmniej możesz zrobić, by podziękować oryginalni autorzy swojej pracy).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.