¿Cuál es la forma correcta de administrar un lanzamiento con SVN?

Mi último empleador había desarrollado un sistema elaborado que se basaba en SVN para tratar el desarrollo continuo: ( gestión de cambios ) mira errores / errores y asócialos con confirmaciones al realizar el compromiso labelndo el número de identificación de error y la label ( gestión de liberación ) elementos en SVN como parte de una versión específica basada en el sistema de seguimiento de errores / problemas. Esta segunda parte tenía un flujo de trabajo asociado para get la aprobación de los usuarios / administración. Luego, cuando llegó el momento de hacer el lanzamiento (generalmente todos los jueves por la tarde), podían ejecutar un command para verificar todo el código labeldo y desplegarlo.

Mi nueva firma es mucho más pequeña y estoy interesado en encontrar un equivalente de bajo costo / bajo mantenimiento, incluso si solo significa tratar directamente con SVN. En particular, regularmente encuentro compromisos de última hora en el juego que rompen nuestra compilation, y se vuelve muy difícil desennetworkingar lo que podemos include. (En lo que se refiere a la gestión de SVN, tiendo a preferir la idea de tags sobre las twigs porque requiere less previsión, pero estoy feliz de que me convenzan de lo contrario).

¿Qué usa la gente para labelr confirmaciones para una versión posterior y para realizar una implementación posterior? ¿Hay alguna buena solución de código abierto para administrar un ciclo de publicación que le permite navegar por SVN desde un browser web y labelr problemas / confirmaciones para un lanzamiento? Lo mejor que he visto hasta ahora es Jira , pero parece una herramienta muy grande (¿es difícil de configurar / mantener?). La Fundación Apache hace un buen uso de Jira para este propósito (ver, por ejemplo, la hoja de ruta de Mahout ).

Ir incluso un paso más allá de esto sería tener este mismo sistema que también incluye continuous integration para que nuestras testings de unidad se puedan ejecutar con cada confirmación y cada error / problema también tendría asociada esta información.

Nota: Hay algunas preguntas ligeramente relacionadas en stackoverflow, pero no veo nada que cubra este aspecto del ciclo de implementación y la gestión de lanzamientos (ver release-management-in-svn , manage-your-project-life-cycle , y el mejor -way-to-handle-change-management ).

Si está buscando loggings de destrucción de construcciones demasiado tarde en el juego para arreglarlos de manera eficiente, definitivamente debe uploadse al tren de CI antes de comenzar a preocuparse por el process de lanzamiento. Hacer que los desarrolladores sean responsables de la integridad de la construcción es un process mucho más fácil cuando hay correos electrónicos que salen cada vez que alguien revisa algo que atormenta al perro. Hazlo un juego; Quien rompe la construcción tiene que cuidarla hasta la próxima vez que se rompa.

Empezar a usar CruiseControl (utilicé CC.NET) no es tan difícil con la subversión (no obtuvimos ningún process de construcción para referirnos a la creación e implementación completamente automatizada con CC.NET y NAnt en aproximadamente un mes, intercalada con otras responsabilidades por supuesto).

También usamos JIRA y es difícil equivocarse allí. Puede hacer que JIRA mire los posts de confirmación de subversión para cosas como "Proyecto PROJECT-11" y cerrará automágicamente el elemento JIRA apropiado. Puedes build tus notas de la versión desde allí.