Dynamically querying external (sub) projects properties with RDF in FusionForge

I’ve been working recently on two plugins for FusionForge. The work is somehow a POC for some COCLICO dynamic interoperability work-package, but some outcomes may actually be of use someday in real life, who knows 😉

The first plugin is called extsubproj, and allows the definition of links to external subprojects (i.e. hosted on another forge), in the properties of a FusionForge project. It’s basically managing a set of stored URLs and displaying them in the top project’s summary page. Nothing fancy, so far, and the code is not yet finished, nor pushed to FusionForge’s trunk yet.

The second plugin, called doaprdf, allows the publication, by the forge, on the same URL as the project summary page (those URLs are standardized in FusionForge in the form : http://.../projects/projname), of a RDF+XML description of some of the project’s metadata, using the DOAP dialect. This works with content-negotiation, following principles of the Linked Data paradigm, so that the same URL, when requested for HTML, renders a Web page (the forge project’s summary page) meant for humans^geeks, and when queried with a special content type Accept HTTP header (Accept: application/rdf+xml), meant for machines.

Now, when you combine these two, you gain the possibility of having extsubproj display not only the suprojects’ URLs, but also some of their meta-data, for instance a link in the form of <a href="http://.../projects/projname">fetched doap:name</a>.

The POC illustrates how one may then construct a hierarchy of (public so far) projects and sub-projects accross the buondaries for different forges databases, and display them in a similar manner as local projects (for instance, what the FusionForge plugin projects-hierarchy provides), through dynamic query of the remote project’s properties fetched on demand and modeled in a generic dialect (RDF with common ontologies such as DOAP).

Note that a similar FusionForge plugin “foafprofile" is being developped too for users profiles, using RDF and FOAF.

Stay tuned for more content in the same vein.

Intervention au prochain séminaire IRILL : Bug tracking à grande échelle et interopérabilité des outils de développement dans l’écosystème FLOSS

Je suis intervenu au séminaire Logiciel Libre et Programmation de l’IRILL, le jeudi 09/06 à 15h45.

Titre de l’exposé : Bug tracking à grande échelle et interopérabilité des outils de développement dans l’écosystème FLOSS

Résumé :

L’écosystème du logiciel libre (FLOSS) est caractérisé par un développement extrèmement décentralisé, avec de multiples canaux de production et de distribution décorellés, et des processus d’assurance qualité qui doivent donc prendre en compte ces aspects.

Dans cet ensemble de processus d’Assurance Qualité, nous détailerons le volet du suivi des rapports de bugs, en présentant quelques pistes de standardisation et des mécanismes d’interopérabilité (comme le standard OSLC).

Il reste encore de nombreux efforts d’implémentation à conduire, mais avec un espoir concret à lé clé de permettre la réalisation de nouveaux outils, basés sur l’approche Linked Data, permettant un suivi des rapports de bugs à grande échelle.

Toutes les informations concernant ce séminaire sont sur : http://www.irill.org/activities/seminaries

Update : les transparents de l’intervention sont en ligne (PDF 4 Mo).

Lecture “OSLC : open standard for interoperability of open source ALM tools” on may 11 at Solutions Linux

We’ll be speaking at Solutions Linux (in Paris, France) on May 11 (15h10 – 15h40), about “OSLC : open standard for interoperability of open source ALM tools”, where we’ll present some results of work conducted in the frame of the COCLICO project, around OSLC.

The more the merrier 🙂

More details here: Program of the Cloud / Virtualisation / Interoperability conferences.

Update 2011/05/11 : slides (in french) uploaded. The screencast of Jenkins and FusionForge integration through OSLC-CM delegated creation dialog (AJAX mashup) also online.

See my french blog post for more details.

Conférence “OSLC : standard ouvert pour l’interopérabilité des outils ALM open source” le 11 mai à Solutions Linux

Nous interviendrons à Solutions Linux le 11 mai (15h10 – 15h40), pour parler d'”OSLC : standard ouvert pour l’interopérabilité des outils ALM open source“, où nous ferons un retour d’expérience sur les travaux menés dans le projet COCLICO autour d’OSLC.

Venez nombreux 🙂

Plus de détails : Programme des conférences Cloud / Virtualisation / Interopérabilité

Update 11/05/2011 : transparents mis en ligne (PDF). Le screencast de la démo d’intégration de FusionForge et Jenkins via OSLC-CM est aussi en ligne.

Jenkins + FusionForge trackers integration with OSLC delegated creation dialog from Olivier Berger on Vimeo.

Integrating JUnit tests inside a PHPUnit+Selenium test suite

I’ve spent some time recently integrating the OSLC open source test suite (from the OSLC open source support project)into the FusionForge test suite.

FusionForge‘s test suite uses PHPUnit to drive Selenium (RC) “end user” like tests. Selenium is a tool that makes such tests possible by piloting an instance of FireFox browsing the Web interface of the forge, in a controlled environment.

The OSLC test suite consists in a series of JUnit tests, which is driven by Maven (initially started from inside Eclipse, then also from command-line after I found the nasty command line parameters and changes in the pom.xml file that were required ;).

The whole of the test suite may not pass for our implementation of OSLC-CM in FusionForge, so some tests fail, but I don’t bother too much as this is “normal”, and all we’re caring for at the moment is mainly non-regression. There seemed to be no way to exclude some of the tests from the suite for the moment, but fortunately, that doesn’t matter, since the way I have integrated both test suites happens to allow the verification of only success on some of the tests.

So, the way they are integrated is through execution of the JUnit suite during one of the test cases of the Selenium suite (using a system( ) PHP call), which generates an HTML report (using the Maven SureFire reports plugin), which can then be viewed in the Web pages of the tested forge, so that Selenium + PHPUnit assertions can verify the content of the test report.

This is a bit hackish, but all in all suites our needs so far. Next step is to see if it works in other people’s test environments, including the automated executions in Hudson.