Aplicación del desarrollo basado en troncos

Completado

Con los scripts de entrenamiento y las definiciones de tareas en el control de versiones, el siguiente reto es protegerlos. Si dos científicos de datos editan el mismo archivo en la rama main al mismo tiempo, pueden producir conflictos y, lo que es más importante, fallos accidentales en el código del que dependen otros. El desarrollo basado en troncos proporciona a su equipo una manera estructurada de evolucionar el modelo al tiempo que mantiene estable el código de producción.

Mantener estable la rama compartida

En el desarrollo basado en troncos, los colaboradores integran los cambios en una rama compartida, normalmente main. Los equipos mantienen esta rama en buen estado para que siga siendo un punto de partida confiable para el nuevo trabajo.

Para el proyecto de Proseware, el equipo exige que los cambios lleguen a main mediante solicitudes de extracción. Esta directiva ofrece a los revisores y comprobaciones automatizadas una oportunidad para evaluar cada cambio antes de la integración.

Ramas de funcionalidad de corta duración

Cuando un científico de datos quiere experimentar con una nueva característica (por ejemplo, agregar una variable DE IMC al modelo de diabetes), crean una rama de corta duración a partir de main. El trabajo se produce allí, aislado del código de todos los demás. Cuando el experimento esté listo para su revisión, el científico de datos abre una pull request.

Las ramas de corta duración reducen la probabilidad de alejarse mucho de main, lo que facilita la fusión y hace que los conflictos sean menores.

Solicitudes de incorporación de cambios, revisiones y comprobaciones necesarias

Una solicitud de incorporación de cambios hace dos cosas: muestra a los revisores exactamente lo que ha cambiado y se convierte en el punto de desencadenador para las comprobaciones automatizadas. Los revisores pueden formular preguntas, solicitar cambios o aprobar el trabajo. La automatización se ejecuta en paralelo con la revisión.

Las reglas de protección de ramas o los conjuntos de reglas pueden hacer cumplir este proceso. En función de la configuración del repositorio, una regla de main puede:

  • Restringir los envíos directos
  • Requerir un número mínimo de aprobaciones antes de combinar
  • Exigir que determinadas comprobaciones de estado se superen antes de poder fusionar

Acciones de GitHub flujos de trabajo pueden generar las comprobaciones que requiere una regla. Explorarás estas comprobaciones en la próxima unidad.

Nota

Las reglas de protección de rama y los conjuntos de reglas son configuraciones del repositorio de GitHub, no de Acciones de GitHub. El flujo de trabajo define lo que se ejecuta. La regla de protección decide si se permite una combinación en función del resultado.

Tip

Considere un cambio de modelo que necesite varias semanas de trabajo. ¿Cómo podrías dividirlo en cambios más pequeños que se integren en main sin dejar una rama de larga duración?