Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem

Olivier Berger - Télécom SudParis

Jeudi 09/06/2011 Séminaire IRILL

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Purpose Apologies / Excuses

Mélange de transparents en anglais et français. . . Toutes mes excuses, all my apologies in advance, par avance.

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Purpose Large scale bugtracking Definition : bugtracking

NO : Looking for bugs in the code / programs YES : Looking for bug reports for these bugs

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Purpose as @zack said

Source : http ://git.upsilon.cc/r/talks/20110224-evry.git

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Purpose Large scale : FLOSS ecosystem

Lots of duplicate or related bug reports Not a single place where to monitor bugs OK, , maybe. . . too much a silo anyway No interoperability of tools Manual work of maintainer / QA (bug triaging, etc.)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Purpose Who I am

Since 2002 : Institut TELECOM / TELECOM SudParis / Computer Science dept. / PFTCR team Research on collaborative development platforms, tools, process, in FLOSS communities Previously worked in service companies (Cap Gemini, IDEALX) R&D on FLOSS, forges, bugtracking, Linked Data, etc. (CALIBRE, HELIOS, COCLICO) (recent) developer (obergix), contributor to FusionForge, etc.

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

About our recent collaborations About HELIOS (over now)

Application Lifecycle Management with Open Source tools System@tic Paris Region

http: Partners : Alcatel-Lucent, Artenum, //heliosplatform. TELECOM SudParis, Kalis, .net/ Mandriva, Thales First work on bugtracker interoperability OSLC, MantisBT, bts-link, UDD, Linked Data

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

About our recent collaborations COCLICO (ongoing)

http://www.projet-coclico.org/

Le projet COCLICO vise à redynamiser les communautés de forges logicielles en structurant un écosystème libre pour lequel il existe une masse critique d’acteurs en France.

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

About our recent collaborations Financeurs

Pôles de compétitivité System@tic (Paris)

Minalogic (Grenoble)

Financement public (partiel) 2 ans (2009-2011)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

About our recent collaborations Partenaires

9 participants principalement à Paris et Grenoble Industriels : Bull, Orange Labs, Xerox PMEs : CELI France, Bearstech, Gnurandal (via Xerox), Objet Direct Academiques : INRIA, Institut TELECOM / Télécom Sud Paris Centrage fort sur le logiciel libre (est-ce que ça ne devrait pas être toujours comme cela avec du financement public ?)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

About our recent collaborations Objectifs du projet COCLICO (quoting its website)

Re-dynamisation de la communautés logiciel libre des développeurs autour de la base de code historique des forges libres (FusionForge et Codendi) Définition d’un modèle d’intégration ouvert Intégrité des données et confidentialité Échange de données en temps réel entre les différentes forges Fonctionnalités pour utilisation industrielle et assurance qualité

traçabilité des informations, support de méthodologies de génie logiciel, interaction avec le poste de travail du développeur. etc.

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Problem definition The need for interlinked bug reports

Help developers, maintainers, power users Monitoring work done around particular issues Not one single distribution channel Many venues for support : many distributions, many bugtrackers Redundancy of reports across trackers Final goal : ease of monitoring bug reports links all over the FLOSS ecosystem

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Problem definition Existing tools : bts-link

http://bts-link.alioth.debian.org/ Monitoring status changes on upstream bugs around the Debian bugtracker Debian tool for package maintainers (and advanced users) Uses existing bug links (forwarded-to) set by humans : Distribution (Debian) package bugs “Upstream” project bugtrackers bugs Email notification for Debian packagers (or people monitoring Debian bugs) Supports lots of upstream bugtracker types (through specific connectors) : (and issuezilla), , launchpad, mantis, savane (from savanah), sourceforge trackers, , (and fusionforge most probably), google code

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Problem definition Existing tools : Eclipse Mylyn

http://www.eclipse.org/mylyn/

Mylyn Tasks (many other modules) Offers integrated bug tracking interfaces inside Eclipse Supports contexts attached to bug reports 32 different connectors to bugtrackers to maintain

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Problem definition Existing tools : SD (Simple defects)

http://syncwith.us/sd/

Distributed bugtracking. Think : Bugzilla == Subversion SD == Git (+ git-svn, etc.) CLI interface ;-) Again, many connectors needed to different bug trackers (RT, Hiveminder, Trac, GitHub, Google Code, , ?) Internal common representation (bug properties common base -> OSLC-CM) ?

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Problem definition Issues for such tools

Needs custom ad-hoc connectors/scrapers for each bugtracker : no standard APIs Proliferation Not always very actively maintained (including bugtrackers)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Past efforts Problems : interop / standardisation (lack of -)

Until recently, no real standard for bugtrackers : APIs / protocols Interchange of (meta-)data representing Bugs/Issues (and associate resources) Old school technology (Web 1.5 ?) : mashups difficult, ambiguous URIs, etc.

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Past efforts Past efforts : our Helios_BT ontology

PhD work as part of Helios project Bug/Issue representation Ontology, Schema (Semantic Web standards) Contributed to standardisation effort : baetle project http ://code.google.com/p/baetle/ (dead now) Reuse of EvoOnt BOM http ://www.ifi.uzh.ch/ddis/evo/ Semantic web techniques (RDF) : extensible Mapping bugtrackers data to RDF/Linked Data : prototype on UDD, bugzilla, etc. (D2R) TODO : Need to adjust to OSLC-CM that appeared in between

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Past efforts Our first Helios bug tracking ontology

http://heliosplatform.sourceforge.net/ontologies/helios_bt.html

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Trends SemWeb / Linked-Data

Semantic Web, Linked Data, Web 3.0 hype (latest instanciation : http ://schema.org/) Linked (Open) Development Data Bugs (reports) become first class citizens of the SemWeb (content-negociation, RDFa, adapters, OSLC-CM . . . )

http://linkeddata.org/

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Trends Linked Open Data

Olivier Berger - Télécom SudParis Large scaleSource bug tracking : http and ://linkeddata.org/ interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Trends (Public) Development artifacts part of Web 3.0 ?

RDFa in .debian.org pages for users / projects (recent COCLICO contributions to FusionForge 5.1)

Example (proj. /projects/bts-link) Example (user /users/obergix) @prefix doap: . @prefix doap: . @prefix foaf: . @prefix foaf: . @prefix sioc: . @prefix sioc: . doap:created "2006-04-28"@en ; sioc:email_sha1 "20405e51683655b67655e50b2e46fb0f43fd5b5f"@en ; doap:description "BTS\\-link provides a set of tool that allow our BTS to be linked to other popular BTS\\: \\(1\\) to automatically update wontfix/upstream/fixed\\-upstream tags, \\(2\\) to provide a view of the status of forwarded bugs on the upstream BTS, but on our BTS\\."@en ; sioc:member_of , ; doap:developer , ; sioc:name "obergix"@en ; doap:homepage ; a sioc:UserAccount ; doap:maintainer , , ; doap:developer ; a sioc:UserAccount . doap:maintainer ; a foaf:Person ; foaf:account ; a foaf:Person ; foaf:name "Olivier Berger"@en . foaf:account .

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Standards OSLC-CM : a proposed standard for bugtracker interoperability

OSLC (Open Services for Lifecycle Collaboration) proposed standard Web technology : REST, RDF, AJAX, Open community, Open standard OSLC-CM (Change Management) FLOSS implementations developped in Helios and COCLICO Mantis bugtracker (outdated now) FusionForge trackers Jenkins Many more domains than trackers More on OSLC later

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Standards SPDX (Software Package Data Exchange)

http://spdx.org/

Describe software package meta-data Mainly about licensing / copyright issues for the moment Foundation, OSI, Black Duck, debian ( ?) => adoption Should be inter-operable with bug-tracking domain (RDF too)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Standards PlanetForge ontology ?

Primary goal : model artifacts in a standard way using RDF Forge project export / import feature being worked on in COCLICO, for FusionForge, to start with Links the different tools dump formats (internal indentifiers) Standard format to be used in ForgePlucker project To be published on http://planetforge.org/

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Standards Ontology

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Introduction rapide à OSLC

Open Services for Lifecycle Collaboration http://open-services.net/ Open Source License Checker / Our Savior Lutheran Church En français : http: //open-services.net/bin/view/Main/ OslcCoreSpecificationOverviewFR

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Showtime ! (nice IBM propaganda)

http://www.youtube.com/watch?v=B2vqL8fujgE

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Communauté OSLC

Communauté ouverte Lead : IBM/Rational Wiki pour specs Projet Open Source : http://oslc-tools. sourceforge.net/ (Apache ) En cours de migration vers Eclipse : Eclipse Lyo proposal

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Shameless auto-promotion

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Spécifications : «standard» d’intéropérabilité

Standard ouvert patent non-assert covenant signé par participants spécifications sous Creative Commons domaines divers (ALM, PLM) OSLC-CM (Change Management) beaucoup d’autres domaines, au-delà des trackers de bugs Technologies basé sur standards technologies Web : REST, RDF, AJAX, Dublin Core passe du modèle client-serveur au modèle Web (>= 2.0, Linked Data) pragmatique (PPCD)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration État d’avancement spécifications

OSLC Core http://open-services.net/bin/view/Main/OslcCore Divers groupes de travail, mais presque tout finalisé

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Domaine Change Management

OSLC-CM (bugtrackers)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Format d’échange sémantique + extensible : RDF

Example (XML)

"prefixes" : { "oslc": "http://open-services.net/ns/core#", "foaf" : "http://http://xmlns.com/foaf/0.1/", "dcterms" : "http://purl.org/dc/terms/" I love trash }, 2002-10-10T12:00:00-05:00 "rdf:type" : { "rdf:resource" : "http://open-services.net/ns/bogus/blogs#Entry" }, "rdf:about" : "http://example.com/blogs/entry/1", Anything dirty or dingy or dusty. "dcterms:title" : "I love trash", Anything ragged or rotten or rusty. "dcterms:modified" : "2002-10-10T12:00:00-05:00", "dcterms:content" : "Anything dirty or dingy or dusty. \\nAnything ragged or rotten or rusty.", "dcterms:creator" : { "foaf:name" : "Oscar T. Grouch" Oscar T. Grouch }, }

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Example bugzilla report (through oslc-tools adapter)

