En nuestro grupo, principalmente hacemos arquitectura de motores de búsqueda y trabajo de integración de contenido y la mayoría de esa base de código está en Python. Todas nuestras herramientas de compilación y las dependencias de los módulos de Python están en control de fuente para que puedan ser desprotegidos y el entorno cargado para su uso independientemente de os/plataforma, un poco similar al enfoque que usa virtualenv.¿Qué versión de Python (2.4, 2.5, 2.6, 3.0) estandariza para los esfuerzos de desarrollo de producción (y por qué)?
Durante años hemos mantenido una base de código compatible con Python 2.3 porque uno de los productos comerciales que utilizamos depende de Python 2.3. Con los años, esto ha causado más y más problemas a medida que las nuevas herramientas y bibliotecas necesitan versiones más nuevas de Python desde que salió el 2.3 en ~ 2004.
Recientemente hemos desacoplado nuestro entorno de compilación de las dependencias en el entorno del producto comercial y podemos utilizar cualquier versión de Python (o Java) que deseemos. Han pasado aproximadamente un mes desde que estandarizamos en Python 2.6 como la versión más nueva de Python que es compatible con versiones anteriores.
Python 3.0 no es una opción (por ahora) ya que tendríamos que migrar gran parte de nuestro código base para hacer que nuestras herramientas de compilación e integración vuelvan a funcionar correctamente.
Nos gustan muchas de las nuevas características de Python 2.6, especialmente los módulos mejorados y cosas como los decoradores de clase, pero muchos módulos de los que dependemos hacen que el intérprete de Python 2.6 genere varias advertencias de depreciación. Otra herramienta que nos interesa para administrar los nodos del clúster en la nube EC2, Supervisor ni siquiera funciona correctamente con Python 2.6.
Ahora me pregunto si deberíamos estandarizar en Python 2.5 por ahora en lugar de usar Python 2.6 en el desarrollo de herramientas de entorno de producción. La mayoría de las herramientas que queremos/necesitamos parecen funcionar correctamente con Python 2.5. Estamos tratando de resolver esto ahora antes de que haya muchas dependencias en las características o módulos de Python 2.6.
¡Muchas gracias!
-Michael
OK, gracias chicos, todas las respuestas hasta ahora han sido muy informativas. :) Todavía no estoy decidido si estandarizar en 2.5 (nuestros administradores de sistemas preferirían eso debido a la disponibilidad del paquete en los administradores de paquetes) pero los comentarios hasta ahora me dan menos dudas para simplemente sobresalir con Python 2.6 y simplemente suprimir advertencias donde corresponda. – Xavian
Solo una actualización, hemos sido estandarizados en Python 2.6 durante aproximadamente un año y ha sido fluido. :) – Xavian