picklebuild3: Konfigurationswerkzeug

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Manuelh87
User
Beiträge: 36
Registriert: Sonntag 15. März 2009, 16:24

Hallo!

Es ist mal wieder so weit. Ich hab mir picklebuild (http://www.python-forum.de/viewtopic.php?f=6&t=22781) wieder eingebildet und programmier schon wieder einige Zeit drann herum.
Was das ganze überhaupt sein soll:
Picklebuild soll ein Konfigurationssystem werden (unter Umständen auch einmal die funktionalität von make haben, das ist aber fürs erste nicht wichtig). Die erste ganz fertige Version wird aber vermutlich in ein Makefile eingebettet, also muss sich nur um die Konfiguartion kümmern (das reicht eh schon). Auch wird vorerst nur C/C++ unterstützt werden. Gedacht hab ich beim entwickeln vorallem an Mikrokontroller Projekte wo man statische Konfiguartionen (zur Compilierzeit) einfach festlegen will. Ganz konkret hab ich da ein projekt von mir mit dem rfm12 (Funkchip/platine) und einem Atmega (der vermutlich aber bald durch einen Pic ersetzt wird). Da gibt es einige Parameter festzulegen die (zumindest ich) nicht vorhabe zur laufzeit zu ändern. Unter anderem soll es das Problem mit einer gleichen Source Basis für verschiedene Platinen (mit verschiedenen Ports an denen z.b. ein LCD oder eben das RFM hängt) lösen (man soll einfach die entsprechende konfigurationsdatei nehmen und kann immer den selben source code verwenden und diesen auch an einer stelle in einem source verwaltungs tool warten. Dadurch soll eine Flut an defines aller Möglichkeiten wo alle nicht verwendeten auskommentiert sind vermieden werden (Ja diese Dinge hab ich schon häufig gesehen). Auch komplizierte bash scripts wie sie oftmals in Makefiles eingebunden werden sollen vermieden werden.
Funktionieren soll das ganze so, dass man für eine abgeschlossene Einheit (ein C-modul) ein python script (mit kleinen sprachergänzungen) erstellt, dass die Variablen die man im source code braucht, festlegt. Das geht relativ einfach indem man eine die entsprechende funktion des 'cfg' objects (wird als globale variable von picklebuild bereitgestellt) aufruft und z.b. eine Liste von Möglichkeiten oder einen Text erstellt. Jede dieser variablen hat einen eindeutigen namen. Prinzipiell teilen sich nur ganze Module diese variablen (zu einem Modul gehören für picklebuild alle ausgewählten source dateien im verzeichniss wo ein configure_xxx.py [xxx ist der eindeutige Module name] script liegt und alle Unterordner [und Unterordner von Unterordnern, usw...] die kein configure_xxx.py script haben...). Allerdings ist es durch sogenannte Extension Befehle möglich, andere module in den Namensraum aufzunehmen, zu lesen, zu überschreiben etc...(funktioniert jedoch noch nicht einwandfrei, da muss noch nachgebessert werden). Entweder wird für jedes modul ein include file generiert, dass die entsprechenden defines enthält, oder sie werden direkt eingefügt, was mir aber nicht so gefällt. Das Konzept ist hier, dass der gesamte src-tree kopiert wird und dabei auch durch einen kleinen python preprocessor (picklebuild1) gejagt wird, der auch inline python code auswerten kann. Bevor das wieder zu Dikussionen führt: Es ist nicht notwendig Inline python code zu verwenden, lediglich möglich z.b. an Stellen, wo man mit include define und undefine anfangen würde so was ähnliches wie ne Schleife zu konstruieren etc... Es ist nur möglich! Aber gerade durch die neue Idee wie das configure script aufgebaut sein soll, sollte es möglich sein, fast alles, was in irgendeiner form Schleifen brauchen würde schon im script zu machen und damit den inline code nicht zu verwenden.

Derzeit funktionieren gerade einmal die Hauptteile (wobei überschreiben und lesen noch problematisch sein kann, da bin ich aber schon drann...). Das Script wird nämlich ausgeführt und die entsprechenden Objekte angelegt. Da Abhängigkeiten möglich sind (man will zuerst den PORT wo z.b. eine Led drannhängt eingegeben haben und dann erst nach dem pin fragen, etc.) ist das ganze nicht so einfach, was sich leider auch auf den code niederschlägt. Außerdem beinhaltet er unter Umständen falsche Kommentare. Ich wäre einfach nicht nachgekommen mit ausbessern, ich wollt zuerst dass das Grundsystem steht (Ich habs am Anfang so probiert, aber es ist mehr als ärgerlich wenn große Teile gelöscht werden die du gerade toll dokumentiert hast). Kleine Änderungen daran sind noch notwendig, dann wird das aber ausgebessert und aller Ballast abgeworfen.
Man kann bitte noch nichts damit konfigurieren, aber das sind Kleinigkeiten wo ich viel aus der ersten Version (die ja soweit funktioniert hat, aber unpraktisch war) übernehmen werde. Die jetztige Version beinhaltet eine mehr als rundimentäre gui und den Teil, der das configure_xxx.py script verarbeitet. Man kann sich also mit dem Teil spielen und schaun ob es funktioniert.
(den apply button in der gui bitte ignorieren, es wird automatisch gemacht [bei Text variablen leider nach jedem Zeichen; ich komm einfach mit tkinter nicht so ganz zurecht...])

So, das ganze befindet sich hier https://github.com/boon-code/picklebuild3/tree/simple (wichtig ist, dass ihr am branch 'simple' seit; in den Hauptzweig kommt das ganze erst, wenn die doku okay ist und ich das schon erwähnte problem mit override und Abhägnigkeiten von anderen modulen gelöst habe... kurz: wenn der Kern des ganzen einwandfrei funktioniert.).
Wenn jemand das ganze ausprobieren will (den im derzeitigen Zustand, will sich wohl kaum einer die sourcen durchlesen...) so kann man das so machen:
zuerst auschecken von der Github Seite... (siehe oben) (branch 'simple')
test-tree.tar.gz entpacken (cat test-tree.tar.gz|tar xz)
in den source Ordner wechseln (cd src/)
und den python3 interpreter starten (python3 test.py)
>> Nun sollte ein häßliches tkinter fenster erscheinen und man kann die aufgelisteten Module durchgehen (Es haben nur 2 davon nodes, die anderen sind leer).
Zu den Farben und dem Verhalten:
Wenn man etwas konfiguriert hat dann wird es grün.
Graue Einträge sind 'disabled' (man kann optionen abhängig von einer option ausschalten, das soll vorallem praktisch sein um z.b. ganze features ein und auszuschalten. Sind sie diese dann aus, machen viele Einträge oftmals mehr keinen sinn... z.b.: Fehlerkorrektur wird ausgeschaltet -> es ist nichtmehr wichtig welche art von korrektur man verwenden wollte (wenn z.b. mehrere implementiert wurden)

Nicht wundern wenn Einträge dazukommen und wegkommen, das liegt daran dass Abhängig von diesem einem Parameter, entweder die einen, oder die anderen optionen erstellt werden. Das wirkt vielleicht lässtig, aber mir ist leider keine bessere Möglichkeit eingefallen und es ist auch nicht ratsam, extrem komplizierte configure_xxx.py scripts zu schreiben. Aber es ist halt einiges möglich.... Außerdem wird stehts versucht, alte Werte wiederzuverwenden... Ein Beispiel: Ich hab code um buttons die an einen Kontroller angeschlossen wurden zu verwalten. Zuerst würde ich beim module script fragen, wieviele buttons man haben möchte, abhängig davon würde ich dann Pin und Port abfragen. Wenn man sich nun für 3 buttons entscheidet, die dann auftauchenden Variablen festlegt, und nun merkt dass man doch 4 buttons brauch, so werden (Obwohl die Objekte neu erstellt werden) die alten werde für button1, button2 und button3 verwendet, während nur button4 neu zu konfigurieren ist....

Nun zu meinem eigentlichen Anliegen: Hat jemand Lust und Zeit, das Projekt zu unterstützen. Also das ganze soll unter eine freie Lizenz (GPL oder dergleichen). Gehostet ist es ja sowieso schon auf github, da kann ich einfach Zugänge anlegen. Wirklich sinnvoll wird das ganze wohl erst, wenn ich die doku halbwegs hinbekommen hab und der Kern läuft. Ich frag trotzdem schon mal an, da es sicher ein wenig dauert bis der Beitrag gelesen wird und sich wohlmöglich doch jemand meldet. Würd mich sehr freuen, aber ich kann natürlich verstehen, wenn einen der momentane Code etwas abschreckt oder das Thema nicht interessiert. Es gäbe auf jeden Fall auch Dinge zu tun die es nicht erfordern den ganzen Kern durchzugehen z.b. die gui überarbeiten, später entsprechenden module für andere Programmiersprachen, XML Konfigurations Dateien (da hab ich schon codeteile, falls sich jemand da reinarbeiten will), Kommandozeilen parameter verarbeiten, vielleicht ein optionales interface in qt, eines für die Konsole?!

Es geht nicht nur darum, dass das Projekt schön langsam schwierig für mich alleine zu bewältigen ist, sondern vorallem um das miteinander programmieren und voneinander lernen. Ein Stückweit geht's mir natürlich auch darum, einmal so ein Projekt zu starten, dass von mehr als 1 Person entwickelt wird und vielleicht von nochmehr Menschen genutzt wird.

Bitte seit nicht zu streng mit mir, wie schon erwähnt ist der Code in Moment schlampig und viele Fehler werden nicht abgefangen. Ich kann leider immer nur ein Problem nach dem anderen beheben und es war mir einfach wichtiger, dass einmal das Kern system steht (zumindest für eine erste Demonstration). Das ganze stürzt beim geringsten Fehler in der config datei noch gnadenlos ab und unter Umständen sogar bei korrektem Gebrauch (um das auszuschließen hab ich es leider erst zu wenig getestet). Das sind aber alles Dinge die sich relativ leicht beheben lassen sollten, aber wie schon erwähnt, eines nach dem anderen. Ansonsten bin ich für jede Kritik und Verbesserungsvorschläge offen und freu mich schon auf Feedback.

Ich bedanke mich schon jetzt mal bei denen, die es bis hier her gelesen haben :D
cu Manuel
deets

Warum nicht cmake oder scons? Glaubst du wirklich ein weiteres build-system ist das Richtige? Was ist mit der Linux-Kernel-Konfiguration, die haben solche Probleme doch auch schon geloest.

Die Modul-Struktur ist aeusserst unuebersichtlich, ich habe mich wild durch irgendwelchen inkonsistent benannten Dateien klicken muessen. Benutze Packages und sub-packages, um sinnvolle Strukturiereng des Code zu erreichen.

Die logging-Abstraktion ist unnoetig. Das logging-Modul sorgt von selbst fuer Sicherheit bezueglich multi-threading & processing.

Ausserdem sieht das ganze nach einem rein GUI-getriebenen Ansatz aus. Das ist mit an Sicherheit grenzender Wahrscheinlichkeit falsch. Erstens macht es das schreiben von Tests (die fuer sowas essentiell sind. Eigentlich immer. Aber besonders wenn man *sourcecode* umschreibt, und uU in den Orkus befoerdert!) schwierig bis unmoeglich. Und zweitens will ich so ein Tool *immer* auch voellig automatisieren koennen.

Vielleicht stimmt das auch nicht (das es rein GUI ist), aber wenn nicht, dann ist das der Unuebersichtlichkeit des Codes geschuldet.. ;)

Als jemand, der sowohl Mikrokontroller als auch ander C/C++-Projekte hat kann ich nur sagen: es ist schon ausreichend komplex, sich mit anerkannten Build-Tools auseinanderzusetzen (autoconf/automake habe ich ja noch gar nicht erwaehnt). Ich wuerde von einem weiteren die Finger lassen, wenn es nicht die eierlegende Wollmilchsau waere.
Manuelh87
User
Beiträge: 36
Registriert: Sonntag 15. März 2009, 16:24

Erstmals danke für deine Antwort! Ich versuche alle Fragen zu beantworten und auf die Kritik einzugehen:

>> Warum nicht cmake:
CMake ist ein build system. Es steuert den gesamten build process und verwendet eine (meiner Meinung nach python wesentlich unterlegene) Sprache die extra dafür gemacht wurde (soweit ich das beurteilen kann) Es hat viele Vorteile, da hast du schon recht, aber es ist soweit ich das verstanden habe nicht möglich (ohne erheblichen aufwand) komplizierte Abfragen einzufügen.
(Vergleiche eine Zeile code um eine Auswahl aus verschiedenen Werten gegen was auch immer es braucht, um das mit CMake umzusetzten.) Ich hab CMake ausprobiert und soweit ich mich erinnere gibt es eine graphische Umgebung um Werte zu konfigurieren, aber das war leider nicht gangbar. Sonst wäre ich dabei geblieben.
Der Focus liegt bei CMake bei einem kompletten Build system. (Ich hätte zwar in weiter weiter Zukunft nichts dagegen, wenn man so zu sagen Teile der Configuration von picklebuild [z.b. welche Dateien zu verarbeiten sind] unter Umständen geschickt exportieren kann, oder gar die Funktion von make übernehmen kann, aber wenn, dann wären dies alles Zusatzmodule. Die Grundfunktion ist nur Konfigurieren.

>> Warum nicht scons:
Ähnlich wie bei cmake ist auch das nicht mit picklebuild vergleichbar, da es ein build system darstellt. Ich hab es mir lange angesehen und konnte dem ganzen auch vieles abgewinnen, aber im Endeffekt kann man damit nicht das selbe erreichen. Natürlich kann man Skripts schreiben die das ganze erweitern, aber jedesmal für jedes Projekt extra skripts zu schreiben die diese Funktionalität nachholen? Vielleicht kann das Ding das, ich habs jedenfalls nicht aus der Doku herausbekommen, und das disqualifiziert das ganze für mich.

>> Warum nicht der Linux-Kernel-Konfigurator:
Um ehrlich zu sein, hat mich der dazu inspiriert das ganze anzufangen und ein früher Gedanke war genau den zu verwenden. Aber (falls ich mich noch korrekt erinnere) musste man wieder für einfache Dinge ganze Ergüsse an bash scripts schreiben (oder wars make syntax) ich weiß es nichtmehr und find es auf die schnelle nicht.

>> Die Modul-Struktur ist aeusserst unuebersichtlich, ich habe mich wild durch irgendwelchen inkonsistent benannten Dateien klicken muessen. Benutze Packages und sub-packages, um sinnvolle Strukturiereng des Code zu erreichen.
Das tut mir leid. Ich bin leider kein Python Profi und wie ich versucht habe in meinem Posting rüber zu bringen, versuche ich ja Leute die es besser können zu finden. Du bist herzlich eingeladen mir zu helfen den Saustall aufzuräumen. Allerdings wird das erst sinnvoll sein, wenn entsprechende Kommentare dabei sind und vorallem die gesamte Kern Funktionalität da ist. Bei Namen und der gleichen bin ich aber überhaupt nicht pingelig, also das ist alles veränderbar. Man kann das auch alles anders aufteilen. Ich hatte zwar nicht vor, z.b. die Dinge in pmodules in weitere Module aufzusplitten (wenn du das ansprichst) aber wenns sinnvoll ist gerne... Vielleicht ist es auch besser du schaust dir das ganze an, wenn ichs aufgeräumt habe, aber das wird halt noch dauern, da ich vorerst nochmal kleinere Probleme mit Kern-Funktionen habe, und meine Zeit nicht nur mit Oberflächlichkeiten vertun will, obgleich du natürlich recht hast das diese Dinge getan werden müssen. Ich will nur vermeiden, dass ich wieder viel Zeit ins dokumentieren stecke, wenn dringliche Probleme noch nicht geklärt die das dokumentieren unter Umständen wieder obsolet machen. Nichts ist schlimmer als falsche Kommentare (von denen ich leider Gottes sicher welche drinn habe). Ich muss einfach Prioritäten setzten.

>> Die logging-Abstraktion ist unnoetig. Das logging-Modul sorgt von selbst fuer Sicherheit bezueglich multi-threading & processing.
Ja, ich weiß. Ich schütze nur die globalen Variablen. Du hast vermutlich recht dass sich das auch nur mit dem logging module erreichen lässt. Ich habs mal gemacht und wollte es dafür verwenden dass ich sichergehen kann, gewisse logging optionen sicher einstellen zu können, ohne dass ich das in allen Modulen tun muss. Ich denke aber du hast recht und das logging modul ist auch in der Lage, default Ziele automatisch zu setzten (ich wollt nur unbedingt vermeiden dass man in jedem Modul noch was tun muss damits überall so aussieht, aber trotzdem noch der Bezug zum modul da ist wo das logging herkommt....). Wieder bist du herzlich eingeladen, die entsprechenden Änderungen vorzunehmen wenn du magst (Und ich mein das nicht irgendwie gemein oder so, ich würde mich wirklich freuen; ob du mir nun im Detail aufzählst was dir nicht gefällt, oder ob du gleich mit drann arbeitest ist doch nicht so wirklich der große Unterschied. Und dadurch würde das ganze vielleicht wirklich was werden...)

>> Ausserdem sieht das ganze nach einem rein GUI-getriebenen Ansatz aus.
Kann ich dich beruhigen, das sieht so aus weil bis jetzt nur der config-gui teil und dieser Kern pmodules fertig ist. Das ganze wird ein Kommandozeilen Programm (vielleicht wenn sich wer die Mühe macht gibts auch ne Gui für das hinzufügen von Dateien die damit bearbeitet werden). Nur die Konfiguration nicht interaktiv zu machen hat keinen Sinn, denn wenn du die ohne hin schon automatisch kennst, wozu dann überhaupt was tun. Es geht ja darum, dass der Benutzer der Source Codes diese an seine Bedürfnisse anpassen will. Allerdings wird die Konfiguration in eine Datei gespeichert und kann über Kommandozeile geladen werden (Also nicht nur eine sondern halt soviele wie man braucht). Dann muss nur graphisch konfiguriert werden, wenn Dinge fehlen (ein "in so einem Fall bitte abbrechen" flag ist natürlich absolut drinnen ;P ). Das soll ja gerade auch eine große Stärke des ganzen sein.

Wegen Tests hab ich mir auch schon einiges überlegt. cfg.expr und cfg.string sind zwar problematisch, aber ich wollte durchaus ein flag anbieten, dass alle Optionen und alle Kombinationen bei single und multi durchgeht und schaut ob ein Fehler passiert. Damit man als Entwickler irgendwie die Möglichkeit hat, zu wissen, ob das configure_xxx.py script eh was taugt.

>> ... dann ist das der Unuebersichtlichkeit des Codes geschuldet.. ;)
Wie schon erwähnt bin ich halt nur alleine und kein langjähriger Python Programmierer. Ich kenne nicht jedes Modul auswendig und hab nunmal nur begrenzt Zeit an dem ganzen zu arbeiten. Ich hab aber schon gesagt dass der Code einfach sehr schlimm aussieht. Das ändert sich hoffentlich diese Woche, aber ich kann nunmal nicht an allen Stellen gleichzeitig arbeiten, und vorrangig ist nunmal die Kern Funktionalität, danach falsche Kommentare zu löschen und zumindest alle öffentlich gedachten Methoden zu dokumentieren, bzw. dabei eventuelle schlechte Namen ändern und manche Funktionen auf privat (_) zu ändern oder auf öffentlich, dabei wird auch gleich die Struktur bereinigt, so dass es möglich wird für andere an dem Projekt mitzuarbeiten [eben auch am Kern]... danach werden erst weitere Teile gemacht (wo ich aber schon vieles aus picklebuild1 [auf github heist das glaub ich noch buildsystem oder so, obwohls das nicht sit])

>> es ist schon ausreichend komplex, sich mit anerkannten Build-Tools auseinanderzusetzen (autoconf/automake habe ich ja noch gar nicht erwaehnt)
Genau das ist der Punkt. Anders formuliert: Die vorhandenen Werkzeuge sind so komplex, dass viele einfach völlig darauf verzichten. (Ganz davon abgesehen das die autotool nicht ganz reinpassen da sie ein völlig anderes Ziel haben -> Wiki:
"Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU-Projekt entwickelt wurden. Diese Tools sind für das Portieren von Quellcode-Paketen auf Unix-Systemen gedacht. Das GNU Build System ist Teil der GNU Toolchains und ist in freien Software-Projekten weit verbreitet."
)

Die Ziel-Nutzer von meinem Tool sind Leute die Dinge wie

Code: Alles auswählen

//#define UART_SETTING_9600  xx
//#define UART_SETTING_19200  yy
#define UART_SETTING_38400  zz
machen, da die vorhanden Werkzeuge einfach meist recht komplex sind und man sich diese Dinge nicht antun möchte.

Versteh mich nicht falsch, alle Systeme die du genannt hast, sind hervorragende Systeme; Sie sind nicht so komplex weil sie schlecht gemacht sind, sonder einfach weil sie nunmal viel können.
Aber nehmen wir z.b. CMake. Hast du dir die Doku schonmal angesehen; Die ist echt heftig. Wenn man wirklich alles kennen will, dass das Ding kann muss man schon einiges an Zeit reinstecken... Im Vergleich dazu sollte es möglich sein, picklebuild, dem Entwickler der es in seinem Projekt verwenden will, mit einer vielleicht 2 A4 Seiten starken Doku zu erklären. Und da meine ich jetzt nicht das nötigste... Sondern alles (sofern Python-Kenntnisse vorhanden)! Aber selbst ohne Python-Kenntnissen sollte es möglich sein, zumindest einfache Konfigurationen (ohne den komplizierten Verknüpfungen) rasch zu erstellen. Ich mein das cfg objekt hat gerade mal 7 funktionen.

cu Manuel
Manuelh87
User
Beiträge: 36
Registriert: Sonntag 15. März 2009, 16:24

Hallo!

Auch wenn sich kaum jemand für das Projekt interessiert (kann ich verstehen, es ist auch etwas speziell, und vielleicht fühl nur ich mich so als sollte es hier ein neues tool geben), will ich trotzdem ein Status - Update geben...
Ich hab nun das Projekt in den Hauptentwicklungszweig gegeben, obgleich das ganze noch nicht meinen Ansprüchen gerecht geworden ist (vorallem die Doku lässt noch zu wünschen übrig). Der Grund ist einfach, dass man mit der jetztigen Version schon etwas rumspielen kann und vielleicht besser sieht, wie ich das ganze gemeint habe...

https://github.com/boon-code/picklebuild3

Die Startdatei ist pconfig.py. Bei der Bedienung hab ich mich ein bisschen an git orientiert. Es gibt die Befehle:

Code: Alles auswählen

pconfig.py setup  - Initialisiert ein Projektverzeichniss, dass man es mit pconfig verwenden kann. (Ähnlich wie bei git wird ein .pconfig Verzeichniss erstellt (im aktiven Verzeichniss) und
                          dort liegt eine Hauptkonfiguartionsdatei. Im wesentlichen steht dort das Quellverzeichniss (die unveränderten Quellen, die die Variablen nutzen) und ein Ausgabeverzeichnis
                          wo das Quellverzeichnis hinkopiert wird, und die eigentliche Textersetztung, generierte Files etc gemacht werden...
pconfig.py add    - Fügt eine Datei hinzu (die bearbeitet und durch den Python Preprocessor geschickt wird)
pconfig.py rm     - Löscht eine Datei vom index.
pconfig.py status - Gibt in Moment nur eine Liste aller Dateien im index an.
pconfig.py cfg     - Öffnet das Konfigurationsfenster. Man kann nun die current_config bearbeiten (die immer automatisch geladen wird) oder unter einem neuen Namen abspeichern, laden, etc.
pconfig.py make  - Erstellt die Ersetzten Codes im Ausgabeverzeichnis (setup!!!) (Wichtig: Das Ausgabeverzeichnis muss jedes mal händisch gelöscht werden sonst gibts Fehler; Wollt das noch 
                          nicht automatisch machen, da bin ich mir noch unsicher...) 
Noch ist alles recht unsauber, ich werd versuchen im nächsten Monat die Doku zu verbessern, das ist alles noch sehr unhübsch. Das ganze ist eigentlich für C Projekte gedacht, also wirds da noch ein paar switches geben (bei make) um z.b. include files mit den entsprechenden defines zu generieren; Keine Sorge, ich will niemanden dazu nötigen, den inline python code zu verwenden. Das ist nur für ganz ganz ganz spezielle Dinge gedacht; Falls es notwendig ist mit arrays zu arbeiten die z.b. eine variable anzahl von einträgen haben können, je nach konfiguration...

Noch etwas: Das ganze stürzt meistens beim kleinsten Fehler ab, kaum etwas wird überprüft, oder ist durch vernünftige Exceptions geschützt. Ich bin da schon drann. Ich wollte nur mal eine Version fertig machen, die mal in etwa Zeigen soll, was das mal können soll....
Außerdem ist der Kern (pmodules) noch nicht voll funktionsfähig. Er scheitert in Moment gnadenlos an allen externen Abhänigkeiten die erst in einem DependencyFrame stehen, der noch nicht ausgeführt wurde. Auch mit overrides passiert das. Aber das ist sowieso wieder was ganz spezielles (eben eine extension). Für Projekte wo man wirklich unabhängige Module hat die ihre Konfigurationsvariablen nicht untereinander teilen, müsste alles so weit funktionieren.

Wie beim letzten post, müsst ihr, wenn ihr das ganze testen wollt, die test-tree.tar.gz datei entpacken, in das test/ verzeichnis wechseln und dann pconfig aufrufen (mit Parametern).
Bitte, das ganze ist leider noch schlecht dokumentiert, wenn irgendjemand es ausprobieren will und nicht klarkommt, bitte das liegt nicht an euch, einfach email oder pm schicken (oder hier posten), ich bin gerne bereit das alles zu erklären. Falls jemand Lust hat, daran mitzuarbeiten, nicht schüchtern sein, einfach melden; Es gibt so viel zu tun, und vorallem auch für relative Neulinge. Vorallem ist es nicht nötig, den core (pmodules) zu verstehen der ist recht aufwendig, also zumindest nicht im Detail (das was er tut lässt sich glaub ich schnell und leicht erklären). Es gibt relativ unabhängige Aufgaben...
Aber mir ist klar dass das ein sehr spezielles Projekt ist, und nicht so viele Leute anzieht. Würd mich trotzdem freuen etwas von euch zu hören, Kritik, Anregungen, vielleicht sogar Wünsch was es können soll...

(Ich bemüh mich auch bald ein sinnvolles Sample Projekt hochzustellen, den im test-tree.tar.gz steht nur Unsinn, sollte aber trotzdem zeigen, was das Ding alles mal können soll...)

cu Manuel
Antworten