2 puntos por GN⁺ 2024-08-23 | 1 comentarios | Compartir por WhatsApp

Ideas y escritos de Armin Ronacher

Rye y uv para el packaging de Python: agosto es temporada de cosecha

  • Hace unos meses, transfirió la administración de la herramienta de packaging Rye a Astral
  • Durante los últimos meses, el equipo de Astral ha desarrollado muchas herramientas para el packaging de Python
  • En lanzamientos recientes, uv agregó funciones como manipulación de archivos pyproject.toml, soporte para workspaces, referencias a paquetes locales e instalación de scripts
  • uv también puede gestionar instalaciones de Python, por lo que ahora es muy similar a Rye
  • Quienes usan Rye deberían prestar atención a uv y dar retroalimentación

Presentación en EuroPython

  • Recientemente, en EuroPython celebrado en Praga, presentó su visión sobre el packaging de Python y las lecciones aprendidas al crear Rye
  • El objetivo de las herramientas de packaging es convertirse en la mejor herramienta que use todo el mundo
  • Python se ha vuelto una plataforma muy popular gracias a la inversión y el interés en AI y ML
  • Quiere que quienes aprenden Python recuerden una gran experiencia como desarrolladores
  • Actualmente esto es difícil por la existencia de demasiadas herramientas y por sus inconsistencias

El dominio de las herramientas

  • El dominio significa que la mayor parte de la inversión entra en un solo stack
  • Herramientas como Rye deberían desaparecer una vez que se establezca una herramienta dominante
  • Es muy probable que uv se convierta en esa herramienta
  • Al final, Rye será reemplazado por uv

Evolución del ecosistema de packaging

  • Muchas herramientas de packaging se construyeron sobre la evolución del ecosistema de Python
  • Ha habido muchos avances, como la transición de archivos setup.py a eggs y wheels, y la introducción de estándares de metadatos
  • La evolución de los crates de Rust y de las bibliotecas de Python hizo posibles estas herramientas

El siguiente paso de la comunidad

  • La comunidad debería recomendar menos herramientas
  • Hubo una época en la que se recomendaban ez_setup.py y easy_install
  • Actualmente se recomiendan pip, pip-tools, poetry, PDM y otras
  • Quienes mantienen proyectos importantes de Python deberían probar uv y considerar si vale la pena recomendarlo

El financiamiento VC de Astral

  • Hay que pensar qué impacto podría tener en el futuro el hecho de que Astral reciba financiamiento de VC
  • Al ver el código y las funciones de uv, incluso en el peor de los casos la comunidad estará mejor que antes de que uv existiera

Resumen de GN⁺

  • Este artículo trata sobre la evolución de las herramientas de packaging de Python y el papel de la comunidad
  • uv ofrece muchas funciones y tiene altas probabilidades de reemplazar a Rye
  • La comunidad debería recomendar menos herramientas y necesita probar uv
  • Hay que considerar el impacto futuro del financiamiento de VC de Astral
  • Herramientas con funciones similares incluyen pip, poetry y PDM

1 comentarios

 
GN⁺ 2024-08-23
Comentarios de Hacker News
  • La versión más reciente de uv acortó mucho el proceso de lanzamiento de Home Assistant

    • El tiempo de lanzamiento se redujo de unas 2.5 horas a unos 20 minutos
    • Se pueden ver más detalles en el blog de desarrolladores de Home Assistant
  • Al principio esperaba que una herramienta nueva resolviera el problema del "packaging" de Python, pero en realidad se trata de gestión de paquetes

    • Personalmente, nunca he tenido grandes problemas con la gestión de paquetes en Python
    • pip por lo general funciona bien
  • Es incómodo que en Python no se puedan empaquetar fácilmente las aplicaciones como ejecutables

    • En entornos de producción se ve con frecuencia hacer git clone y crear un virtualenv
    • Esto no es bueno desde el punto de vista de la seguridad
  • Hay problemas con el packaging de Python, pero incluso con el pip básico se ha podido trabajar bastante bien

    • El gran cambio en su momento fue pasar de virtualenv al módulo integrado venv
    • Si quieres tomarte en serio la gestión de dependencias, lo mejor es construir un monorepo como FAANG
  • Entre la estafa de VC en npm, la adquisición por parte de Microsoft y el estatus legal de no lucrativa de OpenAI, da desconfianza dejar la infraestructura principal de un lenguaje en manos de este tipo de organizaciones

    • Los contribuidores individuales son excelentes, pero el problema es la alineación financiera a nivel organizacional
    • Un lint rápido, type checking, escaneo de código o un asistente de PR se pueden reemplazar en cualquier momento, pero el flujo de instalación y el repositorio de paquetes no
  • El problema de estas herramientas es la autoridad

    • Como no tienen la aprobación de pypa, son distintas de cargo
    • pypa no ha podido ofrecer una solución integral
    • Hasta hace 3 o 4 años, parecía que poetry y pipenv iban a resolver el problema
    • pypa debería involucrarse con astral.sh, aunque queda la duda de si podrá hacerlo sin querer controlarlo
  • Armin sostiene que uv debería dominar este espacio, aunque reconoce que el respaldo de VC podría causar problemas

    • Su solución es que uv es muy fácil de hacer fork
    • Pero los forks provocan todavía más fragmentación
  • En la empresa quieren migrar el software a uv por lo lento que es poetry

    • Han leído mucha documentación, pero en la práctica no han hecho mucho
    • La migración anterior hacia poetry fue mucho más sencilla
    • uv todavía arrastra muchos de los problemas de los paquetes de Python
  • También se entiende que la gente se salte esta ronda y espere al "gestor de paquetes de Python: ¡ahora sí lo resolvimos de verdad!" de 2026

    • Los usuarios de Nix siguen contentos
  • Hay personas apasionadas por desarrollar gestores de paquetes

    • Si esta situación continúa, cada año aparecerá un gestor de paquetes nuevo