SlideShare une entreprise Scribd logo
1  sur  32
Journée Perl 2012 - Strasbourg




Retours d'expérience sur une utilisation
        avancée du MetaCPAN




  Erwan 'Labynocle'' Ben Souiden - erwan@aleikoum.net - @labynocle - Antelink
■▪▪▪▪▪▪▪▪▪▪

                                                                                         Plan
                                    Antepedia

                                    CPAN

                                    MetaCPAN

                                    BackPAN

                                    La communauté

                                    Exemple avec Dancer

                                    Pour quelques stats en plus...

                                    Insolites vu dans CPAN
Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 2
▪■▪▪▪▪▪▪▪▪▪

                                                                                     Antepedia
                                                                   La plus grande base de
                                                                   connaissance de composants
                                                                   Open Source



                                                 +1M de projets (+2M avec les projets Github)
                                                 +500M de fichiers
                                                 +1k projets ajoutés quotidiennement
                                                 +44To de données stockées



Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                      3
▪■▪▪▪▪▪▪▪▪▪

                                                                                   Antepedia
 De quelles informations avons nous besoin ?

        Une description du projet

        L'URL du projet

        La licence du projet

        Les archives des releases avec leurs numéros de
        version et leurs dates

        L'adresse du repository


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  4
▪■▪▪▪▪▪▪▪▪▪

                                                                                                            Antepedia
  Le cas Perl




                                                                                   Diagramme des langages
                                                                                        les plus utilisés
                                                                                   stats venant du Tiobe Index 2011 (par Tiobe Software)




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                                           5
▪▪■▪▪▪▪▪▪▪▪

                                                                                      CPAN


   Comprehensive Perl Archive Network - www.cpan.org

   héberge tous les modules et distributions Perl...

   … ainsi que des informations/métadonnées les
   concernant

   maintenu par la communauté et soutenu par de
   nombreuses entreprises


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 6
▪▪■▪▪▪▪▪▪▪▪

                                                                                      CPAN


   Comment récupérer les informations automatiquement ?

               via le site : www.cpan.org

               via l'API CPAN : search.cpan.org/api




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 7
▪▪■▪▪▪▪▪▪▪▪

                                                                                      CPAN
Y'a t'il toutes les informations dont nous avons besoin ?

