Ir al contenido principal

Checklist para liberar un proyecto Open Source en Github

Posted by  genbetadev.com


Github nos permite liberar cualquier proyecto en el que hayamos estado trabajado en privado. En ocasiones, nuestra intención es simplemente compartirlo sin más pretensiones como un pet project o como ejemplo de alguna kata que hemos estado preparado. Pero cuando queremos comenzar un proyecto Open Source un poco más serio, como una librería que queramos compartir con el resto de desarrolladores, quizás debamos pararnos a pensar un poco más antes de publicar nuestro código en Github si cumple una serie de pasos previos.
Vamos a repasar una serie de puntos interesantes para cualquier proyecto Open Source. Un pequeño checklist de recomendaciones, desde la visión tanto de un maintainer de proyectos de software Open Source como de un desarrollador que se encuentra un proyecto en Github y quiere usarlo.

Razones por las que liberar tu código como Open Source

Hay muchas razones por qué un desarrollador u organización querría hacer Open Source un proyecto. Algunos ejemplos para ilustrar la situación sería:
  • Pura colaboración. Quizás estemos desarrollando un proyecto por nuestra cuenta, lo hayamos mencionado en algún grupo de slack o meetup de desarrolladores, y nos lancemos a hacerlo abierto para que el resto de desarrolladores sean contributors ayudándonos a avanzar.
  • De forma individual simplemente buscar hacer público alguno de tus pet project. De esta forma la gente verá cómo programas y encuentres futuras colaboraciones.
  • Transparencia: Existen muchas instituciones que ven el Open Source como la forma de hacer público en lo que están trabajando para que cualquiera pueda revisarlo sin problema.

Deja claro el objetivo, las expectativas y cómo utilizar/colaborar

Hacer público un proyecto open source es sólo el principio
“Release early, release often” es una de las frases más repetidas cuando pensamos en liberar un proyecto software. Hacer público un proyecto open source es sólo el principio. Por ello, lo primero que debemos hacer es dejar claras las expectativas a cualquier desarrollador que se encuentre con él.
Fundamentalmente necesitamos clarificar lo máximo posible los siguientes puntos:
  • El objetivo del proyecto. ¿Qué es? Por ejemplo: una kata, una librería, un framework en construcción, etc..
  • Las instrucciones y dependencias que necesita para ser ejecutado
  • Un changelog accesible sobre los cambios de versiones y las versiones disponibles.

Checklist de tareas antes de liberar un proyecto Open Source

El clásico README

Es el lugar principal y donde cualquier desarrollador irá a buscar información. Debe estar localizado como un fichero de texto markdown en la raíz del proyecto. Github hace especial énfasis de que cada proyecto cuente con su correspondiente README.
Revisa el nombre Quizás el nombre sea lo primero que creaste, al menos, cuando le dedicaste horas de trabajo en privado, pero ahora que va a ser público debes asegurate que antes de lanzarlo no entra en conflicto con ninguno ya existente y ni mucho menos con alguna marca registrada.
Añade una descripción al proyecto Debemos explicar el objetivo, las motivaciones por las que existe este proyecto. También debemos enumerar las características del proyecto, incluyendo sus funcionalidades.
Cómo debo usarlo o integrarlo Si nos encontramos con un nuevo proyecto, lo más razonables es poder ser capaces de instalarlo, hacerlo arrancar o integrar en nuestra aplicación. Así que es fundamental que buena parte del README se trate de explicar las dependencias y las instrucciones para poder usarlo/integrarlo. Y no te olvides de explicar los test de los que cuenta, seguro que alguien que quiera probar su integridad o colaborar le será de ayuda lanzar los tests antes de crear una build desde el código.
Facilita la forma de descargar el artifact o la build Lo más habitual es que hayamos usado algun gestor de dependencias o un sistema de construcción del proyecto, ya sea con node, maven, gradle, makefile, etc… así como que el binario del proyecto se pueda descargar de algún lugar como maven central o con un sencillo npm.
Automatiza todo lo que puedas Es fundamental que a parte de que lo expliques en el README cuentes con un sencillo script que facilite la vida a los desarrolladores que quieran construir por ellos mismos la build. Usa bash, gradle, ant, maven, npm, etc.. para tu proyecto.
No te olvides del marketing Aprovecha para incluir algun logo o imagen que represente tu proyecto, nunca se sabe cuando alguien quiere hablar de él quizás, algún blog. Incluir un imagen representativa de tu librerías nunca es mala idea. Y si no lo tienes claro, piensa en los animales de la portadas de los libros de O’Really.

Añade una licencia

Liberar algo al público se debe hacer con cuidado. Revisa los componentes que utilizas y decide una libería acorde a tus intenciones y que cumpla los requisitos de tu proyecto. Entre las más populares se encuentran la Apache 2, MIT o GPL. Si te lías con los derechos y obligaciones que implican puedes consultar alguna recomendaciones de Github o alguna de estas webs: Choose a License o TLDR Legal.

