Desarrolladores
La solución adoptada para automatizar las tareas en el Bugzilla al generar una nueva versión, es crear un plugin de Maven que se conecte directamente al Bugzilla responsable de llevar a cabo las acciones en el Bugzilla.
Para ver como empezar a crear un plugin de maven podéis ver este tutorial ("Desarrollo de Plugins para Maven") que explica como hacer un plugin de Maven sencillo.
Proceso principal
El proceso principal del plugin se ejecuta en el método "execute()" de la clase "com.autentia.mvn.plugin.release.bugzilla.ReleaseBugzillaMojo", realizando los siguientes pasos:
- Preprocesamiento de parámetros: Para controlar si seguir con la ejecución y preparar los datos necesarios para el resto del proceso. Preguntando al usuario los nombres de las versiones (a generar y de desarrollo)
Parámetros del plugin
Parámeteros que necesita nuestro plugin para interactuar con el Bugzilla y llevar a cabo las acciones:
- productName: Nombre del producto en el Bugzilla del que obtenemos la lista de bugs. Obligatorio.
- bugzillaUser: Usuario para el login en el Bugzilla. Obligatorio.
- bugzillaPassword: Contraseña del usuario para el login en el Bugzilla. Obligatorio.
- loginPage: Página de login en el Bugzilla. (Por defecto "index.cgi").
- loginRequired: Parámetro para indicar si es necesario hacer login en el Bugzilla para recuperar la lista de bugs. (Por defecto "true").
- parentOnly: Al tener los proyectos de Maven herencia, con este parámetros le indicamos que sólo genere la información de cambios en el proyecto padre. (Por defecto "true").
- versionSuffix: El nombre de la versión es común que tenga un sufijo mientras se está desarrollando, por lo que al consultar en el Bugzilla se debe eliminar. (Por defecto "-SNAPSHOT").
- bugsToClose: Identifica el "status" de los bugs que deben ser cerrados al generar la versión. (Por defecto "RESOLVED, CLOSED").
- bugsToMove: Identifica el "status" de los bugs que deben ser movidos al nuevo "milestone". (Por defecto "UNCONFIRMED, NEW, ASSIGNED, REOPENED").
Main
Se ha incluido la posibilidad de utilizar el plugin fuera del contexto de Maven a través de la línea de comandos. Se ha añadido el método "main" que recoge la lista de argumentos y ejecuta el proceso contra el bugzilla.