Rédigé par Romain Commandé dans Python le 07/06/2015

tags: Programmation Développement Python Projet

Cannes - Firework 2014 (Italia), Ludovick sur Flickr

Ça y est! Après de longs mois d'attente, j'ai enfin pu sortir une nouvelle release de Papaye ! Pour rappel, c'est une application que je développe depuis quelques temps et qui permet d'avoir un dépôt de paquets Python en local tout en faisant également office de proxy et de cache pour le dépôt PyPI officiel.

Autant dire la vérité, ça n'a pas été de la tarte (à la papaye ...). Je suis parti sur une brique logicielle assez exotique (la ZODB en chef de file) ce qui fait qu' au moindre problème, je me sentais bien seul, Google DuckDuckGo n'était pas toujours d'une grande aide. J'ai notamment été confronté à des problèmes de conflits de transactions et de migrations de données.

Les nouveautés

Un petit mot sur les nouveautés:

  • Une interface web afin de naviguer dans les paquets
  • Un nouveau scheduler pour la gestion des tâches en arrière plan
  • Un système de migrations de données basé sur repoze.evolution (un prochain article sur mon retour d'expérience) et inspiré par South / Alembic

L'application arrive également avec son petit lot de pansements :

  • L'arbre de la base de données ne se déteriore plus dans le temps
  • La configuration de webassets ne pose plus de problème en production
  • Le système de proxy/cache possédait de nombreux bugs. Il a été entièrement réécrit
  • Les paquets ayant des espaces dans leur nom sont correctement pris en charge.

L'interface web

La grosse nouveauté c'est donc l'interface qui permet de naviguer dans les paquets. En voici quelques images:

La page d'accueil:

La page d'accueil

La liste des paquets avec un champs de filtrage:

La liste de paquets

Le détail d'un paquet:

La détail d'un paquet

Pour les utilisateurs d'une des versions précédentes de Papaye, il faudra exécuter une commande suplémentaire afin de migrer/nettoyer votre ancienne base de données

papaye_evolve votre_fichier_de_configuration.ini

Papaye vous obligera de toute façon à exécuter cette commande si vous ne le faites pas.

Au passage, je fais tourner une version "demo" ici: http://papaye.rcommande.org/ (demo/demo pour s'identifier)

La suite

Il reste encore un bout de chemin mais je considère cette version comme la première réellement utilisable et reposant sur des bases solides. La prochaine étape, c'est l'enrichissement de l'interface web avec une interface d'administration pour gérer la base de données (opérations de maintenances), purger le cache des paquets, manipuler le dépôt (édition, suppression, ...) et gérer les utilisateurs. Je vais aussi essayer de travailler sur la documentation, qui est pour le moment...inexistante. La faute à mon anglais très aproximatif.

Et surtout n'hésitez pas à me faire le maximum de retours concernant cette version. Ça se passe toujours sur le dépôt Github

Merci également a Foxmask et Ldgeo pour leurs remontées et corrections !

Romain Commandé
Proudly powered by Pelican, which takes great advantage of Python.
Sauf mention particulière, le contenu de ce site est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 non transposé.