En el mundo del desarrollo de software, especialmente en proyectos de gran envergadura como el kernel de Linux, las prácticas de trabajo ordenadas y transparentes son esenciales para mantener la calidad y la coherencia del código. Esto se hace aún más evidente cuando se trata de gestionar contribuciones de diferentes desarrolladores mediante herramientas de control de versiones como Git.
Linus Torvalds, el creador y mantenedor del kernel de Linux, llamó hace no mucho la atención (o más bien, echó una bronca) sobre la importancia de una de estas prácticas: explicar adecuadamente los "merges" (o fusiones) en los registros de cambios.
¿Qué es eso de un 'merge' y por qué es importante?
Para quienes no estén familiarizados con el término, un "merge" en Git se refiere al proceso de combinar cambios de diferentes ramas de desarrollo en una sola. Este proceso es crucial cuando se trabaja en equipo, ya que permite integrar el trabajo realizado por distintos desarrolladores en un código común.
Sin embargo, no basta simplemente con solicitar/aprobar un "merge". Es fundamental acompañarlo de un mensaje claro que explique por qué se está realizando esa fusión. Este mensaje ayuda a otros desarrolladores a entender el contexto de los cambios y a mantener un historial de desarrollo limpio y comprensible.
La crítica de Linus Torvalds
Hace algo más de un año, durante el proceso de desarrollo del kernel de Linux 6.3, Torvalds expresó su frustración ante la falta de explicaciones en un "merge" específico. El desarrollador en cuestión había enviado una solicitud de fusión con un mensaje que apenas aclaraba más que esto:
"La mayoría de los cambios están en las solicitudes fusionadas para los controladores host I2C y el controlador EEPROM, [puedes encontrar] sus propias explicaciones allí".
Para Torvalds, esta breve descripción no solo era insuficiente, sino que demostraba una falta de cuidado que podría tener consecuencias negativas para el proyecto.
En un mensaje público en la lista de correo de los desarrolladores del kernel de Linux (LKML), Torvalds reiteró un principio que considera fundamental: "Si no puedes explicar un 'merge', entonces NO LO HAGAS".
"¿Cuál es el sentido de decir "todas las explicaciones están en otro lugar"? Ese no es el objetivo de una solicitud. YO NECESITO SABERLO. [...] Me estás pidiendo que la fusione, y maldición, eso significa que deberías explicar POR QUÉ debería fusionarla".
Su enfado quedó bastante patente, y dejó claro que cualquier fusión que no se pueda justificar adecuadamente es, en sus propias palabras, "basura defectuosa por definición".
Torvalds insistió en que no existe ninguna excusa válida para no explicar por qué se realiza una fusión. Según él, las fusiones sin justificación no sólo hacen que el historial de desarrollo sea más difícil de leer, sino que también pueden ocultar problemas o decisiones incorrectas, afectando la calidad del proyecto a largo plazo.
El contexto detrás del conflicto
El "merge" en cuestión estaba relacionado con correcciones del ciclo de desarrollo anterior, el Linux 6.2. Sin embargo, la falta de una explicación clara provocó la respuesta airada de Torvalds. Aunque finalmente se aceptó la fusión, la lección quedó clara:
"He buscado las dichosas explicaciones, pero la próxima vez que necesite buscar explicaciones, simplemente voy a ignorar la solicitud".
¿Qué pueden aprender los desarrolladores de esto?
Para los desarrolladores menos experimentados, puede resultar tentador minimizar la importancia de los mensajes de aportación y/o fusión de código. Sin embargo, el mensaje de Linus Torvalds es una lección valiosa para cualquier persona que trabaje en desarrollo de software colaborativo: Git es una herramienta potente, pero sólo es efectiva en la medida en que se utiliza correctamente.
Imagen | Marcos Merino mediante IA
En Genbeta | "Cada vez es más difícil encontrar mantenedores para el kernel de Linux", advierte su creador
Ver 8 comentarios