Suite à :
XBUS
Florent Aide nous a présenté son projet XBUS, un bus de communication pour les applications. L'idée est de gérer l'historique : pour faire parler des applications métier entre elles, on les connecte toutes au même bus. Dans certains cas, notamment quand la sécurité des données est en jeux, l'application qui traite le message renvoie un accusé de réception et de traitement (ACK).
Côté technique, il s'agit de :
- un cœur écrit en Go
- zmq pour la communication
- Python pour la logique
Lors des questions un projet similaire a été mentionné : autobahn. Le projet XBUS est libre et publié sur bitbucket.
Comment le packaging m'a simplifié la vie
Étant donné qu'à Logilab, nous avons des avis assez arrêté sur les questions de packaging, je suis allé voir cette conférence.
Xavier Ordoquy nous a présenté en détail virtualenv (pyvenv directement dans python à partir de 3.4) ainsi que l'outil pip.
Historiquement pypi a été instable, mais la situation s'est améliorée depuis qu'il est sur un CDN. Il y a un travail en cours sur la sécurité (vérification d'intégrité, ssl obligatoire etc). devpi permet d'avoir un pypi en interne comme cache, mais aussi comme système de "staging" avant de publier sur le pypi "officiel".
Selon Xavier, la guerre des distutils, python.packaging, distutils2, distribute, etc est finie. Il faut à présent utiliser setuptools et le connaître sur le bouts des doigts. Xavier nous recommande de copier un setup.py pour démarrer nos projets, par exemple celui de sentry.
Côté numéro de version, il faut aller lire la PEP440 Version Identification and Dependency Specification.
extra_requires permet de faire : pip install sentry[postgres] qui installe sentry mais aussi les dépendances pour le faire marcher avec PostgreSQL.
Côté packaging, il va falloir selon Christophe apprendre à utiliser wheel et stevedore (code).
Lors des questions, un membre du public mentionne le projet diecutter (docs, pypi).
Support de présentation : https://speakerdeck.com/xordoquy/packaging-pratique-fr
Autres liens collectés
- Pour travailler sur les docstrings d'un projet python, pyment peut être utile.
- fedmsg est un bus de communication utilisé chez fedora/redhat pour un grand nombre d'applications, il y a probablement de bonnes choses dedans. Il y a un début de travail sur un bus similaire chez debian
Prochain épisode
Prochain épisode: jour 2