Best Practices für die Freigabe einer Open Source-PHP-Anwendung


10

Ich bin ein PHP-Entwickler, habe aber noch nie an Open Source-Projekten gearbeitet oder dazu beigetragen.

Ich entwickle ein CMS für meinen eigenen Gebrauch. Ich habe einen funktionierenden Prototyp und ich denke, dass die PHP-Community daran interessiert sein könnte, wenn er fertig ist (wahrscheinlich ein paar Monate).

Ich bin ein ziemlich selbstbewusster Entwickler, aber es gibt Bereiche, in denen mein Wissen fehlt, insbesondere wenn es um Open Source-Probleme geht:

  • Was ist der beste Weg, um das Projekt bekannt zu machen und / oder andere zu finden, die an einer Zusammenarbeit interessiert sein könnten?
  • Mein CMS wird von CakePHP betrieben und befindet sich im Grunde genommen als Schicht darüber. Ich habe das CakePHP-Projekt auf GitHub gespalten: Ich habe zuvor Versionskontrollsysteme (SVN) verwendet, aber ich bin ziemlich neu in GIT, also möchte ich sicher sein, dass ich die Dinge "auf die beste Art und Weise" mache.
  • Wie kann ich mich über Lizenzprobleme informieren? Welche Open Source-Lizenz eignet sich am besten für meine App? Außerdem leiht sich mein Projekt viele andere Open-Source-Projekte aus, zum Beispiel habe ich Codeabschnitte (die ich stark modifiziert habe), die jedoch Urheberrechts- / Lizenzhinweise enthielten - ich habe keine Ahnung, was meine Verpflichtungen in Bezug auf sind diese in behalten

Dies sind nur einige Beispiele für die Fragen, die ich habe, aber ich denke, es muss einige Ressourcen geben, die für mich nützlich wären. Wo kann man am besten anfangen, was sind die besten Communities / Sites, die diese Themen behandeln? Ich habe mich umgesehen, konnte mir aber nicht viel einfallen lassen ...


Hatten Sie ein paar gute Antworten zu Lizenzfragen und Ideen zu den anderen Fragen? Sollte dies möglicherweise in ein paar Beiträge aufgeteilt haben!
user916336

Antworten:


5

Ich bin kein Anwalt, aber ich werde es versuchen.

CakePHP ist unter der MIT- Lizenz lizenziert , was im Grunde bedeutet, dass es die Wiederverwendung innerhalb proprietärer Software unter der Bedingung ermöglicht, dass die Lizenz mit dieser Software vertrieben wird. Es ist kompatibel mit GPL- Lizenzen, unter denen viele Open Source-Projekte veröffentlicht wurden.

Bei den anderen Projekten, die Sie "ausleihen", müssen Sie deren Lizenztypen und deren Kompatibilität untereinander sowie den Lizenztyp, den Sie verwenden möchten, überprüfen. Wenn einer von ihnen eine GPL- Lizenz verwendet, müssen Sie diese auch gemäß den Bestimmungen des Lizenzstatus mit GPL veröffentlichen

Die GPL ist die erste Copyleft-Lizenz für den allgemeinen Gebrauch. Das bedeutet, dass abgeleitete Werke nur unter denselben Lizenzbedingungen verbreitet werden können.

...

Die GPL ist die erste Copyleft-Lizenz für den allgemeinen Gebrauch. Das bedeutet, dass abgeleitete Werke nur unter denselben Lizenzbedingungen verbreitet werden können.

Mein Vorschlag ist, unter der GNU GPL v3- Lizenz zu veröffentlichen, da Sie dadurch angemessene Eigentumsrechte an Ihrer Arbeit erhalten und andere diese möglicherweise sowohl in kommerziellen als auch in offenen Projekten verwenden können. Beachten Sie jedoch, dass die Lizenzen der "ausgeliehenen" Projekte kompatibel sein müssen .


Verwenden Sie für Best Practices mit Git und Github, git submoduleum andere Projekte in Ihre eigene Bibliothek aufzunehmen. Dies ist besser, als die Dateien direkt einzuschließen, da Sie die Arbeit nicht als Ihre eigene empfehlen.

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

Git-Submodul ist auch etwas, über das ich unklar bin. In meinem Projekt werden beispielsweise jQuery und jQuery UI verwendet. Wie kann ich es als Submodul einfügen, da die Quelle auf GitHub in viele Dateien und Ordner aufgeteilt ist? Ich hatte das gleiche mit HTMLPurifier, das ich auch benutze. Die Dateien, die ich benötige, befinden sich in einem Unterordner, aber mit dem Git-Submodul habe ich anscheinend keine andere Wahl, als entweder eine Menge zusätzlicher Dinge einzuschließen, die ich nicht benötige, um mein Projekt unnötig zu belasten, oder wie Sie sagen, die Arbeit eines anderen als mein eigenes!

Aufgrund der Art der Lizenzierung können Sie nicht nur die gewünschten Dateien aufteilen und einschließen. Sie sollten das gesamte Projekt so einschließen, wie es verpackt ist. git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
Adlawson

Andere scheinen dies jedoch nicht zu tun: Nehmen Sie Wordpress, sie haben anscheinend nur die minimierten Dateien, die sie von jQuery benötigen, in einen Ordner gesteckt und sie festgeschrieben: github.com/wordpress/wordpress/tree/master/wp-includes/js /…

1
WordPress verwendet SVN zur Versionskontrolle. Ihr Github-Repository ist einfach ein Spiegel. Soweit mir bekannt ist, gibt es in SVN keine "Submodul" -Funktion, daher hatten sie keine andere Wahl, als sie erneut zu aktivieren. Auf einer anderen Anmerkung, nicht nehmen Wordpress als Beispiel für Best Practice.
Adlawson

Wenn mir nichts fehlt, scheint es im Fall von jQuery keine Möglichkeit zu geben, dies zu tun. Werfen Sie einen Blick auf das Repo github.com/jquery/jquery , es sind nur Hunderte einzelner .js-Dateien und ein Build-Skript. Ich kann es also nicht in mein Projekt aufnehmen, ohne nur eine Kopie von jquery.com herunterzuladen und selbst zu übernehmen , oder liege ich falsch?

0

Lesen Sie diesen Leitfaden von Eric S. Raymond (der Rest des Buches ist ebenfalls lesenswert).

Persönlich würde ich mir darüber keine großen Sorgen machen - Sie werden damit nicht direkt Geld verdienen, und auch sonst niemand, da es bereits eine Fülle exzellenter kostenloser Allzweck-CMS gibt. Ich schlage vor, Sie gehen mit der liberalsten Lizenz, die Sie können (MIT oder BSD), es sei denn, Sie leihen Code aus, der unter einer viralen Lizenz steht (normalerweise GPL oder eine Vielzahl davon). In diesem Fall werden Sie auf die eine oder andere Weise in diese Lizenz gezwungen.

Lesen Sie alle Lizenzen der von Ihnen verwendeten Bibliotheken und Snippets sorgfältig durch. Sie sollten angeben, ob Sie den Code weitergeben und ändern dürfen und ob Sie sie in abgeleitete Werke aufnehmen müssen (die meisten Lizenzen erfordern dies, und selbst für diejenigen, die dies nicht tun, ist die Zuordnung das Mindeste, was Sie tun können, um dem zu danken Originalautoren für ihre Arbeit).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.