Commits catárticos 1.0.0
Resumen
La especificación de commits catárticos es una convención para mensajes de commits que dejen expresar un historial realmente explícito basado en el estrés estadísticamente acumulado de los desarrolladores.
Esta convención plantea un formato para describir la frustración, enojo y blasfemias que día a día tenemos que ver e implementar en el código.
Para seguir la convención, los mensajes de commits deben estar escritos usando esta estructura:
<type> [Emoji opcional]: <Insultos, blasfemias y contexto opcional del commit>
El body es innecesario, de todos modos nadie lo pone
¿A quién se le ocurre poner un footer en un commit? Ya ve a la siguiente sección, anda.
El elemento Type consiste en valores sugeridos, definidos en esta convención, aunque puede usted ser tan creativo como le parezca. Los valores de type sugeridos son:
- apaño: un commit de tipo 'apaño' contendrá ese 'fix' que pronto volverá a fallar porque solo has añadido un valor hardcoded a tu código para callar al PM
- sin_test: un commit de tipo 'sintest' hace referencia a ese nuevo feature reluciente y sin testear que vivirá en el delicado equilibrio de 'mírame y no me toques'
- esta_si: este tipo de commits indican a otros desarrolladores que has subido un breaking change, así que, o descargan esta versión, o todo les va a fallar
- inutil: refleja un cambio absurdo de esos que tanto te gusta hacer como borrar un espacio o pasar el linter al código para formatearlo, subir 100 cambios y justificar 5 segundos como 3 horas de trabajo.
- Estos son los tipos sugeridos, probablemente no uses otros porque ya ni imaginación debes tener, así que puedes usar estos para la mayor parte de los casos, así como cuando subes un README alegando que es un feature ¬¬
Tras el type del commit catártico, se recomienda agregar un emoji, de preferencia que refleje la cantidad de estrés invertido en los cambios subidos, si implica algo ofensivo, mejor.
Por último, se aconseja añadir una lista de insultos, blasfemias o 'sugerencias' poco diplomáticas como cuerpo del commit. Opcionalmente puedes poner el detalle de los cambios en el código, aunque nadie lo va a leer de todos modos.
Ejemplos
Subiendo ese feature que tanto te pidieron
sin_tests🖕: Aquí está tu vaina, ya deja de presionar con el tiempo, subnormal.
Subiendo un fix
apaño😡: Ya funciona, no lo vuelvan a tocar o me suscribo a revistas xxx con sus correos corporativos.
apaño🤬: Ya implementé la ridiculez que sugirió el tech lead, eso si, por performance no vengan a joder.
Subiendo breaking change al proyecto
esta_si🤡: Si tienen un error y vienen a reclamarme, sepan que es porque no se han descargado esta versión, inútiles.
Subiendo un cambio inútil para vengarte por todo lo que tardan en aprobar PRs
inutil😈: A ver si estos 100 cambios los aprueban rápido y sin leer, banda de subnormales.
Especificación
Aquí encontrarás las recomendaciones generales y casos de uso de Cathartical commits en tu día a día:
- Si te vas a hacer el 'diplomático' usa otra convención, esto no es para cobardes
- Usa la convención como y cuando quieras, la idea es que seas creativo con tus ofensas
- ¿Cómo saber si estás cumpliendo con la convención? Si no eres tan ofensivo como crees que puedes ser, algo estás haciendo mal.
- ¿Es recomendable usar commits catárticos en mi trabajo? No es mi problema si careces de sentido común, no te voy a responder eso.