2009-09-23 17 views
2

J'utilise de plus en plus zc.buildout et je rencontre des problèmes avec certaines recettes auxquelles j'ai des solutions.Comment apporter des améliorations aux paquets hébergés sur Cheeseshop (pypi)?

Ces paquets tombent généralement en plusieurs catégories:

  1. Package sans lien évident avec un site de projet
  2. Package avec des liens pour libérer service hébergé comme github ou google code

Setup # 2 est meilleur que le n ° 1, mais pas beaucoup mieux parce que dans ces deux situations, je devrais attendre que le développeur applique ces changements avant de pouvoir utiliser la mise à jour du paquetage. Ce que j'ai fait jusqu'ici consiste à forker le paquet, à lui donner un nom différent et à le télécharger sur pypi, mais cela crée de la redondance et je pense que cela ne fait qu'aggraver le problème.

Une solution possible consiste à utiliser un index de package de serveur personnel dans lequel je téléchargerais des versions mises à jour du code jusqu'à ce que le développeur mette à jour son package. C'est faisable, mais cela ajoute du travail supplémentaire, que je préférerais éviter.

Y a-t-il une meilleure façon de procéder?

Merci

Répondre

3

Votre solution « télécharger ma fourchette personnalisée » sonne comme une très mauvaise idée. Vous devriez essayer http://pypi.python.org/pypi/collective.recipe.patch qui vous permet de réparer automatiquement les œufs. Essayez setting up a local PyPi-compatible index. Je pense que vous pouvez également pointer find-links = dans un répertoire (pas seulement un http:// url) contenant vos versions personnelles de ces paquets "presque assez". Vous pouvez également essayer de corriger le paquet défectueux ou tirer parti du modèle de composant Zope pour remplacer les bits nécessaires dans un nouveau paquet. Souvent, les vrais auteurs sont listés quelque part dans le code source d'un paquet, même s'ils ont décidé de ne pas mettre leur nom sur PyPi.

J'ai essayé de réduire le nombre de versions personnalisées des paquets que j'utilise. Habituellement, je travaille avec des paquets personnalisés comme développer des oeufs en liant src/some.project à ma caisse du code de ce projet. Je n'ai pas besoin de construire un nouvel œuf ou de le réinstaller chaque fois que j'édite ces paquets.

Beaucoup de paquets Python utilisés dans les buildouts sont hébergés dans le collectif svn de Plone. Il est relativement facile d'obtenir l'accès commit à ce dépôt.

+0

http://pypi.python.org/pypi/collective.recipe.patch Est une bonne solution, car je peux générer un correctif, puis l'envoyer au développeur et continuer mon développement. –