• Publicidad

Construyendo tu propio CPAN, con Pinto

¿Tienes algo interesante que decir? ¿O quizá algo no tan interesante? Aquí tenemos un espacio para compartir todo lo que queramos decir y que no cabe en ninguno de los otros foros.

Construyendo tu propio CPAN, con Pinto

Notapor explorer » 2013-10-31 09:01 @417

Pinto es una aplicación para crear y gestionar repositorios de módulos de forma similar a como lo hace CPAN.

Problemas cotidianos de desarrollo:
  • ¿cómo distribuir internamente módulos desarrollados por la propia empresa que no están en CPAN (ejemplo: confidenciales, demasiado específicos, etc.)?
  • ¿cómo distribuir internamente un (temporal) módulo parcheado de terceras partes?
  • ¿cómo llevar el seguimiento de qué versiones de las dependencias de tus aplicaciones son seguras (y cómo hacerlas disponibles)?
  • ¿cómo llevar el seguimiento de qué versiones rompen tu aplicación?
  • ¿cómo replicar rápidamente el entorno de producción/prueba/desarrollo?
  • ¿cómo asegurar eficientemente que todo el mundo está usando las mismas versiones de las dependencias?
Con Pinto, puedes:
  • mantener una o más instancias de repositorios privados similares a CPAN
  • distribuir módulos propios usando las herramientas estándar del ecosistema CPAN
  • gestionar dependencias simultáneamente para múltiples aplicaciones/proyectos
  • activar versiones específicas de un módulo para arreglar dependencias rotas
Ventajas de Pinto:
  • soporta múltiples índices
  • ayuda a gestionar incompatibilidades entre las dependencias
  • incluye un control de versiones
  • puede obtener archivos desde múltiples repositorios remotos
  • soporta el desarrollo en equipo
Uso:
  1. crea un repositorio Pinto
  2. métele módulos desde CPAN, los tuyos propios, versiones congeladas, ...
  3. apunta tu /cpan(m|p)?/ a tu repositorio Pinto cuando instales las dependencias de tus aplicaciones
  4. repite los pasos 2 y 3 a lo largo del ciclo de vida de tus proyectos
Operaciones básicas:
  • crear un repositorio:
    pinto -r ~/repo init
  • meter un módulo CPAN
    pinto -r ~/repo pull Dancer
  • añadir tu propio módulo
    pinto -r ~/repo add Mi-Módulo_01.tgz
  • lista de repositorios
    pinto -r ~/repo list
  • controla exactamente qué versión va en el repositorio
    pinto -r ~/repo pin Data::Dump
  • construye tus propias versiones de módulos de CPAN y añádeles a tu repositorio
    pinto -r ~/repo add Data-Dump-1.22_PATCHED.tar.gz
Pilas:
  • Pinto parece bueno, pero, ¿qué hay de...?
    • ¿proyectos con dependencias distintas?
    • ¿proyectos con conflicto en las versiones de las dependencias?
    • ¿dependencias para distintos entornos?
  • cada pila es un repositorio aislado
Listado de pilas:
pinto -r ~/repo stacks

Registro de actividad:
pinto -r ~/repo log

Documentación. Genera una salida parecida a la de las páginas de CPAN
pinto -r ~/repo doc --out=docs

Pintod
  • API web a un repositorio Pinto
  • gestionar e inspeccionar el repositorio
  • usarlo con los clientes CPAN
  • autenticación HTTP basic, u otros esquemas de autenticación
  • compatible PSGI; por defecto corre bajo Plack::Runner usando Starman
Pinto vs. PAUSE
  • Pinto no promete indexar de la misma manera en que lo hace PAUSE
  • Pinto no entiende los permisos de los autores
  • Pinto no implica más seguridad
Materiales útiles
¿Qué es lo que no tiene?
Autenticación y autorización
  • ¿Quién puede crear, modificar o borrar las pilas existentes?
  • ¿Quién puede activar/desactivar módulos en una determinada pila?
  • ¿Quién puede publicar a una pila?
  • gente <-> pilas <-> módulos
Referencias

Artículo original (en inglés)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Volver a Pasando el rato

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron