Tabla de Contenidos
Criterio para manejo de branches
En el Firmware de la CIAA tenemos un branch llamado master y diferentes branches para desarrollar nuevas funcionalidad, mantener releases, etc. El criterio se describe a continuación:
Branch master
Este es el branch principal, siempre se trata de que en este branch, el código compile y todos los test corran correctamente. Podemos hacer commits a este branch si se cumplen las siguientes condiciones:
- se va a desarrollar una funcionalidad y es seguro que se termina de implementar antes de la siguiente release, y
- es seguro que no afecta a otros desarrolladores
En caso de que alguna de estas condiciones no se cumpla se debe trabajar en un branch.
Branch para desarrollar nuevas funcionalidades
En caso de tener que trabajar en un branch para desarrollar una nueva funcionalidad, debemos nombrar al mismo con el siguiente formato:
feature/<nombreDeNuevaFunc>
Por ejemplo:
feature/i2c feature/oilx feature/xxx
Una vez finalizo el desarrollo, se realiza el pull request en github para efectuar un review antes del merge al master.
Branch para releases
Cada vez que se realiza una release cuyo último dígito es cero, se coloca el tag correspondiente en el branch master, por ejemplo: 0.6.0. En caso de encontrar un error se debe crear un branch para realizar las correcciones necesarias y poder hacer la release correspondiente, por ejemplo 0.6.1. El nombre debe tener el formato:
release/<a.b.x>
Por ejemplo:
release/0.5.x release/0.6.x
Branch para mejoras en código
Estos branch se crean para mejorar el código ya implementado. No deben agregar ni quitar funcionalidades. El nombre debe tener el formato:
improvement/<name>
Por ejemplo:
improvement/nxp_dio
Branch para agregar nuevas herramientas
Son branches de funcionalidades nuevas o similar donde se agregan nuevas herramientas. El nombre debe tener el formato:
tool/<nombreDeTool>
Por ejemplo:
tool/coverity_scan tool/splint