Neuigkeiten an der Drupal-Trac-Front

Veröffentlicht von am Aug 21, 2009 in Drupal | 4 Kommentare

Wie angekündigt habe ich mir als Sommerprojekt vorgenommen, eine Schnittstelle für Drupal-Projektverwaltungsmodule zu entwickeln, die die Trac-XMLRPC-Schnittstelle implementiert. Die Schnittstelle ist dokumentiert und ich habe sie kürzlich kurz beschrieben. Nun ging die Arbeit los. Alle Methoden der Trac-Schnittstelle hab eich in einem eigenen Modul implementiert. Für die konkreten Rückgabewerte der Methoden (Format und Inhalte) habe ich mir einen XMLRPC-Client in Python geschrieben und gegen eine Trac-Testinstallation arbeiten lassen. Reverse engneering vom Feinsten.

Gleichzeitig habe ich mir vorgenommen, das ganze Projekt von Beginn an durch Tests abzudecken1. Also habe ich ein paar Abende mit der SimpleTest-Dokumentation verbracht. Aber als es lief hat es so richtig Spaß gemacht, den Code funktionieren zu sehen. Dabei ist eine Mock-Implemetierung für den Trac-Connector entstanden, der die konkrete Implementierung für das Project-, Case Tracker-Modul (und hoffentlich auch bald Agilo ;)) erleichtern soll.

Ich habe die ganze Codebasis (also eine ganze Drupal-Installation mit ein paar Zusatzmodulen) auf github.com abgeladen2. Mit

git clone git://github.com/DirkR/drupal-trac-xmlrpc-service.git drupal-trac

kann man sich das Projekt holen und inspizieren. Gerade installiere ich das Ganze auf meinem Webserver, dann sind Interessenten gern für Review und Kommentare eingeladen.

Nun werde ich mich an die Implementierung der Casetracker-Integration wagen, das stelle ich mir einfacher vor als das project.module

Ganz ilfreich für ds Einarbeiten in das Projekt waren auch die Gruppen auf g.do:

  • http://groups.drupal.org/services (wenngleich die Authentifizierung nicht so ausführlich beschrieben ist, wie ich es mir gewünscht hätte, sehr FLEX-lastig)
  • http://groups.drupal.org/testing-and-quality-assurance — Klasse!

Der XMLRPC-Webservice bereitet ein paar Probleme: Eclipse erwartet mit seinem Trac-Client den Webservice am Pfad /login/xmlrpc, der Drupal-XMLRPC-Server kann jedoch nur /xmlrpc bieten. So habe ich noch ein URL-Alias von /login/xmlrpc auf /xmlrpc eingebaut. Komplizierter wird es bei der Authentifizierung. Trac erwartet HTTP-Basic Authentication (wie bei “normalen” Websites), der Drupal-XMLRPC-Service arbeitet mit generierten Schlüsseln. Da bleibt wohl nur, den Eclipse-Trac-Connector zu nehmen (liegt Open source vor) und die angepasste Authentifizierung einzubauen. Nicht so schön, aber nicht tragisch. Und realisierbar. Erstmal habe ich mir einen REST-Service als Schnittstelle vorgenommen, das hilft mir an der Eclipse-front nicht weiter, sieht aber technologisch interessanter aus.

Es bleibt spannend!

Update (09.01.2010):
Das Projekt ist umgezogen nach gitorious.org

1 Testgetriebene Entwicklung ist einfach Klasse!

2 Das trac_service-Module gibt es hier: http://github.com/DirkR/drupal-trac-xmlrpc-service/tree/1e3e4e15f2a264e3ea1fdd73a5ae1ea74f562bc8/sites/all/modules/trac_service

Ähnliche Beiträge:

flattr this!

4 Kommentare

  1. André
    24. August 2009

    Mensch Dirk, das klingt nach einer richtig spannenden Aufgabe… bin gespannt, wie gut du das am Ende hinbekommst.

    Habe leider keine Drupal-Installation oder Trac-Anwendung. Hoffe also, dass du hier deine Ergebnisse blogst. ;)

    Besten Gruß André

    Antworten
  2. Dirk
    25. August 2009

    Ich werde Dich auf dem Laufenden halten … und an die große Glocke hängen, wenn Drupal mal auch Trac für Eclipse-Entwickler ersetzen kann :)

    Viele Grüße, Dirk

    Antworten
  3. rapsli
    25. August 2009

    ich bin dran mit agilo. Geht zwar nicht mehr ganz so schnell, aber es geht voran. Agilo basiert ja auf dem Project Modul, von daher dürfte ja die Integration ein Kinderspiel sein. Ich bin im Moment gerade dran einen Air Client zu bauen.

    Antworten
  4. Dirk
    26. August 2009

    Ich bin gespannt – auf Agilo und auf die Trac-Integration :)

    Die Sache mit dem AIR-Client ist ja auch sehr interessant – gerade weil ich einen Client für Drupal’s project.module suche, den auch “unsere Sekretärin” bedienen kann/will, um Aufgabe zu stellen ;) Mit Eclipse oder der Web-UI brauche ich ihr nicht kommen.

    Antworten

Hinterlasse eine Antwort