Actualmente estoy en un proyecto que se desarrolla utilizando un marco desarrollado por otro departamento como base. Actualmente estamos introduciendo estándares de calidad (¡por fin, sí!) En nuestro departamento, pero actualmente es imposible presentarlos al otro departamento. Como consecuencia, estamos trabajando contra un objetivo en constante movimiento sin estabilidad de API o versiones estables, lo cual es estresante por lo menos.¿Cómo puedo gestionar las dependencias del módulo Perl?
Ya que estamos tratando de arreglar las cosas en nuestro extremo primero, nos gustaría asegurarnos lo más posible contra los cambios en el código de marco "upstream" a.k.a. Habíamos previsto dependencias de módulos duros:
- Uso de ciertos rangos de versión de módulos de infraestructura, definidos en el código.
- Usando una prueba de unidad de prueba para asegurarse de que todas las versiones necesarias todavía están disponibles.
- Cada extensión del rango de versión requiere la revisión por pares del código de la estructura.
Ese es el plan hasta ahora. Ahora las preguntas:
- ¿Es sensato? Si no, ¿alguna otra idea?
- ¿Cómo se implementa esto en Perl? Utilizando
use Module
solo podemos definir el código de versión más bajo con el que se supone que debe funcionar.
CPAN es inestable en el sentido de que no puede impedir que nadie haga nada. Un módulo en particular puede estar completamente libre de errores, pero incluso un cambio de interfaz puede romper el código que depende de él. El gran culpable es el diseño de la cadena de herramientas CPAN, donde la versión más reciente es la que los clientes intentan instalar. –