Roanne, le 29 juin 2021
Dalibo participe activement à la communauté PostgreSQL. Récemment, nous avons décidé de soutenir psycopg et son mainteneur Daniele Varrazzo, à travers des initiatives à la fois collectives et individuelles.
Qu’est-ce que psycopg ?
psycopg est un connecteur Python à un serveur PostgreSQL sous licence GPL. Il est maintenu par Daniele Varrazzo depuis dix ans, parallèlement à d’autres projets tels que pgxn, pgaudit, etc.
Voici selon nous ses points forts :
- son utilisation de la libpq, l’implémentation officielle du protocole de communication de PostgreSQL,
- son support de nombreuses fonctionnalités de configuration et d’intéraction avec PostgreSQL,
- sa stabilité, sa popularité et sa fiabilité.
Daniele Varrazzo en bref
Passionné par les logiciels libres dès ses années universitaires, Daniele s’est formé très tôt à Python, avant de découvrir PostgreSQL.
Selon ses propres mots, « what to replace Access with?… I settled with Postgres, which wasn’t the most popular at the time, but it could parse the more complex SQL I was used to writing and didn’t have problems with dates such as the 31st of February. I then looked at how to make Python and Postgres talk together and found this “psycopg” module. »
Daniele décide d’y contribuer en faisant remonter des bugs avant de soumettre des patches.
Après quelques années d’éloignement avec les projets PostgreSQL, il y retourne en constatant divers problèmes, dont l’infrastructure, la licence et l’abandon du projet par son créateur initial, Federico “fog” Di Gregorio.
Daniele relance alors le projet avec ce dernier et d’autres contributeurs : psycopg2 sort en 2010.
psycopg 3.0
Cette version est en développement depuis 2020. Daniele est mainteneur de psycopg2 depuis 2010, aussi sa décision de faire évoluer le projet au risque d’une rupture de compatibilité a été mûrement réfléchi. Nous avons repéré les améliorations suivantes :
- une plus grande fidélité à la libpq, qui a évolué lors de la dernière décennie,
- l’asynchronicité native du protocole PostgreSQL et par là l’asynchronicité côté client avec asyncio,
- l’adaptation des paramètres des requêtes côté serveur,
- le support de COPY TO.
Contribuer
La décision d’effectuer un don au projet a été prise par notre comité Open Source, suite à l’appel à soutiens diffusé dans la communauté PostgreSQL. Pendant ses réunions mensuelles, ses membres travaillent à promouvoir notre R&D - entre autres à travers le Dalibo Labs - et à soutenir les autres projets, que ce soit via des dons financiers ou un dispositif facilitant les contributions des collègues.
Pour rappel, Dalibo encourage ses salarié⋅es à dédier 20% de leur temps de travail à des contributions à PostgreSQL et au mouvement coopératif. Certains travaux sont dirigés, tandis que d’autres sont gérés en toute autonomie par le⋅a salarié⋅e.
Ainsi, Denis, l’un de nos développeurs, a pu dédier des heures de travail au développement de cet outil à travers une série de commits.
Il nous explique ses motivations : « Je m’intéresse à ce projet car il est à la base de la plupart des outils du langage Python pour l’interaction avec PostgreSQL. En m’y impliquant, je peux aider à son développement, comprendre comment il fonctionne, interagir avec sa communauté et enfin satisfaire ma curiosité. »
Des questions, des commentaires ? Écrivez-nous !