Sprints
By Michael Scherer, Pierre-Louis Bonicoli
- Thursday and Friday, from 10:00 to 18:00
Ansible est un outil libre de configuration et d'orchestration écrit en Python.
Au cours de cet atelier de codage participatif, nous - contributeur (@pilou-) et membre de la core team (@mscherer) - vous proposons de contribuer à Ansible et plus particulièrement aux modules Ansible existants:
- corrections de bug existants
- reviews de pull-requests existantes
- nettoyage de code, par exemple:
- suppression des exceptions listées dans 'ansible/test/sanity/*/ignore.txt'
- vérifications module par module que la documentation et le module sont cohérents
- correction des tests instables
- ajout de tests unitaires (tox/mock) et d'intégration (docker/lxc)
- amélioration de la documentation
Ce sprint sera l'occasion pour vous:
- d'échanger à propos du fonctionnement d'Ansible
- de corriger des bugs éventuellement rencontrés
- de contribuer à un logiciel libre utilisant Git et GitHub
Prérequis et configuration nécessaire
Les personnes débutant avec Python et Ansible sont les bienvenues.
Pour participer, sont requis:
- un compte GitHub
- un ordinateur portable supportant l'environnement de développement suivant et permettant de lancer Ansible:
- Python (2.7 ou 3.5+)
- une installation Git fonctionnelle
- un système d'exploitation Linux, *BSD ou Mac. Le nœud de contrôle Ansible ne peut pas être sous Windows, mais une version récente de WSL fonctionne, ainsi qu'une machine virtuelle Linux.
Nous vous accompagnerons si nécessaire dans la mise en place de cet environnement de développement (si votre système d'exploitation n'est pas Windows).
Il est recommandé:
- d'avoir forké le projet GitHub Ansible
- d'avoir parcouru le guide utilisateur (https://docs.ansible.com/ansible/devel/user_guide/index.html), plus particulièrement les sections "Ansible Quickstart Guide", "Getting Started", "Introduction To Ad-Hoc Commands", "Working with Inventory" et "Working With Playbooks".
- d'avoir parcouru le guide du développeur (http://docs.ansible.com/ansible/devel/dev_guide ), notamment les sections "Debugging modules", "Conventions, tips, and pitfalls" et "Module format and documentation".
La documentation est en anglais, si nécessaire, nous accompagnerons les participants pour qui cela est un problème.
Une quinzaine de contributions ont été réalisées lors de l'atelier Ansible PyConFr 2018, dont 3 pull-requests mergées et 2 rapports de bug clos. Le détail de ces contributions est disponible ici: https://github.com/ansible/community/issues/262#issuecomment-431811857.
By Pascal Chambon
- Thursday and Friday, from 10:00 to 18:00
Ce hackathon propose de découvrir le concept du Witness Angel.
Véritable huissier personnel, ce dispositif permet d'assurer le respect de la vie privée des citoyens, tout en offrant de puissants moyens de preuve aux victimes de violences/chantages/harcèlements et autres, grâce à un mécanisme appelé "Écriture Seule".
Les participants pourront revoir, à cette occasion, les principes fondamentaux de la cryptographie moderne (chiffrement symétrique et asymétrique, signatures, format de clefs...), et utiliser des APIs de haut niveau pour développer les fonctionnalités du premier prototype Witness Angel (webservice et webclient en python/django, application mobile avec Kivy).
Dépôts de code: https://github.com/WitnessAngel/
- witness-angel-client (application mobile Kivy)
- witness-angel-escrow (webservices json-rpc avec Django)
- witness-angel-cryptolib (utilitaires communs dont cryptographie)
Prérequis: avoir Python 3.7 installé sur son poste.
Il est conseillé de forker sur github, et cloner en local, le ou les dépôts sur lesquels on veut participer, puis d'en installer les dépendances dans un environnement virtuel (python -m venv ) avec le package-manager "poetry". Les tests ("pytest -vl") devraient fonctionner.
Pour compiler l'appli cliente sous android, il faut être sous un Linux (ou une VM virtualbox Linux sur hôte Windows), mais le client Kivy fonctionne aussi sous les autres OS.
By Alexandre Garel
- Friday, from 10:00 to 18:00
Django Elasticsearch DSL est une extension Django permettant d'utiliser efficacement elasticsearch-dsl, la librairie python officielle de ElasticSearch, un moteur de recherche plein texte très utilisé.
Le but du sprint est de contribuer à django-elasticsearch-dsl en mettant la doc sur readthedocs, en testant des demandes de fusions ou autre corrections d'anomalies.
Un ticket pour suivre ça: https://github.com/sabricot/django-elasticsearch-dsl/issues/199
By Marc Debureaux
- Thursday and Friday, from 10:00 to 18:00
Depuis que je bosse avec Django, j'ai souvent remarqué que je faisais tout le temps la même chose, et pourtant Django nous épargne une grosse partie avec son boilerplate, mais ce n'est jamais suffisant, surtout quand on enchaîne les petits projets pour soi ou pour les autres.
C'est pourquoi j'ai créé quand j'étais tout jeune une petite boîte à outil dont je me sers encore aujourd'hui parce qu'elle m'apporte plein de facilités, mais je vous avoue que je commence à avoir un peu honte de son code et des pratiques utilisées à ses débuts.
L'objectif de cet atelier sera de se pencher sur les fonctionnalités existantes de cette boîte à outils et de les moderniser un peu en y ajoutant un peu de magie Python, mais également lui fournir pourquoi pas de nouvelles fonctionnalités intéressantes et éventuellement lui fournir une suite de tests digne de ce nom.
Amateurs comme experts, vous êtes tous les bienvenus et vous pouvez tous contribuer à vos différents niveaux, peut-être que vous apprendrez une chose ou deux au passage, mais il est plus vraisemblable que ça soit moi qui apprenne de vous. ;)
By Damien Accorsi
- Thursday and Friday, from 10:00 to 18:00
preview-generator est un module python qui permet de rationaliser la génération de miniatures et prévisualisation de documents. ce module peut être avantageusement intégré dans vos applications métier (web ou autre) ou être utilisé en ligne de commande (grâce à une heureuse contribution d'un membre de l'AFPY :) pour prévisualiser un document.
L'objectif de ce sprint est de travailler sur le module et de l'améliorer. Plusieurs pistes de travail, en fonction du niveau du ou des participants :
- fermer un des tickets existant,
- implémenter le support de la génération de preview de video (l'idée : lancer ffmpeg avec les bonnes options pour générer les vignettes principales de la vidéo, utiliser MediaInfo pour remonter les infos d'encodage et autre lors de la "preview" JSON)
- travailler sur l'amélioration du contenu de la "preview" au format JSON (en particulier pour les images, ce qui serait intéressant serait de remonter l'ensemble des données EXIF)
- implémenter le support de nouveaux formats de fichiers (exemple : les fichiers .sh3d de SweetHome3d si c'est faisable).
- améliorer la prévisualisation de documents bureautique en s'appuyant sur libreoffice server et non en lançant manuellement libreoffice comme c'est fait actuellement
- améliorer le code (typage, docstring, etc)
- ...
Si vous êtes intéressés, pour que le sprint soit le plus efficace possible, je vous invite à ouvrir un ticket sur github https://github.com/algoo/preview-generator/issues pour que nous puissions échanger en avance de phase. (ce n'est pas obligatoire, bien entendu !)
By Cyril Roelandt
- Thursday and Friday, from 10:00 to 18:00
De nos jours, la plupart des langages fournissent leur propre gestionnaire de paquets (pip, gem, etc.) ainsi que leur propre archive de paquets (PyPI, RubyGems, etc.). Il existe également de nombreuses distributions GNU/Linux (Debian, Fedora, etc.) et *BSD (FreeBSD, OpenBSD, etc.).
Les empaqueteurs doivent convertir les paquets "upstream" (disponibles dans les archives de paquets des langages) en paquets "downstream" (les paquets de nos distributions). Divers outils ont été écrits pour les aider dans ce travail quelque peu fastidieux : on trouve ainsi pypi2rpm, gem2rpm, pypi2deb, url2pkg, portgen, pytoport et bien d'autres. Tous ces outils ont une interface et un comportement différents. Ils réimplémentent tous du code similaire : lire des métadonnées depuis les archives de paquets, et écrire des paquets Debian/RPM/etc.
L'an dernier, j'ai présenté upt (Universal Packaging Tool, disponible à https://framagit.org/upt/upt)[1], un outil modulaire combinant des "lecteurs" (qui lisent les métadonnées) et des "écrivains" (qui écrivent les paquets Debian/RPM/etc.) grâce à une représentation intermédiaire unifiée des paquets. Depuis, diverses améliorations ont été apportées au logiciel, et un étudiant a participé au Google Summer of Code afin de contribuer au module upt-macports. Les modules suivants sont désormais disponibles:
Lecteurs (frontends) :
- upt-cpan
- upt-pypi
- upt-rubygems
- upt-hackage (expérimental)
Écrivains (backends) :
- upt-fedora
- upt-freebsd
- upt-guix
- upt-nix
- upt-openbsd
- upt-macports
- upt-debian (preuve de concept)
Ce hackathon est l'occasion de découvrir upt et d'y contribuer de différentes manières :
- remonter des bugs
- améliorer un lecteur (frontend)
- améliorer un écrivain (backend)
- ajouter un nouveau lecteur (frontend)
- ajouter un nouvel écrivain (backend)
- discuter de la façon d'intégrer upt dans les procédures d'empaquetage de votre distribution
Je suis aussi très intéressé par une discussion autour du packaging Python (setuptools, flit, poetry, la PEP518, PyPI, Warehouse...) qui serait sans doute très utile pour le développement d'upt-pypi.
[1] https://pyvideo.org/pycon-fr-2018/empaquetez-facilement-vos-projets-pour-gnulinux-et-bsd.html
By Julien Palard
- Thursday and Friday, from 10:00 to 18:00
Comme tous les ans nous organisons un sprint de traduction de la documentation de Python en français.
L'année dernière nous en travaillions sur la 3.7 et nous en étions à 30%, nous travaillerons cette année sur la 3.8 et nous sommes déjà à 43% !
Le sprint sera co-organisé par l'équipe de traduction : Jules Lasne, Mathieu Dupuy, Antoine Rozo et Julien Palard.
By Arthur Vuillard, Samira Rabaâoui, Guillaume Ayoub, Lucie Anglade
- Thursday and Friday, from 10:00 to 18:00
Watchghost est un outil qui permet de surveiller le bon fonctionnement de services informatiques. Cet atelier de codage participatif est l'occasion pour continuer les améliorations de l'application avec l'équipe à l'origine du projet.
Watchghost est codé en python asynchrone avec asyncio, aiohttp, etc... Son interface web est codée en Javascript/Vue.js/Bootstrap 4.
Nous accueillons toutes personnes volontaires pour coder sur le projet, et nous les accompagnerons dans l'apprentissage des technologies que nous utilisons.
By Jean-Sébastien Suzanne, Pierre Verkest
- Thursday and Friday, from 10:00 to 18:00
AnyBlok est un framework python open source, dont l'objectif est de faciliter le développement d'applications métiers. Il est basé sur des librairies python réputées telles que : SQLAlchemy, Pyramid…
En prod depuis 2 ans, résultat de 6 ans de travail de son créateur Jean-Sébastien Suzanne, passionné et persévérant, il a basé ses travaux sur plus de 15 ans d'expérience en développement d'applications métiers.
On vous accompagne dans la prise en main d'Anyblok et choisirons ensemble, en fonction de vos compétences et vos afinités, des tâche à prendre en charge, le travail ne manque pas, refonte de la documentation de référence, continuer le book de prise en main, amélioration des librairie existantes, ajout de nouvelles fonctionnalités ou nouveaux bloks !