2009-10-03 10 views
5

Tengo varios óvulos que mantengo en Pypi, pero hasta ahora siempre me había centrado en Python 2.5x. me gustaría para liberar mis huevos bajo tanto Python 2.5 & Python 2.6 de forma automatizada es decirPython Pypi: ¿cuál es su proceso para lanzar paquetes para diferentes versiones de Python? (Linux)

  1. pruebas se ejecutan
  2. generando doc
  3. huevos preparan
  4. subir a PyPI

¿Cómo logran esto?

Una pregunta relacionada: ¿cómo puedo etiquetar un huevo para que sea "independiente de la versión"? funciona bajo todas las versiones de Python?

Respuesta

1

No necesita liberar huevos para nada más que Windows, y solo si su paquete usa extensiones C para que tengan partes compiladas. De lo contrario, simplemente libera una distribución fuente. Eso será suficiente para todas las versiones de Python en todas las plataformas.

Ejecutar las pruebas para diferentes versiones automatizadas es complicado si no tiene un buildbot. Pero una vez que haya ejecutado las pruebas con la liberación de 2.5 y 2.6 solo es cuestión de ejecutar python setup.py sdist register upload y no importa qué versión de Python utilice para ejecutar eso.

+1

extraño ... la última vez que subí un huevo de la manera que describes, fue etiquetado con la versión de Python utilizada para hacerlo ... y luego, si probara * easy_install * con otra versión de Python, no funcionaría ... ¿Podría darme una explicación, por favor? – jldupont

+0

No, el etiquetado con versiones de Python solo se realiza cuando crea distribuciones binarias. En tu caso, usaste bdist_egg, hasta donde puedo ver. Como no tiene código C, por lo que puedo ver en sus paquetes, debería usar sdist en su lugar. –

+0

@Lennart: ¡GRACIAS! ese debe haber sido mi problema! – jldupont

0

Utilizo un script para cambiar mi versión de Python, ejecutar las pruebas, pasar a la siguiente versión de Python, ejecutar las pruebas nuevamente, y así sucesivamente. Lo uso para probar en 2.3, 2.4, 2.5, 2.6 y 3.1. Además, ejecuto todas mis pruebas en dos escenarios de configuración diferentes (extensión C disponible, o no), por lo que esto ejecuta mi conjunto de pruebas completo 10 veces.

Utilizo un script similar para compilar kits, aunque construyo instaladores de Windows para cada versión, luego un kit de origen.

Para cargar, simplemente lo hago todo de forma manual.

Para documentos, solo hay una versión para compilar, y eso se hace con un objetivo Makefile.

Esto es todo por coverage.py, puede ver el código en bitbucket, aunque debo advertirle que son .cmd scripts de Windows.

+0

@ned: muchas gracias por su contribución. Estoy en Linux y ya no tengo una caja de Windows. – jldupont

+0

El mismo enfoque funcionará en Linux, solo tienes que decidir cómo cambiarás las versiones de Python ... –

Cuestiones relacionadas