État des lieux
Capitol du Libre
23 novembre 2013
Pylint ?
Un analyseur statique de code Python
●

●
●

Trouve des bugs comme un compilateur
(mais beaucoup moins)
Vérifie l...
Architecture
●

●

●

●

Pylint s'appuie sur une bibliothèque pour la 
représentation du code source, Astroid
Le moteur pa...
Distribution de Pylint
Intégré à la plupart des IDE 
http://docs.pylint.org/ide-integration

Intégré à la plupart des dist...
Analyseurs de code Python
●

Pychecker (2001 – 2011)

●

Pylint (2003 – )

●

Pep8 (2006 – )

●

Pyflakes (2006 – )

●

Fl...
Un projet communautaire
●

Depuis le début, volonté d'un projet 
communautaire par Logilab

●

Reste un certain instinct d...
Des choix... de communication
Bon accueil et réactivité sur
●

Liste de discussion

●

Tickets

●

Patchs

Faible support ...
Des choix... d'interaction
Des releases régulières (tous les 2/3 mois)
Une forge de développement maison
Déménagement sur ...
Des choix...techniques
Résistance !
●

Les œufs, c'est pour les omelettes - Debian vaincra !

●

Winquoi ? Debian vaincra ...
Social ChangeLog
Mai 2003

0.1

Oct. 2003

0.2.1, 1er patch externe (?)

… releases tous les 2-3 mois
Mai 2008

découverte...
Quelques chiffres (très approximatifs)
Depuis mi-2006 (passage à Mercurial) :
●

●
●

2,101 commits, 56 contributeurs pour...
Retour d'expérience - 1
Libre != retours et contributions sans effort
●
●

La base = répondre à un besoin
Durer dans le te...
Retour d'expérience - 2
●
●

Code de qualité
Communiquer (documentation, annonces, blogs, 
etc.)
➢

●

Se démarquer, fidél...
Retour d'expérience – 3
●

Attention à l'affiliation trop explicite du projet à 
une société, e.g. logilab-astng, 
http://...
Actions et projets porteurs
●

Projets étudiants master & assimilés

●

Google Summer of Code

●

Sprints et bug days

●

...
Retour sur investissement
●

Pour Logilab :
●
●

●

Communication
Reconnaissance

Pour moi :
●

●

