Fabric en Python3 usando fades



El título es un poco engañoso, por lo que paso a ampliar un poco el contexto.

Hace algunos meses que vengo trabajando felizmente con django 1.8 + python3. Y aunque todo fluye mejor de lo que esperaba, hay una dependencia con la que no puedo contar en python3, fabric. No es un dependencia en sí, pero la utilizo para automatizar el proceso de despliegue (deploy), el cuál hacerlo manualmente es muy tedioso (y hasta te diría equivocado).

Dada esta limitación, lo primero que se me ocurrió fue hacer un virtualenv con python2, e instalar en él fabric. Luego, cuando quería utilizarlo para realizar alguna tarea en el proyecto, desactivaba el virtualenv del proyecto, activaba el de fabric y lo útilizaba. Era molesto, pero funcionaba.

Hasta que se me ocurrió probar fades y ahí surgió la magia.

Pero, ¿qué es *fades*? Fades es un sistema que administra virtualenvs buscando automaticamente aquel que cumple con los requerimientos del script o programa, o creandolos, y luego ejecutando la tarea (el script o el programa) dentro de él. Es una app desarrollada principalmente por @gilgamezh y @facubatista dentro de la comunidad de pyar.

https://raw.githubusercontent.com/PyAr/fades/master/resources/logo256.png

Resulta pues, que usando fades no es necesario desactivar el virtualenv con el que estás trabajando, y podes correr fabric con python 2, ¿que tul?

fades -p python2 -d fabric -x fab [task]

donde [task] es la tarea que querés ejecutar. La primera vez, tarda un poquito, ya que fades orquesta todo lo necesario (creación de virtualenv, activación, instalación de requerimientos), pero luego es instántaneo.

Les recomiendo pegarle una mirada a estos otros ejemplos de usos.

Espero les sirva.

Comments


Comments powered by Disqus