Open Source Projekte

L

luckerking

Hallo Community,

zurzeit arbeite ich an zwei PHP basierenden Projekten, die ich demnächst als Open Source zur Verfügung stellen möchte.
Da ich noch nie an einem Open source Projekt gearbeitet, geschweige den ein neues erstellt habe, suche ich nun jemanden, der mir dabei hilft und mich berät.

Z.B. hänge ich im Moment an der Lizensierung fest:
Beide Projekte sollen, wie bereits gesagt, als open source verfügbar sein; da bietet sich die GPL an.
Sollte ich aber nun für das eine Projekt die GNU Lesser GPL benutzen, da es eine reine Library ist oder bieten sich da andere Möglichkeiten.
Außerdem brauche ich Unterstützung bei dem Thema: "Wie stelle ich mein Projekt nach außen hin da?".
Ein ganz einfaches Beispiel ist z.B. die Dokumentation:
Welche Sachen müssen unbedingt rein?
Wie mache ich Benutzern mein Programm verständlich?
Wie erkläre ich anderen Programmierern den Aufbau?

(API wird bereits ausfühlich dokumentiert (doxygen))

Fragen über fragen die ich mir Stelle, den ich möchte nicht einfach eine "hingeklatschte" Version meiner beiden Projekte veröffentlichen.

Nun möchte ich noch einmal kurz die beiden Projekte beschreiben:
Projekt 1:
Es handelt sich um eine kleine Klassenbibliothek, die eine Schnittstelle zwischen html und php definiert.
Projekt 2:
Es handelt sich um ein Content Managment System, dass:
* Modular aufgebaut ist (dadurch sehr leichte erweiterbar)
* verschiedene Datenbanksysteme unterstützt
* technisch keinen unterschied zwischen Frontend und Backend hat
* oben genannte Klassenbibliothek benutzt


Dies sind jeweils nur kurze Beschreibungen!

Falls ich mich unterstützen wollt, dann meldet euch bei mir.
Jegliche Tipps sind jederzeit willkommen.
 
Z.B. hänge ich im Moment an der Lizensierung fest:
Beide Projekte sollen, wie bereits gesagt, als open source verfügbar sein; da bietet sich die GPL an.
Sollte ich aber nun für das eine Projekt die GNU Lesser GPL benutzen, da es eine reine Library ist oder bieten sich da andere Möglichkeiten.
Es kommt drauf an inwieweit Du Deinen Code schuetzen willst.
Ist es okay fuer Dich dass Dein Code in Closed-Source-Projekte einfliessen kann dann nimm die LGPL, ansonsten die GPL.
Beispiel:
Meine PHP Class Collection, wie der Name schon sagt eine Sammlung von PHP-Klassen, ist LGPL-lizensiert. Dass gibt dem User die Freiheit die Klassen auch in Projekten einzusetzen in denen er den Quellcode nicht freigibt.
Mein EasyPMS, ein Management-System fuer Projekte, ist GPL-lizensiert.

Als einen Grund betrachte ich hier auch dass die Klassen selbst nicht viel taugen. Von sich aus koennen da ja nichts, der User muss also noch Code entwickeln um die Klassen auch nutzen zu koennen.
Das Projekt-Management-System hingegen ist ein vollstaendiges Produkt, und benoetigt vom User keine weitere Programmierarbeit um es zu nutzen.

Außerdem brauche ich Unterstützung bei dem Thema: "Wie stelle ich mein Projekt nach außen hin da?".
Das kommt ganz darauf an was Du genau praesentieren willst.
Du nennst ja bereits die Dokumentation, zur Projekt-Darstellung gehoert aber auch noch was mehr, z.B. eine Website.
Da solltest Du auch ueberlegen was Du da haben willst. Screenshots mit den wichtigsten Features? Vielleicht sogar eine Online-Demo?

Ein ganz einfaches Beispiel ist z.B. die Dokumentation:
Welche Sachen müssen unbedingt rein?
Wie mache ich Benutzern mein Programm verständlich?
Wie erkläre ich anderen Programmierern den Aufbau?

