Найкращі практики випуску PHP-програми з відкритим кодом


10

Я розробник PHP на життя, але раніше ніколи не працював і не сприяв жодним проектам з відкритим кодом.

Я розробляю CMS для власного використання. У мене працює прототип, і я думаю, що як тільки він буде готовий (можливо, через пару місяців), це могло б зацікавити спільноту PHP.

Я досить впевнений розробник, але є сфери, де моїх знань бракує, особливо якщо мова йде про проблеми з відкритим кодом:

  • Який найкращий спосіб оприлюднити проект та / або знайти інших, хто може бути зацікавлений у співпраці
  • Моя CMS працює на CakePHP і в основному розташовується як шар поверх неї. Я раніше відправив проект CakePHP на GitHub: Раніше я використовував системи управління версіями (SVN), але я досить новачок у GIT, тому хочу бути впевненим, що я все роблю "найкращим чином"
  • Як я можу дізнатися про проблеми ліцензування? Яка ліцензія з відкритим кодом найкраще підійде для мого додатка? Крім того, мій проект запозичує багато інших проектів з відкритим кодом, наприклад, у мене є розділи коду (які я сильно змінив), але в яких були повідомлення про авторські права / ліцензування - я не маю уявлення, які мої зобов'язання стосуються зберігаючи їх

Це лише кілька прикладів запитань, які у мене є, але я відчуваю, що там мають бути деякі ресурси, які були б мені корисні. Де найкраще почати, які найкращі спільноти / сайти там висвітлюють ці проблеми? Я оглянувся, але не зміг придумати багато ...


Чи було кілька хороших відповідей про ліцензійні речі, якісь ідеї щодо інших питань? Можливо, слід було б розділити це на пару постів!
user916336

Відповіді:


5

Я не юрист, але спробую цього.

CakePHP ліцензується за ліцензією MIT , що в основному означає, що вона дозволяє повторно використовувати в межах власного програмного забезпечення за умови, що ліцензія поширюється з цим програмним забезпеченням. Він сумісний з ліцензіями GPL , під якими випускається багато проектів з відкритим кодом.

Що стосується інших проектів, які ви "позичаєте", вам доведеться перевірити їхні типи ліцензій і перевірити їх сумісність між собою та типом ліцензії, яку ви вирішили використовувати. Якщо хтось із них використовує ліцензію GPL , вам також доведеться випустити разом із GPL як умови ліцензійного стану

GPL - це перша ліцензія на копілефт для загального користування, а це означає, що отримані твори можуть поширюватися лише на тих самих ліцензійних умовах.

...

GPL - це перша ліцензія на копілефт для загального користування, а це означає, що отримані твори можуть поширюватися лише на тих самих ліцензійних умовах.

Я пропоную випустити за ліцензією GNU GPL v3, оскільки вона дає вам адекватні права власності на вашу роботу, дозволяючи іншим потенційно використовувати її як у комерційних, так і у відкритих проектах. Пам'ятайте, щоправда, ліцензії "запозичених" проектів повинні бути сумісними .


Що стосується кращих практик роботи з Git та Github, використовуйте git submoduleдля включення інших проектів у власну бібліотеку. Це краще, ніж включати файли безпосередньо, оскільки ви не повторно підтверджуєте роботу як свою.

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

підмодуль git - це теж те, що мені незрозуміло. Наприклад, мій проект використовує користувальницький інтерфейс jQuery та jQuery - як я можу включити його як підмодуль, оскільки джерело в GitHub розділено на багато файлів і папок. У мене те саме було з HTMLPurifier, який я також використовую. Файли, які мені потрібні, знаходяться в одній підпапці, але з підмодулем git, схоже, у мене немає іншого вибору, крім того, щоб включити безліч зайвих речей, які мені не потрібні, які будуть обгрунтовувати мій проект без необхідності, або, як ви кажете, виконувати чужу роботу як мій власний!

Як і характер ліцензування, ви не можете розділити їх і включати лише потрібні файли. Ви повинні включити весь проект у мірі упаковки. git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
adlawson

Інші, здається, не роблять цього, хоча: візьміть Wordpress, вони, схоже, щойно вставили необхідні для них мінімізовані файли з jQuery у папку та вчинили їх: github.com/wordpress/wordpress/tree/master/wp-includes/js /…

1
WordPress використовує SVN для контролю версій. Їх сховище Github - це просто дзеркало. Наскільки мені відомо, у SVN немає можливості "підмодулю", тому у них не було іншого варіанту, крім того, щоб повторно її повторити. З іншого боку, не сприймайте WordPress як приклад найкращої практики.
adlawson

Якщо я щось не пропускаю, то, мабуть, немає способу зробити це у випадку jQuery. Погляньте на їх репо github.com/jquery/jquery , це лише сотні окремих .js-файлів та сценарій складання, тому я не можу включити його у свій проект, не просто завантажуючи копію з jquery.com та виконуючи її самостійно чи я помиляюся?

0

Ознайомтеся з цим посібником від Еріка С. Реймонда (решту книги також варто прочитати).

Особисто я б не хвилювався з цього приводу - ви не збираєтеся заробляти гроші на цьому безпосередньо, а також ніхто інший, оскільки вже існує безліч чудових безкоштовних CMS загального призначення. Я пропоную вам скористатися найбільш ліберальною ліцензією, яку ви можете (MIT або BSD), якщо ви не позичите код, який знаходиться під вірусною ліцензією (як правило, GPL або різноманітні), і в такому випадку вас так чи інакше змушують вступити в цю ліцензію.

Не забудьте уважно прочитати всі ліцензії бібліотек та фрагментів, які ви використовуєте; вони повинні вказати, чи вам дозволяється перерозподіляти та змінювати код та чи потрібно їх включати до будь-яких похідних творів (більшість ліцензій вимагає цього, і навіть для тих, хто цього не робить, атрибуція - це найменше, що ви можете зробити, щоб подякувати оригінальні автори для своєї роботи).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.