Freitag, 25. November 2011

Änderungen aus verschiedenen git Repositories

Aktuell ist die Entwicklung des Perl Moduls SQL::Translator nicht so schnell, wie sie sein könnte. Im Request Tracker gibt es eine Unmenge offene  Fehler und Featurewünsche und auf github gibt es schon ein paar Anfragen mit sinnvollen Quellcodeaktualisierungen. Ein bisschen ärgert mich, daß eine durch Refactoring entstandene Warnung "return with next from function" die sowohl im PostgreSQL als auch im Mysql Producer enthalten ist, trotz mehrerer Releases nicht entfernt wurde.
Naja, seis drum - es ist freie Software und dieses Projekt ist ein bisschen Freie Zeit mehr als Wert. Deshalb habe ich beschlossen mit zu machen. Wie die Pullrequests auf github zeigen bin ich nicht der einzige, der auf diese Idee gekommen ist. Das Problem das ich bearbeitet habe, hat auch schon von einem anderen Entwickler in die Mangel genommen.
Um das dann sinnvoll zu checken, wäre es doch toll, die Arbeit dieses Entwicklers zu nutzen. Dafür wird ein wenig im Web gesucht  und .git/config editiert:

[remote "jsoriano_origin"]
        url = https://github.com/jsoriano/sql-translator.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "people/jsoriano/local"]
    remote = jsoriano_origin
    merge = refs/heads/people/jsoriano/local

Dann wurde der lokale Zweig angelegt und git pull holt ihn wie gewollt auf den lokalen Datenspeicher. Ein merge von diesem Zweig klappt zwar nicht aber dafür

git merge 8df80d6d6f113017bc100c5581ec9e3693e3ba0c
git merge 1d01e030849d9e503ed29
git merge a017ecc4f6
git merge 6ca9dd8528c0875e364
git merge ea0b3c3fb711b4f9840174a73cbb4be1b9743b47




Mehr Informationen:

Freitag, 22. Juli 2011

Mithelfen auf Github

Vor kurzem habe ich ein paar kleine Verbesserungen für das Projekt behat/Mink erstellt. Da ich noch nicht so viele Beiträge zu anderen Projekten geleistet habe ist mir dabei ein Fehler unterlaufen. In dem von mir erstellten Pull-Request tauchten die Änderungen, welche bereits in den Zweig eingeflossen waren und die ich übernommen hatte mit auf. Der Entwickler des Projektes Konstantin Kudryashov hat mir daraufhin kurz mitgeteilt wie es besser geht:
  1.  Einen neuen Zweig, für die gewünschten Änderungen anlegen.    git checkout -b default-argument-exception
  2. Änderungen vornehmen
  3. git commit
  4. git checkout develop && git pull everzet develop
  5. git checkout default-argument-exception && git rebase develop
  6. git push origin default-argument-exception
  7. Dann kann der Pull-Request sauber mit  dem Zweig default-argument-exception erstellt werden.
Für diese Hilfe und das ganze behat Projekt viele Dank.

Dienstag, 5. Juli 2011

Wie Webanwendungen ihre Nutzer verwalten

Die Vewaltung der Nutzer und ihrer jeweiligen Berechtigungen passiert meist innerhalb der Anwendung selber. Es sollte eigentlich möglich sein, das in eine separate Anwendung auszulagern.

Mit Leyland werde ich mal versuchen, die Benutzerverwaltung die eigentliche Anwendung aufrufen zu lassen. Das sollte durch eine überschriebene handle Methode unproblematisch machbar sein.

Wenn es klappt, müsste man sich bei der Anwendungsentwicklung weniger Gedanken machen. Das Userobjekt wird bereitgestellt und Abfragen ob etwas gemacht werden darf oder nicht braucht man dann nicht. Bei der Struktur der Anwendung wird man sicher aufpassen müssen, dass der Zugriff zuverlässig eingeschränkt werden kann. So wie es für mich aussieht, wird so ein Aufbau in einer restful application sowieso angestrebt.

Samstag, 2. Juli 2011

Catalyst Anwendungen auf github

Wenn man sich mit einem Webframework beschäftigen muss, sind fertige Beispielanwendungen sehr willkommen. Dies ist eine Liste von Projekten auf github
die Catalyst als Basis haben:
  • liblia - Literaturlisten erstellen und verwalten. Die Homepage des Projektes ist http://liblia.hu-berlin.de/doku/.
  • Thruk - Hilft bei der Administration von Nagios, Icinga und Shinken
  • Events - wie der Name schon sagt, eine Webseite um Veranstaltungen und ihre Besucher zusammenzubringen.
  • Kaizendo - ermöglicht das gemeinsame Schreiben von Büchern. Das mitgelieferte Beispiel über Innovation und Open Source ist sehr interessant.
  • CiderWebmail
  • parley - ein Forum
  • yesh - ein Blog
  • mojomojo - ein Wiki
  • Gitalist - Modernes Webinterface für git - das ist eine richtig populäre Applikation.

Sonntag, 26. Juni 2011

Der Beginn - das Leyland Webframework

Mit Leyland von Ido Perlmuter hat die Perlwelt ein weiteres Webframework erhalten. Es gibt schon ein paar Frameworks für Perl, die grundlegende Funktionen für die Erstellung von Webanwendungen bieten:

Leyland ist so etwas wie eine kompakte Mischung aus Catalyst und Dancer. Es verwendet Plack als Basis. Die Dokumentation ist toll und der Einstieg gelingt reibungslos. Ungewöhnlich für ein in Perl geschriebenes Projekt ist das bisher sehr wenige Tests vorhanden sind. Die Ursache dafür dürfte, der noch junge Entwicklungsstand der Software sein.

Der Code ist modernes Perl mit viel Moose und einigen anderen interessanten Modulen, so dass die Codebasis trotz der vielen Funktionen nicht sehr groß ist. Die Entwicklung damit macht Spaß und bietet auf jeden Fall genug Stoff für ein paar interessante Blognachrichten.