Compétence technique (a...
What's next pour Pylint ?
●

Plein d'idées d'améliorations, bugs à corriger... 

●

Contributeurs ponctuels, voire régulie...
Merci !
Sylvain Thénault
sylvain.thenault@logilab.fr
@sythenault
http://pylint.org/
http://www.logilab.org/ 
Prochain SlideShare
Chargement dans…5
×

Pylint : 10 ans, état des lieux

1 419 vues

Publié le

Présentation au Capitol du Libre 2013 à Toulouse

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 419
Sur SlideShare
0
Issues des intégrations
0
Intégrations
651
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Pylint : 10 ans, état des lieux

  1. 1. État des lieux Capitol du Libre 23 novembre 2013
  2. 2. Pylint ? Un analyseur statique de code Python ● ● ● Trouve des bugs comme un compilateur (mais beaucoup moins) Vérifie les conventions de codage (beaucoup plus) Et aussi : « mauvaise » utilisation de Python, code smell, etc. Environ 170 vérifications ! Initié par Logilab en 2003 : 10 ans d’existence en 2013 !
  3. 3. Architecture ● ● ● ● Pylint s'appuie sur une bibliothèque pour la  représentation du code source, Astroid Le moteur parcourt l'arbre de syntaxe et envoie  des évènements à des checkers Ces checkers envoient des messages à un  reporter Architecture extensible  ● Beaucoup de possibilités de configuration ● Système de greffon pour ses propres checkers ● Astroid est lui-même configurable
  4. 4. Distribution de Pylint Intégré à la plupart des IDE  http://docs.pylint.org/ide-integration Intégré à la plupart des distributions Linux Pypi https://pypi.python.org/pypi/pylint Entrepôt Mercurial  https://bitbucket.org/logilab/pylint
  5. 5. Analyseurs de code Python ● Pychecker (2001 – 2011) ● Pylint (2003 – ) ● Pep8 (2006 – ) ● Pyflakes (2006 – ) ● Flake8 (2010 – ) ● McCabe (?) ● etc. 
  6. 6. Un projet communautaire ● Depuis le début, volonté d'un projet  communautaire par Logilab ● Reste un certain instinct de paternité ● Et un temps limité ➢ Comme toujours, il faut faire des choix et des  compromis 
  7. 7. Des choix... de communication Bon accueil et réactivité sur ● Liste de discussion ● Tickets ● Patchs Faible support et communication sur : ● IRC ● Twitter
  8. 8. Des choix... d'interaction Des releases régulières (tous les 2/3 mois) Une forge de développement maison Déménagement sur Bitbucket en signe  d'ouverture à la communauté (et parce qu'on n'est plus en  2003)
  9. 9. Des choix...techniques Résistance ! ● Les œufs, c'est pour les omelettes - Debian vaincra ! ● Winquoi ? Debian vaincra ! ● Standards LogilaboLogilabiens Mais certains choix stratégiques l'emportent ● Support Windows / Setuptools ● Py3k
  10. 10. Social ChangeLog Mai 2003 0.1 Oct. 2003 0.2.1, 1er patch externe (?) … releases tous les 2-3 mois Mai 2008 découverte de l'existence de gpylint Juil.  2011 0.25, 1ere « Google » release Avril 2013 déménagement chez Bitbucket Juin 2013 sprint vers 1.0 Août 2013 1.0, logilab-astng devient astroid
  11. 11. Quelques chiffres (très approximatifs) Depuis mi-2006 (passage à Mercurial) : ● ● ● 2,101 commits, 56 contributeurs pour un total de  23,119 lignes de code estimé à 6 années-homme d'effort + de 70 % des commits par Logilab (!= lignes de  code!) https://www.ohloh.net/p/pylint/contributors/summary Sur l'année : ● un « googler » a les droits en écriture ● 50 % des commits par des contributeurs ● 70 Pull Requests / 110 tickets depuis avril
  12. 12. Retour d'expérience - 1 Libre != retours et contributions sans effort ● ● La base = répondre à un besoin Durer dans le temps = fédérer et animer une  communauté  ● via tous les canaux possibles ● bon accueil, respect, réactivité
  13. 13. Retour d'expérience - 2 ● ● Code de qualité Communiquer (documentation, annonces, blogs,  etc.) ➢ ● Se démarquer, fidéliser ➢ ● veille Google, StackOverflow, Twitter note Pylint Évoluer en fonction des nouveaux besoins et des  nouveaux moyens
  14. 14. Retour d'expérience – 3 ● Attention à l'affiliation trop explicite du projet à  une société, e.g. logilab-astng,  http://www.logilab.org/project/pylint ➢ ● http://pylint.org (Très) difficile de fidéliser des contributeurs,  faciliter au maximum les contributions (tickets,  patchs, etc.) ➢ https://bitbucket.org/logilab/pylint
  15. 15. Actions et projets porteurs ● Projets étudiants master & assimilés ● Google Summer of Code ● Sprints et bug days ● Projet FUI SafePython http://www.safe-python.fr/ Coder; répondre aux questions ; releaser ;  communiquer ; coder ; répondre ; releaser ;  communiquer ;  coder ; répondre ; releaser ; communiquer ;   coder ; répondre ; releaser ; communiquer ;  coder ; répondre ; releaser ;  communiquer... 
  16. 16. Retour sur investissement ● Pour Logilab : ● ● ● Communication Reconnaissance Pour moi : ● ● Compétence technique (architecture, connaissance  de Python, expérience d'autres développeurs...) Compétence sociale (animation de communauté,  interactions)
  17. 17. What's next pour Pylint ? ● Plein d'idées d'améliorations, bugs à corriger...  ● Contributeurs ponctuels, voire réguliers ● Qui pour intégrer / animer / releaser ? (Attention, on s'attache à ces ptites bêtes là)
  18. 18. Merci ! Sylvain Thénault sylvain.thenault@logilab.fr @sythenault http://pylint.org/ http://www.logilab.org/ 

×