Roundup es un sistema de seguimiento de errores o incidencias de código abierto que cuenta con una interfaz de línea de comandos, web y de correo electrónico . Está escrito en Python y diseñado para ser altamente personalizable. [ 3 ]
Historia
Roundup fue diseñado por Ka-Ping Yee para el proyecto Software Carpentry y se desarrolló entre 2001 y 2016 bajo la dirección de Richard Jones. Desde entonces, ha sido desarrollado por la comunidad de Roundup. Fue el sistema de seguimiento de incidencias para el lenguaje de programación Python durante 17 años antes de migrar a GitHub . [ 4 ] En una ocasión se lo describió como «como Bugzilla sin los seis años de formación, o RT sin esa tediosa basura de MySQL ». [ 5 ]
Características
La configuración estándar de Roundup incluye las siguientes características:
- una interfaz web para ver, editar y buscar números
- Interfaces REST [ 6 ] y XMLRPC para automatización remota y aplicaciones web
- una puerta de enlace de correo que permite la creación y modificación de incidencias [ 7 ]
- una capa de abstracción de base de datos , que actualmente admite (entre otros) el módulo integrado "anydbm" de Python , PostgreSQL , MySQL y SQLite.
- listas de correo electrónico específicas para cada tema, utilizadas para notificaciones y conversaciones por correo electrónico (cada tema se convierte efectivamente en una mini lista de correo ) [ 8 ]
- un sistema de autorización, [ 9 ] basado en roles (de usuarios), clases y objetos
- una consola interactiva para tareas de copia de seguridad y restauración y para la manipulación de objetos
Roundup admite varios backends web. [ 10 ] Puede ejecutarse de forma independiente , como un proceso demonio en segundo plano , como un script CGI [ 11 ] o como una aplicación WSGI .
Conceptos
Roundup se personaliza cambiando el contenido del directorio de la instancia del rastreador:
Esquema de la base de datos
El esquema de la base de datos se define en un archivo Python ubicado en el directorio raíz de la instancia del rastreador; este esquema se vuelve a leer cada vez que se inicia el servidor. Cuando se detectan cambios (por ejemplo, nuevos atributos), las tablas del sistema de bases de datos relacionales subyacente se modifican en consecuencia.
Plantillas de página
Roundup utiliza el lenguaje de atributos de plantilla (TAL) para crear salida HTML o XHTML . La versión 1.5.0 añade soporte experimental para motores de plantillas alternativos, como Jinja2 . [ 12 ]
Las plantillas reciben el nombre de las clases en la base de datos. Roundup selecciona automáticamente la plantilla según el nombre de la clase solicitada en la URL. Algunas plantillas se utilizan para varias clases, por ejemplo, _generic.index.html, que permite a los usuarios (autorizados) modificar los objetos de todas las clases que carecen de una plantilla de índice propia.
Cuando se solicita un "issue123", este designador se divide en la clase de incidencia y el ID "123". [ 13 ] Por defecto se elige una plantilla "item": Primero, se busca un archivo de plantilla issue.item.html; si no se encuentra, se utiliza _generic.item.html como opción alternativa. Si tampoco se encuentra, se produce un error.
Detectores
Muchas funciones de Roundup, incluyendo algunas de las funciones estándar, se implementan mediante los llamados detectores [ 14 ] , que se encuentran en el subdirectorio "detectors" de la instancia del rastreador. Son subrutinas de Python que tienen acceso al objeto que se va a modificar (si ya está creado) y a los cambios de atributos solicitados.
Los detectores se dividen en auditores y reactores . Los auditores se utilizan principalmente para realizar varios cambios automáticos (en la configuración estándar, el usuario asignado se añade automáticamente a la lista de usuarios que desean recibir notificaciones del problema) y para rechazar cambios no permitidos; los reactores se ejecutan posteriormente y se utilizan, por ejemplo, para la función de notificación por correo electrónico, enviando correos de notificación a todos los usuarios interesados en un problema determinado cuando se añade un comentario.
Los detectores se activan siempre que se produce una de las acciones.
- crear
- conjunto (cambio de atributos)
- retirarse
- restaurar
Se solicita. Se pueden utilizar para crear un flujo de trabajo personalizado y elaborado.
Extensiones
El subdirectorio de instancia "extensions" puede contener archivos adicionales necesarios para funcionalidades extendidas que no se pueden realizar (de forma práctica) con TAL ; incluso son posibles acciones totalmente nuevas.
Los módulos de Python que utilizan tanto los detectores como las extensiones se pueden colocar en el subdirectorio "lib".
Véase también
Referencias
- ↑ "Se ha lanzado Roundup 2.6.0" . 13 de julio de 2026.
- ↑ "Licencia" .
- ↑ La interfaz de usuario principal es la interfaz web. Se distribuye una plantilla denominada
classic"tracker" como plantilla estándar y conjunto de estructura de datos, pero puede utilizarse como punto de partida para la personalización. - ↑ Rastreador de errores de Python
- ↑ NTKnow 05/07/2002 - SEGUIMIENTO
- ↑ Documentación REST
- ↑ Interfaz de usuario de correo electrónico , Guía del usuario de Roundup
- ↑ Diseño de listas de curiosidades
- ↑ control de acceso , descripción del diseño de Roundup
- ↑ "Instalación de Roundup - Documentación de Roundup 2.6.0" .
- ↑ El uso a través de CGI es poco frecuente y no se recomienda por motivos de rendimiento.
- ↑ "Resumen: Un sistema de seguimiento de incidencias fácil de usar e instalar con interfaces de línea de comandos, web y correo electrónico. Altamente personalizable" .
- ↑ identificadores y designadores , descripción del diseño de Roundup
- ↑ Interfaz del detector , descripción del diseño de Roundup
Enlaces externos
- Software de seguimiento de errores e incidencias
- software de mesa de ayuda
- Software gratuito de gestión de proyectos
- Software libre programado en Python
- Software que utiliza la licencia MIT.
- Aplicaciones web
- Software programado en Python