¿Qué es el desarrollo basado en troncales?

Trunk Based Development es una estrategia de control de versiones en la que los desarrolladores envían sus cambios al tronco compartido de un repositorio de código fuente con una ramificación mínima. Consulte también este artículo de Thoughtworks sobre desarrollo basado en troncales.

Es parte del movimiento de entrega continua al que muchas empresas se están cambiando. Aquí un gran artículo de Atlassian sobre el caso de negocios para la entrega continua. “Es por eso que el desarrollo de software se está moviendo hacia la continuidad. El énfasis reciente en la integración continua, las pruebas integradas, el monitoreo constante y la retroalimentación analítica apuntan hacia una tendencia general en la industria del software: aumentar la capacidad de reacción. A medida que las organizaciones exploran lo que estos los cambios significan para ellos, invariablemente descubren la entrega continua, comúnmente conocida como CD “.

Más recursos de entrega continua:

  • Desarrollo basado en troncales escalados de Google – Rendimiento DZone
  • Discusión de desarrollo basado en troncales
  • Destaca ramas con bambú

Empezando:

  • Ramificación de desarrollo basado en troncales
  • Desarrollo impulsado por banderas de características: basado en troncales

Herramientas de software para implementar el desarrollo basado en troncales

  • GitHub
    • Control de versiones y ramificación
  • BitBucket
    • Control de versiones y ramificación
  • Lanzamiento Oscuro
    • Función de gestión de banderas / pruebas de producción
  • CircleCI
    • Compilación e implementación automatizadas para producción

El desarrollo basado en troncales es tu forma de escapar del infierno de fusión.

A diferencia del enfoque tradicional de ramificación de características, Trunk-Based Development rechaza cualquier ramificación de características, ramificaciones de revisión y ramificaciones de lanzamiento paralelas. Solo hay una rama disponible para los desarrolladores: Trunk.

El desarrollo basado en troncales se basa en cuatro reglas simples :

  1. Hay una rama llamada ‘troncal’ donde los desarrolladores se comprometen directamente,
  2. Un administrador de versiones puede crear ramas de publicación y nadie puede comprometerse con ellas,
  3. Los desarrolladores realizan pequeños cambios tan a menudo como pueden,
  4. Los commits deben ser revisados ​​y probados y no deben destruir la línea principal.

Este enfoque está siendo recogido por los principales actores como Facebook y Google, y por una buena razón.

En una palabra:

  • TBD te salva del infierno de fusión,
  • TBD admite las mejores prácticas de desarrollo, incluida la planificación de funciones, la confirmación de pequeños cambios y la escritura de código compatible con versiones anteriores,
  • TBD crea una oportunidad para implementar nuevas funciones más rápido que el uso de la ramificación de funciones,
  • A largo plazo, los pequeños commits podrían ayudar a dividir su gran aplicación de monolitos en servicios limpios.

Uno de nuestros desarrolladores de STX Next publicó un extenso artículo sobre cómo hacer un desarrollo basado en troncales correctamente y por qué es exactamente superior a la ramificación de funciones. Si lo lees, avísame qué más te gustaría saber. Veré si podemos actualizarlo.

Esta es la mejor descripción que he encontrado:

Trunk Based Development es un estilo de desarrollo de software en el que todos los desarrolladores envían sus cambios a un solo enlace compartido en el control de origen, y cada confirmación produce una compilación lista para producción. Es un requisito previo para la entrega continua, ya que garantiza que todo el código se integre continuamente en una sola secuencia de trabajo, que los desarrolladores siempre trabajen en contra del último código y que se minimice el dolor de fusión / integración. El desarrollo basado en troncales es compatible con una estrategia de ramificación de lanzamiento de ramificaciones de lanzamiento de corta duración que se utilizan para corregir defectos posteriores al desarrollo.

** NO es mi propia respuesta. Aquí es donde lo encontré: Desarrollo basado en troncales