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?
- 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
- 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
- crea un repositorio Pinto
- métele módulos desde CPAN, los tuyos propios, versiones congeladas, ...
- apunta tu /cpan(m|p)?/ a tu repositorio Pinto cuando instales las dependencias de tus aplicaciones
- repite los pasos 2 y 3 a lo largo del ciclo de vida de tus proyectos
- 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
- 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
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 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
- Bash::Completion::Plugins::pinto
- Dist::Zilla::Plugin::Pinto::Add
- Pinto::Remote
- Pinto::Action::Statistics
- Pinto::Action::Clean
- MyCPAN::App::DPAN
- Stratopan
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
Artículo original (en inglés)