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
Jeudi 09/06/2011 Séminaire IRILL
Olivier Berger
Purpose Apologies / Excuses
Mélange de transparents en anglais et français. . . Toutes mes excuses, all my apologies in advance, par avance.
Olivier Berger
Purpose Large scale bugtracking Definition : bugtracking
NO : Looking for bugs in the code / programs YES : Looking for bug reports for these bugs
Olivier Berger
Purpose as @zack said
Source : http ://git.upsilon.cc/r/talks/20110224-evry.git
Olivier Berger
Purpose Large scale : FLOSS ecosystem
Lots of duplicate or related bug reports Not a single place where to monitor bugs OK, launchpad, maybe. . . too much a silo anyway No interoperability of tools Manual work of maintainer / QA (bug triaging, etc.)
Olivier Berger
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) Debian developer (obergix), contributor to FusionForge, etc.
Olivier Berger
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, sourceforge.net/ Mandriva, Thales First work on bugtracker interoperability OSLC, MantisBT, bts-link, UDD, Linked Data
Olivier Berger
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
About our recent collaborations Financeurs
Pôles de compétitivité System@tic (Paris)
Minalogic (Grenoble)
Financement public (partiel) 2 ans (2009-2011)
Olivier Berger
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
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
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
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) : bugzilla (and issuezilla), gnats, launchpad, mantis, savane (from savanah), sourceforge trackers, trac, gforge (and fusionforge most probably), google code
Olivier Berger
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
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, Redmine, debbugs ?) Internal common representation (bug properties common base -> OSLC-CM) ?
Olivier Berger
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
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
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
Past efforts Our first Helios bug tracking ontology
http://heliosplatform.sourceforge.net/ontologies/helios_bt.html
Olivier Berger
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
Trends Linked Open Data
Olivier Berger
Trends (Public) Development artifacts part of Web 3.0 ?
RDFa in alioth.debian.org pages for users / projects (recent COCLICO contributions to FusionForge 5.1)
Example (proj. /projects/bts-link) Example (user /users/obergix) @prefix doap:
Olivier Berger
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
Standards SPDX (Software Package Data Exchange)
http://spdx.org/
Describe software package meta-data Mainly about licensing / copyright issues for the moment Linux Foundation, OSI, Black Duck, debian ( ?) => adoption Should be inter-operable with bug-tracking domain (RDF too)
Olivier Berger
Standards PlanetForge ontology ?
Primary goal : model forge 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
Standards Ontology
Olivier Berger
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
Open Services for Lifecycle Collaboration Showtime ! (nice IBM propaganda)
http://www.youtube.com/watch?v=B2vqL8fujgE
Olivier Berger
Open Services for Lifecycle Collaboration Communauté OSLC
Communauté ouverte Lead : IBM/Rational Wiki pour specs Projet Open Source : http://oslc-tools. sourceforge.net/ (Apache Software License) En cours de migration vers Eclipse : Eclipse Lyo proposal
Olivier Berger
Open Services for Lifecycle Collaboration Shameless auto-promotion
Olivier Berger
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
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
Open Services for Lifecycle Collaboration Domaine Change Management
OSLC-CM (bugtrackers)
Olivier Berger
Open Services for Lifecycle Collaboration Format d’échange sémantique + extensible : RDF
Example (XML)
Olivier Berger
Open Services for Lifecycle Collaboration Example bugzilla report (through oslc-tools adapter)
rapper -o turtle http://localhost:8282/bugz/changerequest?id=1
@prefix rdf:
Olivier Berger
Open Services for Lifecycle Collaboration Entités du service Web (méta-modèle, découverte)
Olivier Berger
Open Services for Lifecycle Collaboration APIs REST
opérations REST C,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
Open Services for Lifecycle Collaboration Opérations
Olivier Berger
Open Services for Lifecycle Collaboration Mashups AJAX (delegated dialogs)
Olivier Berger
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
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
Olivier Berger
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
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
Intégration et interopérabilité dans l’ALM Démonstration : FusionForge + jenkins
Demo sur machine virtuelle http://vimeo.com/23480321
Olivier Berger
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
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
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
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
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