Estoy usando Trac para este tipo de trabajo (ver mi respuesta aquí para más detalles):
- Integración de control de versiones (se prefiere SVN): Definitivamente. Lo estoy usando con SVN, pero también se admiten otros VCS (por ejemplo, git).
- Los tickets admiten campos personalizados, incluida la búsqueda y el filtro: Sí. Y más, como tickets maestros/dependencias, etiquetas,...
- Diferentes tipos de tickets pueden pasar por diferentes flujos de trabajo personalizados: Los flujos de trabajo personalizados son posibles. AFAIK, esto debería ser factible, aunque no he verificado explícitamente la parte "diferentes boletos usan diferentes flujos de trabajo".
- Soporte de múltiples proyectos: lo estoy ejecutando de esta manera. Para cambiar fácilmente entre ellos desde la interfaz web, hay un complemento disponible.
- Acceso de usuarios controlado por roles con permisos asignados por proyecto y/o por flujo de trabajo: Por proyecto en definitiva. Probablemente no por flujo de trabajo, pero también podría haber una solución para eso.
- Diagrama de Gantt: mediante complemento, sí.
- Seguimiento del tiempo agregado por estado en el flujo de trabajo por ticket, o 'actividad' genérica en el ticket: nuevamente a través de un complemento específico, sí.
- Ver, editar permisos por campo, por rol, por estado en el flujo de trabajo: no estoy seguro de lo que quiere decir aquí, pero como todo es altamente personalizable, acordemos un "tal vez" :)
- Capacidad para establecer si un campo es obligatorio por estado en el flujo de trabajo: si no recuerdo mal, había una forma de definir campos obligatorios/opcionales.
- Gestión de liberación/quemado: Sí, a través del complemento Burndown
- Integración de integración continua (preferido por Maven): aquí no estoy seguro, pero creo que también he visto un complemento para eso.
Para los otros requisitos, no estoy 100% seguro. Pero como Trac es de código abierto (está escrito en Python), siempre puedes agregar lo que te falta. Lo hice yo mismo un par de veces (escribí, por ejemplo, el complemento LogViewer e integré Trac con mi entorno local para hacer muchas cosas a través de scripts). Definitivamente vale la pena echarle un vistazo.
Como mencioné los complementos que a menudo: Muchos de ellos están disponibles a través del sitio Tac-Hacks . Básicamente, Trac en sí proporciona un núcleo sólido y luego puede personalizarlo a través de complementos de la forma que lo necesite.