Buenas prácticas al publicar un proyecto open-source
Si liberas un proyecto open-source, es bueno tener en cuenta una serie de buenas prácticas para facilitar el desarrollo cuando múltiples personas colaboran. Aquí detallaré algunas medidas que tengo presente a la hora de lanzar un proyecto open-source, usando como plataforma Github y dejando de lado consejos sobre ingeniería de software.
Tiempo de respuesta
Si estás al frente del proyecto, debes responder rápidamente tickets, delegar responsabilidades o por lo menos confirmar que la solicitud fue recibida. Si eres parte de los desarrolladores, ayudar en esta responsabilidad compartida. Un proyecto que tarda en responder frente a bugs/reportes/peticiones, genera desinterés en los usuarios.
Tabs o espacios
De mi preferencia es usar espacios, ya que cada desarrollador tendrá la misma alineación estandar y si se quieren respetar anchos máximos, no habrá confusión entre alguien que puede ocupar un tab igual a 4 u 8 espacios.
Mención aparte es cuando pegas código externo, que también lo debes adaptar a este convenio. Mira este archivo en Translatify, contiene alineación por espacios y tabs. En mi editor, se veía perfectamente alineado, pero Github entiende con un ancho diferente los tabs. Esto dificulta cuando lees código o decides colaborar en un proyecto open-source, por lo que activa en tu editor que muestre los espacios (es una opción en Eclipse por lo menos) para visualizar los tabs y cambiarlos por espacio. Esta es la nueva versión del archivo con los tabs suprimidos. Si bien esta tarea se puede automatizar con alguna herramienta o editor, es bueno tenerlo como práctica al iniciar el proyecto.
Tags firmados
Con muchas noticias sobre repositorios hackeados o commits con código malicioso, firma los tags que representan las versiones de release con tu llave GPG, para asegurar a los otros que fuiste tú quien envio el código. Obviamente, antes ponla en los servidores de llaves para que cualquiera pueda verificar el tag.
Limpieza del repositorio
En los repositorios va código, no ficheros de configuración de IDE’s ni backups ni binarios. Es importante mantener esta limpieza, al igual que una buena organización de los ficheros, para que colaborar en el proyecto sea un agrado.
Documentación
Procura una buena documentación. Si usas Java, usa las herramientas en Java para documentar (JavaDoc), y así en cada lenguaje (Python -> Sphinx). Sigue las indicaciones que provee cada framework de documentación para aprovecharlo al máximo y generar una documentación clara y completa.
Esta son algunas de las cosas que sigo, ¿cuales añadirías?.
Saludos
September 16, 2011