rapper -o turtle http://localhost:8282/bugz/changerequest?id=1

@prefix rdf: . @prefix dcterms: . @prefix oslc: . @prefix oslc_cm: . @prefix bugz: . @prefix foaf: .

oslc_cm:status "NEW" ; dcterms:contributor [ foaf:name "[email protected]" ; a foaf:Person ]; dcterms:created "Fri May 20 17:36:00 CEST 2011" ; dcterms:identifier "1" ; dcterms:modified "Fri May 20 17:36:56 CEST 2011" ; dcterms:title "coin" ; bugz:component "TestComponent" ; bugz:opsys "Linux" ; bugz:platform "PC" ; bugz:priority "P3" ; bugz:product "TestProduct" ; bugz:version "unspecified" ; a oslc_cm:ChangeRequest .

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Entités du service Web (méta-modèle, découverte)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration APIs REST

opérations REST ,R,U,D classiques Create (POST) Retrieve (GET) Update (PUT) Delete (DEL) API orientées intégration, interop ID resources == URLs (RDF, Linked Data) APIs REST minimales + extensions de chaque produit dialogues delegated -> scenarii AJAX resource preview, OAuth etc.

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Opérations

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Open Services for Lifecycle Collaboration Mashups AJAX (delegated dialogs)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Intégration et interopérabilité dans l’ALM Integration des outils de développement

Auparavant : intégrations ad-hoc Aujourd’hui demain : interopérabilité basée sur les standards du Web (REST, OSLC) Patterns d’intégration d’outils ALMaaS (Cloud)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Intégration et interopérabilité dans l’ALM Mécanisme de preview des ressources générique basé sur content-negociation

Spécifications http://open-services.net/bin/view/Main/OslcCoreUiPreview Exemple : curl -H ’Accept: application/x-oslc-compact+xml’ http://fftrunk/users/labbenes

M. Sabri LABBENE labbenes 500px 150px

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Intégration et interopérabilité dans l’ALM Exemple : Compact preview OSLC users FusionForge

http://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/OslcCompactPreviewTooltips

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Intégration et interopérabilité dans l’ALM Intégration continue : FusionForge + Jenkins

Jenkins (ex Hudson) comme Consumer OSLC-CM Permet de créer des bugs en cas d’échecs des builds, sur le bugtracker distant Outil libre, Java, mashup Javascript, plugin OSLC-CM publié sur GiHub Trackers FusionForge comme Provider OSLC-CM Gère la base de suivi des bugs et expose son API via OSLC-CM Délègue l’authentification aux consumers au nom des users de la forge avec OAuth Outil libre, PHP + Zend Framework, plugin OSLC-CM publié sur SVN FusionForge

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Intégration et interopérabilité dans l’ALM Démonstration : FusionForge + jenkins

Demo sur machine virtuelle http://vimeo.com/23480321

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Intégration et interopérabilité dans l’ALM Quid déploiement concret OSLC

Propriétaire Jazz, RTC ... Libre plugin provider FusionForge trackers plugin consumer Hudson/Jenkins Mylyn (bientôt ?) plugin provider Mantis (obsolète) Adaptateur pour Bugzilla (Java, dans oslc-tools) Projet OSLC-tools sur sf.net => Eclipse Lyo devrait assurer plus d’intérêt pour OSLC

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Perspectives Encore du boulot. . .

OSLC-CM interface (RO ?) pour debbugs OSLC-CM support in bts-link Bug report forwarding tool with SD (Simple Deffects) : Distributed bugtracker middleware ? More RDF and REST URLs in : forges (FOAF, DOAP in FusionForge, work in progress) Debian’s PTS facade for UDD -> RDF (SPDX + OSLC-CM + . . . ) Semantic desktop integration (KDE, Nepomuk, . . . ) http://fetchbugs4.me someday (web app to monitor one’s bug reports)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Perspectives Plus d’interopérabilité, nouveaux usages ?

Utilisation OSLC dans outils libres ? Mylyn ? . . . Oui, mais quand ? Eclipse Lyo debbugs, bugzilla, LaunchPad... ? Nouveaux usages car plus d’interopérabilité ? Puissance des standards décuplée : OSLC + SPDX + PlanetForge + Helios_BT ! Nouvelles oportunités Linked Data pour les données de développement des projets libres => mining pour études génie logiciel Qui vivra verra. . .

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Questions, etc. ? Fin

Merci. Questions ?

En savoir plus

@oberger : http://identi.ca/oberger/ email : mailto:[email protected] blog : http://www-public.it-sudparis.eu/~berger_o/weblog/

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem Introduction Interlinking bug reports Current efforts More on OSLC Conclusion

Questions, etc. ? Copyright & License

This presentation is under CC-by-SA license Illustrations empruntées aux spécifications OSLC specs (licence Creative Commons) Copyright (c) 2011 Olivier Berger, Institut Télécom Made with org-mode under emacs (org + beamer)

Olivier Berger - Télécom SudParis Large scale bug tracking and interoperability of development tools in the FLOSS ecosystem