2009-10-03 5 views
5

J'ai plusieurs oeufs que je garde sur Pypi mais jusqu'à maintenant je me suis toujours concentré sur Python 2.5x. Je voudrais libérer mes œufs sous la fois Python 2.5 & Python 2.6 de façon automatisée par exemplePython Pypi: quel est votre processus pour libérer des paquets pour différentes versions de Python? (Linux)

  1. tests en cours
  2. générant doc
  3. préparation œufs
  4. L'ajout de Pypi

Comment les gars y parviennent-ils?

Une question connexe: comment marquer un œuf pour qu'il soit «indépendant de la version»? fonctionne sous toutes les versions de Python?

Répondre

1

Vous n'avez pas besoin de libérer des oeufs pour autre chose que Windows, et seulement si votre paquet utilise des extensions C afin qu'ils aient des parties compilées. Sinon, vous libérez simplement une distribution source. Cela sera suffisant pour toutes les versions de Python sur toutes les plateformes.

L'exécution des tests pour différentes versions automatisées est difficile si vous n'avez pas de buildbot. Mais une fois que vous avez exécuté les tests avec 2.5 et 2.6, relâcher est juste une question de lancer python setup.py sdist register upload et peu importe la version de Python que vous utilisez pour l'exécuter.

+1

étrange ... la dernière fois que j'ai téléchargé un oeuf comme vous le décrivez, il a été marqué avec la version python utilisée pour le faire ... et si j'essayais * easy_install * avec une version différente de Python, ça ne marcherait pas ... Pourriez-vous fournir une explication, s'il vous plait? – jldupont

+0

Non, le balisage avec les versions python n'est effectué que lorsque vous créez des distributions binaires. Dans votre cas, vous avez utilisé bdist_egg, pour autant que je puisse voir. Comme vous n'avez pas de C-code, d'après ce que je peux voir dans vos paquets, vous devriez utiliser sdist à la place. –

+0

@Lennart: MERCI !!! ça a dû être mon problème! – jldupont

0

J'utilise un script pour changer de version de Python, lancer les tests, passer à la prochaine version de Python, relancer les tests, etc. Je l'utilise pour tester sur 2.3, 2.4, 2.5, 2.6 et 3.1. De plus, je lance tous mes tests sous deux scénarios de configuration différents (extension C disponible ou non), ce qui fait fonctionner ma suite de tests complète 10 fois. J'utilise un script similaire pour créer des kits, bien que je construise des installateurs Windows pour chaque version, puis un kit source.

Pour le téléchargement, je fais tout manuellement.

Pour les documents, il n'y a qu'une seule version à construire, et cela est fait avec une cible Makefile.

Tout est pour coverage.py, vous pouvez voir le code au bitbucket, mais je devrais vous avertir, ce sont des scripts Windows .cmd.

+0

@ned: merci beaucoup pour votre contribution. Je suis sur Linux et je n'ai plus de Windows sous la main. – jldupont

+0

La même approche fonctionnera sur Linux, il vous suffit de décider comment vous allez changer les versions python .. –

Questions connexes