Exemple avec Dancer :
        Une description du projet
            A minimal-effort oriented web application framework
        L'URL du projet
            ???
        La licence du projet
            The Perl 5 License (Artistic 1 & GPL 1)
        Les archives des releases avec leurs numéros de
        version et leurs dates
            Dancer-1.3095.tar.gz - version ??? – 2012/04/01
            Dancer-1.3094.tar.gz - version ??? – 2012/03/31
        L'adresse du repository
            http://github.com/sukria/Dancer
Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 8
▪▪■▪▪▪▪▪▪▪▪

                                                                                      CPAN
                   API « officielle »

                   Support du format JSON et XML

             Certaines informations ne sont pas retournées (license,
          repository) par l'API...

                   … et certaines informations manquent (URL du projet)

              API moins souple au niveau des requêtes (3 types de
          requêtes)

                   Ne retourne pas les informations sur les distributions
                   qui ont un status « backpan »

Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 9
▪▪▪■▪▪▪▪▪▪▪

                                                                                   MetaCPAN


         Alternative Open Source et gratuite à search.cpan.org

         … s'appuyant sur les données déclarées

         … ainsi que les données provenant d'autres sites
         (ex : Github)

         Depuis 2010

         2 contributeurs principaux mais plus de 40 participants

         Un frontend : www.metacpan.org

         Et une API MetaCPAN dédiée : api.metacpan.org
Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  10
▪▪▪■▪▪▪▪▪▪▪

                                                                                   MetaCPAN
  Pourquoi l'API MetaCPAN a des résultats plus riches ?

       Toutes les informations sont présentes... et même plus !

       Retourne les informations sur des distributions qui ne sont
       plus sur le CPAN

       L'API est beaucoup plus souple en permettant de lancer
       des requêtes très complexes et pointues

       Support de la recherche *

       Support du format JSON

       Le contenu du MetaCPAN est mis à jour toutes les heures
       et regarde le contenu des distributions (META.json)
Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  11
▪▪▪■▪▪▪▪▪▪▪

                                                                                   MetaCPAN




                                                                                       illustration de xkcd.org


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                  12
▪▪▪■▪▪▪▪▪▪▪

                                                             MetaCPAN
 Comment utiliser l'API MetaCPAN ?
 $ curl http://api.metacpan.org/release/Dancer
 {
         "resources" : {
                 "repository" : {
                         "url" : "http://github.com/sukria/Dancer"
                 },
                 "homepage" : "http://perldancer.org/",
                 "bugtracker" : {
                         "web" : "http://github.com/sukria/Dancer/issues"
                 }
         },
         "status" : "latest",
         "date" : "2012-04-01T19:22:56",
         "author" : "XSAWYERX",
         "maturity" : "released",
         "dependency" : [
                 {
                                                                                   13
                         "relationship" : "requires",
Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012
▪▪▪■▪▪▪▪▪▪▪

                                                                                   MetaCPAN
  Passage à l'échelle ?

  Une seule règle d'utilisation : BE POLITE

  Problèmes avec les requêtes qui retournent beaucoup de résultats

  Les requêtes de type search * sont trop lourdes

  Tuning des paramètres (size, fields)




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  14
▪▪▪■▪▪▪▪▪▪▪

                                                                                   MetaCPAN


     www.elasticsearch.org

     Moteur de recherche distribué, RESTful

     écrit en JAVA

     MetaCPAN s'appuie sur elasticsearch pour la recherche
     paginée et permettre le passage à l'échelle



Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  15
▪▪▪▪■▪▪▪▪▪▪

                                                                                   BackPAN


  Ce qui est sur le CPAN n'y reste pas forcément !

  BackPAN – backpan.perl.org – est un mirror CPAN où
  aucun contenu n'est effacé

  En mergeant le contenu BackPAN et celui de notre mirroir
  CPAN, on couvre toute l'histoire de Perl !




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 16
▪▪▪▪▪■▪▪▪▪▪

                                                                       CPAN dans Antepedia
  Le process d'intégration du CPAN dans Antepedia :

      Découverte de tous les projets – via l'API MetaCPAN

      Récupération des informations pour chaque projets trouvés – via
       l'API MetaCPAN

      Download des distributions associées à chaque projet – via le
       miroir CPAN d'Antelink

      Extractions des distributions

      Si déclaré : dump du repository (GIT,SVN ou CVS)

Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 17
▪▪▪▪▪▪■▪▪▪▪

                                                                                   La communauté
  Un travail continu avec la communauté




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                       18
▪▪▪▪▪▪▪■▪▪▪

                                                                         Exemple avec Dancer




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  19
▪▪▪▪▪▪▪■▪▪▪

                                                                         Exemple avec Dancer
 Archive d'une distribution




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  20
▪▪▪▪▪▪▪■▪▪▪

                                                                         Exemple avec Dancer
 Fichier provenant d'une distribution




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  21
▪▪▪▪▪▪▪■▪▪▪

                                                                         Exemple avec Dancer
 Fichier provenant du repository déclaré




Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                  22
▪▪▪▪▪▪▪▪■▪▪

                                                                                        Bilan
  Le projet MetaCPAN a permis

      d'avoir un point d'entrée unique et efficace pour découvrir le contenu
        du CPAN...

      … mais aussi de qualifier complètement ce contenu

      … de façon automatique

      ce process tourne aujourd'hui dans notre production
      sans interruption

      pour les contributeurs Perl, il reste un moyen simple pour la
       déclaration et la récupération d'informations
Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                 23
▪▪▪▪▪▪▪▪■▪▪

                                                                                           Bilan

P o u r A m e lio r e r la q u a lit e d e s
 in fo r m a t io n s ,
U t ilis e z E t a b u s e z d u ME TA C PA N




                                                                                      illustration de xkcd.org


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                 24
▪▪▪▪▪▪▪▪▪■▪

                                            Pour quelques stats en plus...




                                                                                    illustrations par Hasni Alamat


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                     25
▪▪▪▪▪▪▪▪▪■▪

                                            Pour quelques stats en plus...




                                                                                    illustrations par Hasni Alamat


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                     26
▪▪▪▪▪▪▪▪▪■▪

                                            Pour quelques stats en plus...




                                                                                    illustrations par Hasni Alamat


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                     27
▪▪▪▪▪▪▪▪▪■▪

                                            Pour quelques stats en plus...




                                                                                    illustrations par Hasni Alamat


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                     28
▪▪▪▪▪▪▪▪▪■▪

                                            Pour quelques stats en plus...




                                                                                    illustrations par Hasni Alamat


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                     29
▪▪▪▪▪▪▪▪▪■▪

                                            Pour quelques stats en plus...

                                                         Stats d'exploitation




                                                                                    illustrations par Hasni Alamat


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                     30
▪▪▪▪▪▪▪▪▪▪■

                                                                                   Insolites dans CPAN
  Notre analyse a révélé plus de 200 distributions en doublon avec les
   cas particuliers suivants :


  CGI.pm-3.02_alpha.tar.gz et CGI.pm-3.02.tar.gz sont en réalité
   identiques : une alpha qui devient la vraie release ?


  Gtk2-TrayIcon-0.03.tar.gz est retrouvé en doublon sous le nom Gtk2-
   TrayIcon-0.03_foo.tar.gz avec une version 0.02. Version déclarée pas
   en phase avec la version de la release ?



Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                           31
Questions




                                                                                   illustration issue de The Big Bang Theory


Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012                                               32

Contenu connexe

En vedette

Prendre indicatif présent
Prendre indicatif présentPrendre indicatif présent
Prendre indicatif présent
dre1999
 
Final ppt 2007
Final ppt 2007Final ppt 2007
Final ppt 2007
kedington
 
ESL Dates & prix Formulaire d'inscription Conditions générales
ESL Dates & prix Formulaire d'inscription Conditions généralesESL Dates & prix Formulaire d'inscription Conditions générales
ESL Dates & prix Formulaire d'inscription Conditions générales
XavierdeBastos
 
Diapo Afrique - Anniversaire de parrainage
Diapo Afrique - Anniversaire de parrainageDiapo Afrique - Anniversaire de parrainage
Diapo Afrique - Anniversaire de parrainage
VisionduMonde
 
Dc une petite_question_de_conscience1f2
Dc une petite_question_de_conscience1f2Dc une petite_question_de_conscience1f2
Dc une petite_question_de_conscience1f2
Dominique Pongi
 
Quiche lorraine. carmen et leonor. 2º b
Quiche lorraine. carmen et leonor. 2º bQuiche lorraine. carmen et leonor. 2º b
Quiche lorraine. carmen et leonor. 2º b
anaisruiz
 

En vedette (20)

Les pandas rescapes
Les pandas rescapesLes pandas rescapes
Les pandas rescapes
 
Prendre indicatif présent
Prendre indicatif présentPrendre indicatif présent
Prendre indicatif présent
 
Boutiques anciennes
Boutiques anciennes Boutiques anciennes
Boutiques anciennes
 
Final ppt 2007
Final ppt 2007Final ppt 2007
Final ppt 2007
 
ESL Dates & prix Formulaire d'inscription Conditions générales
ESL Dates & prix Formulaire d'inscription Conditions généralesESL Dates & prix Formulaire d'inscription Conditions générales
ESL Dates & prix Formulaire d'inscription Conditions générales
 
France 5
France 5France 5
France 5
 
"Super bowl Pub" Le recap 2013
"Super bowl Pub" Le recap 2013 "Super bowl Pub" Le recap 2013
"Super bowl Pub" Le recap 2013
 
Hoja vida jacqueline peña
Hoja vida jacqueline peñaHoja vida jacqueline peña
Hoja vida jacqueline peña
 
09 bricolages-bizares-2
09 bricolages-bizares-209 bricolages-bizares-2
09 bricolages-bizares-2
 
Tarea 5: DON QUIJOTE Y LAS ARTES
Tarea 5: DON QUIJOTE Y LAS ARTESTarea 5: DON QUIJOTE Y LAS ARTES
Tarea 5: DON QUIJOTE Y LAS ARTES
 
Diapo Afrique - Anniversaire de parrainage
Diapo Afrique - Anniversaire de parrainageDiapo Afrique - Anniversaire de parrainage
Diapo Afrique - Anniversaire de parrainage
 
Gabriel García Márquez
Gabriel García MárquezGabriel García Márquez
Gabriel García Márquez
 
Dc une petite_question_de_conscience1f2
Dc une petite_question_de_conscience1f2Dc une petite_question_de_conscience1f2
Dc une petite_question_de_conscience1f2
 
Extinción de la Pena
Extinción de la PenaExtinción de la Pena
Extinción de la Pena
 
Faites Un Voyage Aller Retour
Faites Un Voyage Aller RetourFaites Un Voyage Aller Retour
Faites Un Voyage Aller Retour
 
Quiche lorraine. carmen et leonor. 2º b
Quiche lorraine. carmen et leonor. 2º bQuiche lorraine. carmen et leonor. 2º b
Quiche lorraine. carmen et leonor. 2º b
 
Lf amitie blanche
Lf amitie blancheLf amitie blanche
Lf amitie blanche
 
La enfermedad pulmonar obstructiva crónica, o epoc
La enfermedad pulmonar obstructiva crónica, o epocLa enfermedad pulmonar obstructiva crónica, o epoc
La enfermedad pulmonar obstructiva crónica, o epoc
 
Hhhhhujoppppp
HhhhhujopppppHhhhhujoppppp
Hhhhhujoppppp
 
pasos para crear un blogBlog
pasos para crear un blogBlogpasos para crear un blogBlog
pasos para crear un blogBlog
 

Similaire à Retour d'expérience sur une utilisation avancée du MetaCPAN - journée Perl 2012

Cas integration open_erp
Cas integration open_erpCas integration open_erp
Cas integration open_erp
Joubi Aaziz
 
Col209 share point - migration
Col209   share point - migrationCol209   share point - migration
Col209 share point - migration
Mouhamadou Diallo
 
Switch to alfresco with 1 genia fr
Switch to alfresco with 1 genia frSwitch to alfresco with 1 genia fr
Switch to alfresco with 1 genia fr
Alfresco Software
 
Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...
Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...
Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...
Clément OUDOT
 

Similaire à Retour d'expérience sur une utilisation avancée du MetaCPAN - journée Perl 2012 (20)

Jabes 2019 - Session parallele "Comment et pourquoi faciliter la coconstructi...
Jabes 2019 - Session parallele "Comment et pourquoi faciliter la coconstructi...Jabes 2019 - Session parallele "Comment et pourquoi faciliter la coconstructi...
Jabes 2019 - Session parallele "Comment et pourquoi faciliter la coconstructi...
 
.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?
 
Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?
 
Cas integration open_erp
Cas integration open_erpCas integration open_erp
Cas integration open_erp
 
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
 
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamielParis Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
 
Conference Php Web Services
Conference Php Web ServicesConference Php Web Services
Conference Php Web Services
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
 
Zenika matinale spark-zeppelin_ml
Zenika matinale spark-zeppelin_mlZenika matinale spark-zeppelin_ml
Zenika matinale spark-zeppelin_ml
 
Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...
Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...
Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...
 
Col209 share point - migration
Col209   share point - migrationCol209   share point - migration
Col209 share point - migration
 
Tutoriel : "Gestion d’ontologies"
Tutoriel : "Gestion d’ontologies"Tutoriel : "Gestion d’ontologies"
Tutoriel : "Gestion d’ontologies"
 
Construire son application web de gestion de contenu d'annuaire LDAP
Construire son application web de gestion de contenu d'annuaire LDAPConstruire son application web de gestion de contenu d'annuaire LDAP
Construire son application web de gestion de contenu d'annuaire LDAP
 
Switch to alfresco with 1 genia fr
Switch to alfresco with 1 genia frSwitch to alfresco with 1 genia fr
Switch to alfresco with 1 genia fr
 
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUGConférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
 
Drupagora linagora-20111110
Drupagora linagora-20111110Drupagora linagora-20111110
Drupagora linagora-20111110
 
Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...
Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...
Migration d’annuaires propriétaires vers OpenLDAP : retours d’expérience et b...
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAP
 
gradle_nantesjug
gradle_nantesjuggradle_nantesjug
gradle_nantesjug
 

Retour d'expérience sur une utilisation avancée du MetaCPAN - journée Perl 2012

  • 1. Journée Perl 2012 - Strasbourg Retours d'expérience sur une utilisation avancée du MetaCPAN Erwan 'Labynocle'' Ben Souiden - erwan@aleikoum.net - @labynocle - Antelink
  • 2. ■▪▪▪▪▪▪▪▪▪▪ Plan Antepedia CPAN MetaCPAN BackPAN La communauté Exemple avec Dancer Pour quelques stats en plus... Insolites vu dans CPAN Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 2
  • 3. ▪■▪▪▪▪▪▪▪▪▪ Antepedia La plus grande base de connaissance de composants Open Source +1M de projets (+2M avec les projets Github) +500M de fichiers +1k projets ajoutés quotidiennement +44To de données stockées Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 3
  • 4. ▪■▪▪▪▪▪▪▪▪▪ Antepedia De quelles informations avons nous besoin ? Une description du projet L'URL du projet La licence du projet Les archives des releases avec leurs numéros de version et leurs dates L'adresse du repository Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 4
  • 5. ▪■▪▪▪▪▪▪▪▪▪ Antepedia Le cas Perl Diagramme des langages les plus utilisés stats venant du Tiobe Index 2011 (par Tiobe Software) Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 5
  • 6. ▪▪■▪▪▪▪▪▪▪▪ CPAN Comprehensive Perl Archive Network - www.cpan.org héberge tous les modules et distributions Perl... … ainsi que des informations/métadonnées les concernant maintenu par la communauté et soutenu par de nombreuses entreprises Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 6
  • 7. ▪▪■▪▪▪▪▪▪▪▪ CPAN Comment récupérer les informations automatiquement ? via le site : www.cpan.org via l'API CPAN : search.cpan.org/api Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 7
  • 8. ▪▪■▪▪▪▪▪▪▪▪ CPAN Y'a t'il toutes les informations dont nous avons besoin ? Exemple avec Dancer : Une description du projet A minimal-effort oriented web application framework L'URL du projet ??? La licence du projet The Perl 5 License (Artistic 1 & GPL 1) Les archives des releases avec leurs numéros de version et leurs dates Dancer-1.3095.tar.gz - version ??? – 2012/04/01 Dancer-1.3094.tar.gz - version ??? – 2012/03/31 L'adresse du repository http://github.com/sukria/Dancer Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 8
  • 9. ▪▪■▪▪▪▪▪▪▪▪ CPAN API « officielle » Support du format JSON et XML Certaines informations ne sont pas retournées (license, repository) par l'API... … et certaines informations manquent (URL du projet) API moins souple au niveau des requêtes (3 types de requêtes) Ne retourne pas les informations sur les distributions qui ont un status « backpan » Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 9
  • 10. ▪▪▪■▪▪▪▪▪▪▪ MetaCPAN Alternative Open Source et gratuite à search.cpan.org … s'appuyant sur les données déclarées … ainsi que les données provenant d'autres sites (ex : Github) Depuis 2010 2 contributeurs principaux mais plus de 40 participants Un frontend : www.metacpan.org Et une API MetaCPAN dédiée : api.metacpan.org Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 10
  • 11. ▪▪▪■▪▪▪▪▪▪▪ MetaCPAN Pourquoi l'API MetaCPAN a des résultats plus riches ? Toutes les informations sont présentes... et même plus ! Retourne les informations sur des distributions qui ne sont plus sur le CPAN L'API est beaucoup plus souple en permettant de lancer des requêtes très complexes et pointues Support de la recherche * Support du format JSON Le contenu du MetaCPAN est mis à jour toutes les heures et regarde le contenu des distributions (META.json) Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 11
  • 12. ▪▪▪■▪▪▪▪▪▪▪ MetaCPAN illustration de xkcd.org Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 12
  • 13. ▪▪▪■▪▪▪▪▪▪▪ MetaCPAN Comment utiliser l'API MetaCPAN ? $ curl http://api.metacpan.org/release/Dancer { "resources" : { "repository" : { "url" : "http://github.com/sukria/Dancer" }, "homepage" : "http://perldancer.org/", "bugtracker" : { "web" : "http://github.com/sukria/Dancer/issues" } }, "status" : "latest", "date" : "2012-04-01T19:22:56", "author" : "XSAWYERX", "maturity" : "released", "dependency" : [ { 13 "relationship" : "requires", Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012
  • 14. ▪▪▪■▪▪▪▪▪▪▪ MetaCPAN Passage à l'échelle ? Une seule règle d'utilisation : BE POLITE Problèmes avec les requêtes qui retournent beaucoup de résultats Les requêtes de type search * sont trop lourdes Tuning des paramètres (size, fields) Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 14
  • 15. ▪▪▪■▪▪▪▪▪▪▪ MetaCPAN www.elasticsearch.org Moteur de recherche distribué, RESTful écrit en JAVA MetaCPAN s'appuie sur elasticsearch pour la recherche paginée et permettre le passage à l'échelle Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 15
  • 16. ▪▪▪▪■▪▪▪▪▪▪ BackPAN Ce qui est sur le CPAN n'y reste pas forcément ! BackPAN – backpan.perl.org – est un mirror CPAN où aucun contenu n'est effacé En mergeant le contenu BackPAN et celui de notre mirroir CPAN, on couvre toute l'histoire de Perl ! Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 16
  • 17. ▪▪▪▪▪■▪▪▪▪▪ CPAN dans Antepedia Le process d'intégration du CPAN dans Antepedia : Découverte de tous les projets – via l'API MetaCPAN Récupération des informations pour chaque projets trouvés – via l'API MetaCPAN Download des distributions associées à chaque projet – via le miroir CPAN d'Antelink Extractions des distributions Si déclaré : dump du repository (GIT,SVN ou CVS) Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 17
  • 18. ▪▪▪▪▪▪■▪▪▪▪ La communauté Un travail continu avec la communauté Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 18
  • 19. ▪▪▪▪▪▪▪■▪▪▪ Exemple avec Dancer Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 19
  • 20. ▪▪▪▪▪▪▪■▪▪▪ Exemple avec Dancer Archive d'une distribution Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 20
  • 21. ▪▪▪▪▪▪▪■▪▪▪ Exemple avec Dancer Fichier provenant d'une distribution Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 21
  • 22. ▪▪▪▪▪▪▪■▪▪▪ Exemple avec Dancer Fichier provenant du repository déclaré Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 22
  • 23. ▪▪▪▪▪▪▪▪■▪▪ Bilan Le projet MetaCPAN a permis d'avoir un point d'entrée unique et efficace pour découvrir le contenu du CPAN... … mais aussi de qualifier complètement ce contenu … de façon automatique ce process tourne aujourd'hui dans notre production sans interruption pour les contributeurs Perl, il reste un moyen simple pour la déclaration et la récupération d'informations Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 23
  • 24. ▪▪▪▪▪▪▪▪■▪▪ Bilan P o u r A m e lio r e r la q u a lit e d e s in fo r m a t io n s , U t ilis e z E t a b u s e z d u ME TA C PA N illustration de xkcd.org Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 24
  • 25. ▪▪▪▪▪▪▪▪▪■▪ Pour quelques stats en plus... illustrations par Hasni Alamat Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 25
  • 26. ▪▪▪▪▪▪▪▪▪■▪ Pour quelques stats en plus... illustrations par Hasni Alamat Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 26
  • 27. ▪▪▪▪▪▪▪▪▪■▪ Pour quelques stats en plus... illustrations par Hasni Alamat Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 27
  • 28. ▪▪▪▪▪▪▪▪▪■▪ Pour quelques stats en plus... illustrations par Hasni Alamat Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 28
  • 29. ▪▪▪▪▪▪▪▪▪■▪ Pour quelques stats en plus... illustrations par Hasni Alamat Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 29
  • 30. ▪▪▪▪▪▪▪▪▪■▪ Pour quelques stats en plus... Stats d'exploitation illustrations par Hasni Alamat Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 30
  • 31. ▪▪▪▪▪▪▪▪▪▪■ Insolites dans CPAN Notre analyse a révélé plus de 200 distributions en doublon avec les cas particuliers suivants : CGI.pm-3.02_alpha.tar.gz et CGI.pm-3.02.tar.gz sont en réalité identiques : une alpha qui devient la vraie release ? Gtk2-TrayIcon-0.03.tar.gz est retrouvé en doublon sous le nom Gtk2- TrayIcon-0.03_foo.tar.gz avec une version 0.02. Version déclarée pas en phase avec la version de la release ? Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 31
  • 32. Questions illustration issue de The Big Bang Theory Retours d'expérience sur une utilisation avancée du MetaCPAN – Journée Perl 2012 32