(API wird bereits ausfühlich dokumentiert (doxygen))
Fuer Programmierer reicht, wenn es sich, wie bei mir, um reine Klassen handelt, in der Regel die API-Dokumentation.
Im Falle Deines CMS ist natuerlich auch noch wichtig wie man denn nun ein neues Modul einfuegen kann, falls z.B. das CMS selbst irgendwelche Funktionen zur Verfuegung stellt die ein Modul aufrufen muss um sich beim CMS zu registrieren sollte dies natuerlich erwaehnt werden. Muss ein CMS-Modul vielleicht von einer bestimmten Klasse erben damit es ueberhaupt erstmal ein Modul werden kann? Auch sowas sollte man dem Entwickler mitteilen.
Wer sich erst durch den Code wuehlen muss um zu verstehen wie damit gearbeitet wird wird sicher keinen Spass an der Erweiterung Deines Projektes haben.

Fuer User ist es eigentlich auch nicht so schwer. Erlaeutere Funktionen und Arbeitsablaeufe. Screenshots und Beispiele helfen hier.
Der User will keine Module entwickeln, aber eventuell welche runterladen und hinzufuegen. Wo werden diese abgelegt?
Was muss ueberhaupt erstmal konfiguriert werden um das CMS nutzen zu koennen? Wie wird das gemacht?

Fuer alle: Was wird gebraucht um das Projekt nutzen zu koennen? Irgendwelche Abhaengigkeiten zu bestimmten PHP-Modulen? IMAP? FTP? CURL?

Fragen über fragen die ich mir Stelle, den ich möchte nicht einfach eine "hingeklatschte" Version meiner beiden Projekte veröffentlichen.
Wenn Dein Projekt und/oder Deine Dokumentation noch nicht ganz fertig ist, Du aber den Code bereits zur Verfuegung stellen willst bietet sich ein Versions-Kontroll-System wie Subversion oder CVS an.
"Normalsterbliche" werden die Finger davon lassen, Leute die aber wirklich interessiert sind einen Blick auf Dein Projekt zu werfen werden aber durchaus die Dateien auschecken und dabei wohl kaum angefressen sein weil es eben noch keine Doku gibt. Immerhin ist das Projekt ja noch in Entwicklung. ;)

Hier kann mein EasyPMS wieder herhalten. Zu Beginn hab ich es in's SVN-Repository gestellt. Die Version war nutzbar, aber es gab eben keine Dokumentation. Ein paar Leute haben's dennoch mal ausprobiert.
Mittlerweile ist die Version fast komplett ueberarbeitet, hat zur Zeit ein paar Probleme (das groesste ist dass ich zur Zeit mal wieder einem anderen Projekt meine Zeit widme), und ist immer noch nicht fuer die allgemeine Oeffentlichkeit zu haben. Wie gesagt, alles liegt im SVN-Repository, und Interessierte koennen den aktuellen Code runterladen und damit rumspielen.

Projekt 1:
Es handelt sich um eine kleine Klassenbibliothek, die eine Schnittstelle zwischen html und php definiert.
Wie gesagt, hier sollte eine API-Dokumentation reichen.

Projekt 2:
Es handelt sich um ein Content Managment System, dass:
* Modular aufgebaut ist (dadurch sehr leichte erweiterbar)
* verschiedene Datenbanksysteme unterstützt
* technisch keinen unterschied zwischen Frontend und Backend hat
* oben genannte Klassenbibliothek benutzt
Wie ich oben erlaeutert habe sind hier 2 Dokumentationen sinnvoll. Eine fuer User, eine fuer Entwickler. Dass dieses Projekt die Klassen des ersten Projektes nutzt macht es wieder etwas einfacher fuer Dich, denn Du kannst auf die Dokumentation des anderen Projektes verweisen und brauchst die Arbeit nicht doppelt erledigen.
 
Vielen Dank.

ich habe jetzt mal beide Projekte auf SourceForge angelegt und werde demnächst, wenn das Projekt bestätigt wurde den Code hochladen.
Bei dem CMS werde ich nach und nach Dokumentationen hochladen.

Ich habe jetzt unter SourceForge ein paar gute Dokumentation zu dem Thema gefunden, wie ich mein Projekt präsentiere.

Vielen Dank, deine beiden Beispiele haben mir sehr geholfen.
 

Neue Beiträge

Zurück