¿Cómo contribuir?

Esta sección va indicada especialmente para tus futuros colaboradores, así que se claro indicando una serie de issues abiertas para ir empezando, así como un pequeño roadmap con las tareas a futuro del proyecto.
Y es fundamental que dejes a disposición de los contributors un checkstyle del código del proyecto y una serie de reglas para incorporar contribuciones como un codestyle o algun hook preparado. Así como los pasos a realizar una Pull Request, ahora que Github permite los template eso debería ser obligatorio para que no se les escape ningún apartado que explica en la PR. Es recomendable que lo expliques en un fichero CONTRIBUTING.

Changelog

Añade un listado con los cambios de cada versión. Es fundamental para tus usuarios conocer que se va incorporando progresivamente en cada “salto de versión”. Respeta el versionado estándar utilizando adecuadamente la numeración de MAJOR.MINOR.PATCH.
Intenta separar cada cambio del siguiente modo:
  • Nuevos componentes que has introducido, ya sean componentes, APIs nuevas, funcionalidades, etc..
  • Elementos deprecated, es decir, lo que en próximas versiones será eliminado y remplazado por otros elementos. No olvides indicar el que se debería usar o la estrategia de migración.
  • Elementos que han sido eliminados. Recuerda la retrocompatilidad. No borres nada en un cambio de versión que no haya sido anteriormente marcado como deprecated.
  • Y por fin, los bugs que se han ido resolviendo en cada nueva versión. Añade si es posible la issue correspondiente para poder hacer un mejor seguimiento del problema que originaba. Seguro que alguien que se haya dado cabezazos con él se sentirá reconfortado al ver que ya está solucionado.
https://www.genbetadev.com/software-libre-y-licencias/checklist-para-liberar-un-proyecto-open-source-en-github?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+genbetadev+%28Genbetadev%29#265311

Comentarios

Entradas populares de este blog

Error en outlook: El servidor IMAP desea avisarle sobre lo siguiente: Web login required (Failure

Error en outlook: El servidor IMAP desea avisarle sobre lo siguiente: Web login required (Failure) Cuando el outlook (u otro cliente de correo) saca este error en cuentas de gmail o google apps: El servidor IMAP desea avisarle sobre lo siguiente: Web login required (Failure) y pide que se ingrese la contraseña varias veces pero sigue sin funcionar se debe hacer lo siguiente: 1. Verificar que el usuario ya haya ingresado por primera vez por el navegador al correo, para desbloquear el CAPTCHA (las letras difusas) 2. Cambiar el password del usuario desde su propia cuenta. 3. Establecer el tiempo de envío y recepción de correo mayor a 10 minutos desde la configuración del Outlook. 4. Cambiar el password del usuario en el outlook para que quede con el nuevo password. Si al usuario no le sale el CAPTCHA debe ingresar a esta dirección (si es google apps): https://www.google.com/a/dominio/UnlockCaptcha Donde dominio es el dominio de la cuenta. Si es gmail: https://www.google.com/account

7 Consejos para ahorrar al hacer compras online

Posted: 29 Jul 2011 08:00 AM PDT Con el crecimiento ineludible de internet, es un hecho que cada vez más personas prefieren comprar por internet por múltiples razones, ya sea que compres música a través de iTunes o libros electrónicos en Amazon , licencias de software antivirus o hasta consolas o ropa en eBay, lo que es un hecho es que cada vez más personas se animan a comprar online. Tras algunas decenas de experiencias comprando online, hoy decidí hacer un recopilatorio de algunos tips o consejos para ahorrar dinero cuando hagan compras en internet . De alguna manera pretendo complementar el artículo guía de comprar en Mercado Libre y la infografía de hábitos de compras online . Tal vez luego publique otro relacionado a la seguridad en compras online. Sigue a tus marcas en las redes sociales Cada vez más integrados con internet, es común ver a marcas de ropa geniales como Gap o Banana Republic dando ofertas desde los muros de sus páginas de Facebook. Es una
Posted by taringa.net Tips para aprender a programar (rápidamente) desde cero! Posiblemente hayas escuchado algún titulo parecido anteriormente, pero la verdad es que “programar es todo un arte”. Y no porque sea complicado, sino porque lleva su tiempo y dedicación, como todo en la vida.  Así que recordando aquellos días en que era un novato (en realidad lo sigo siendo pues en este actividad siempre se aprende), he decido dejarte 3 tips con el fin de ayudar un poco a que desarrolles rápidamente lo necesario y seas el próximo Miguel Ángel de este “arte”. Por favor espera a que el post cargue por completo. 1.- Juega!   No, no es broma… juega! Pero no cualquier juego, sino aquellos que te hagan pensar como todo un programador.  Para empezar en “el arte de la programación” todo es cuestión de lógica, ya que una computadora por si sola no sabrá como manejar los datos que le introduzcamos. Así que para darte una idea de esto, te reto a que venzas los siguientes  mini  jueg