Diseccionamos la charla de Juan Luis Cano "Python Packaging: Lo estás haciendo mal" y mucho DevOps https://podcast.jcea.es/python/26
Este audio tiene mucho ruido producido por el roce del micrófono
de Jesús Cea en la ropa.
Participantes:
Jesús Cea, email: jcea@jcea.es, twitter:
@jcea, https://blog.jcea.es/,
https://www.jcea.es/. Conectando desde Madrid.
Felipem, conectando desde Cantabria.
Víctor Ramírez, twitter: @virako,
programador python y amante de
vim, conectando desde
Huelva.
Javier, conectando desde Madrid.
Audio editado por Pablo Gómez, twitter:
@julebek.
La música de la entrada y la salida es "Lightning Bugs", de Jason
Shaw. Publicada en https://audionautix.com/ con licencia
- Creative Commons Attribution 4.0 International
License.
Hay que automatizarlo todo, y lo que no se puede
automatizar, se documenta.
Detalles de calidad de grabación.
Lo que falta para publicar los audios.
La publicación de audios es inminente.
Diversas plataformas de podcast
https://es.wikipedia.org/wiki/Podcasting.
¿Y publicar en Youtube?
Estadísticas de descarga.
¡Muerte al MP3! https://es.wikipedia.org/wiki/MP3
de Python no es sobre Python.
https://www.youtube.com/watch?v=OeOtIEDFr4Y.
La charla ha gustado bastante en general.
Mucha documentación online está anticuada. Viene bien una
lista de "buenas prácticas" actualizadas.
El peso del "legado" anticuado.
El ecosistema se está moviendo muy rápido.
Buenas prácticas: https://packaging.python.org/. Esperemos
que alguien mantenga eso actualizado.
PEP 621 -- Storing project metadata in pyproject.toml
https://www.python.org/dev/peps/pep-0621/.
Pecado que Jesús Cea comete constantemente: ¡instalar
paquetes a nivel de sistema operativo!. No le da problemas
porque hace tantas barbaridades que se cancelan unas a
otras. ¡Tú mejor que sigas las recomendaciones de Juan Luis
Cano https://twitter.com/juanluisback!
pipenv es el mal https://pypi.org/project/pipenv/.
pip-tools https://pypi.org/project/pip-tools/.
pipdeptree https://pypi.org/project/pipdeptree/.
bibliotecas que aplicaciones.
remedio?
¡Tests de integración!
https://es.wikipedia.org/wiki/Prueba_de_integraci%C3%B3n
ejecuten todos los estados del código.
https://es.wikipedia.org/wiki/Prueba_de_mutaci%C3%B3n.
hypothesis https://pypi.org/project/hypothesis/.
mutant https://pypi.org/project/mutant/.
PEP 420 -- Implicit Namespace Packages
https://www.python.org/dev/peps/pep-0420/.
PEP 621 -- Storing project metadata in pyproject.toml
https://www.python.org/dev/peps/pep-0621/.
https://www.python.org/dev/peps/pep-0427/.
Conda: https://docs.conda.io/en/latest/.
Problemas para que los Wheel soporten las nuevas versiones
de Python.
Cuando sale una nueva versión de Python, suele ser
necesario esperar para tener soporte Wheels de los
paquetes que nos interesan.
ELF (Executable and Linkable Format):
https://en.wikipedia.org/wiki/Executable_and_Linkable_Format.
instalar una versión moderna de Python?
Si puedes instalar Python desde código fuente, seguro
que puedes compilar mi librería desde código fuente
también.
Ojo con los paquetes binarios avanzados en CPUs
antiguas.
https://es.wikipedia.org/wiki/Docker_(software).
PyPI privados.
API alternativa para módulos Python en C.
https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones.
Permite generar un Wheel
https://www.python.org/dev/peps/pep-0427/ que funciona en
varias versiones de Python.
Buen rendimiento tanto en CPython como en PyPy
https://www.pypy.org/.
Posible API
https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones
futuro para CPython.
https://podcast.jcea.es/python/.
La publicación de los audios es inminente.
Reusaremos el podcast "Python en español"
https://podcast.jcea.es/python/. He pedido permiso a mis
antiguos compañeros.
CSS:
https://es.wikipedia.org/wiki/Hoja_de_estilos_en_cascada.
Hay tanto retraso en la publicación que cualquier
"feedback" tardará en salir y en notarse sus efectos.
https://t.me/joinchat/y__YXXQM6bg1MTQ0.
https://nedbatchelder.com/blog/202103/machete_mode_tagging_frames.html.
Usarlo para depurar un bug.
Pena de muerte en producción.
Ideas locas: James Powell https://twitter.com/dontusethiscode.
Conocimiento íntimo del lenguaje y de su implementación.
Python.
Security funding & NYU
https://discuss.python.org/t/new-packaging-security-funding-nyu/7792.
TUF (The Update Framework) https://theupdateframework.io/.
PEP 458 -- Secure PyPI downloads with signed repository
metadata https://www.python.org/dev/peps/pep-0458/.
PEP 480 -- Surviving a Compromise of PyPI: End-to-end
signing of packages
https://www.python.org/dev/peps/pep-0480/.
En honor a Eduardo, que no se ha conectado hoy, metemos
ruido de teclado para que nuestro editor Pablo no lo eche de
menos.