
Compartir:
Diana es desarrolladora de Vonage. Le gusta comer ostras frescas.
Guía para principiantes sobre cómo contribuir al código abierto
Tiempo de lectura: 10 minutos
"Contribuir al código abierto" es una de esas frases que la gente oye todo el tiempo y quiere hacer, pero no siempre sabe cómo. Al principio, es cierto que me desanimaba a contribuir porque me abrumaban todos los recursos que se ponían a mi disposición, sobre todo cuando cada uno tenía un enfoque diferente.
Este blog también será una de las muchas formas en las que puedes iniciarte en el código abierto (lo siento), pero compartiré mi enfoque honesto sobre cómo me involucré en la contribución y las cosas que desearía haber sabido cuando empecé.
¿Qué es un proyecto de código abierto?
El término "código abierto" hace referencia a un proyecto diseñado para ser abiertamente accesible y modificable. A menudo, un proyecto de código abierto se pone a disposición de cualquiera para que lo vea, lo modifique y lo comparta (frente al software de código cerrado (CSS), que no se comparte públicamente y sólo puede modificarlo la persona u organización que lo creó). Sin embargo, aunque se suele animar a la gente a que contribuya y ayude a mejorar el proyecto, sigue siendo necesario que existan algunas normas "internas", que es donde entran en juego las licencias (hablaré de esto más adelante en el blog).
Los factores que definen el código abierto son:
El código fuente del proyecto está a disposición del público. El proyecto tiene una licencia que cumple con la Definición de Código Abierto (OSD).
Por ejemplo, el Vonage Python SDK es de código abierto. Aquí, puedes ver que utiliza la licencia Apache-2.0. Esto es estándar en todos nuestros SDK de Vonage.
Python Repo
¿Qué es un colaborador de código abierto?
Aunque los proyectos tienen criterios que los definen como de código abierto, los de código abierto no los tienen. Hay muchas formas diferentes en las que una persona puede contribuir, por ejemplo:
Código contribuciones: Corrección de errores, implementación de nuevas funciones y refactorización del código.
Documentación: Cree o mejore la documentación (incluidos archivos README, guías de usuario y documentación de API), localice documentos (tradúzcalos a otro idioma hablado o escriba el código en otro lenguaje de codificación) y escriba tutoriales.
Informe: Si observa que un proyecto puede mejorarse, sugiera cambios planteando la cuestión. No es necesario que realices el cambio, aunque sería muy recomendable y muy útil que lo hicieras. Sin embargo, otra persona con las habilidades y el ancho de banda necesarios podría acabar haciéndose cargo de la cuestión para ayudar a mejorar el proyecto para todos los demás.
Pruebas: Pruebas en diferentes plataformas e informe de problemas, escriba pruebas unitarias y configure o mejore los conductos CI/CD.
Apoyo comunitario: Responder a preguntas en foros, hacer revisiones de código y orientar a nuevos colaboradores. Por ejemplo, si alguien en el servidor Discord de Appwrite pidiera ayuda con la implementación de Vonage Video en Appwrite Cloud, yo podría comentar, dirigiéndolos a mi compañero de equipo Chris Tankersley.
Organizar eventos: Organiza o asiste a reuniones o talleres que promuevan proyectos de código abierto.
Cómo encontrar un proyecto de código abierto al que contribuir
Veamos las distintas formas de encontrar proyectos de código abierto.
Solicitar un programa de tutoría de código abierto
Contribuir al código abierto puede ser una actividad puntual que haces en tu tiempo libre, o puede ser como un trabajo a tiempo completo. Si tienes el ancho de banda para unirte a un programa en el que tendrás a alguien que te dará responsabilidades y te guiará a través del proceso, se te asignará un proyecto con plazos, y tendrás tu trabajo calificado, yo recomendaría aplicar para un programa como Google Summer of Codeque requiere 40 horas a la semana durante su programa. Esta habría sido una opción ideal para mí cuando todavía era un estudiante universitario sin prácticas.
Uno de mis muy buenos amigos, Kunal Kushwahatiene un Video de YouTube guiando a la gente a través de este proceso, pero aquí hay una breve visión general:
Ten en cuenta los plazos de esta opción. No se puede participar en el programa Google Summer of Code en cualquier momento del año. Los solicitantes deben ser aceptados para trabajar en el proyecto de su elección.
Ir a Google Summer of Code> Organizaciones> Examinar todas las organizaciones. Utiliza los filtros para buscar una organización, tecnología o tema que te interese. Haz clic en una organización para ver qué proyectos tiene disponibles para colaboradores.
Lea cada proyecto y encuentre las instrucciones específicas sobre cómo solicitar trabajar en ese proyecto concreto. Este sería incluso un buen momento para probar el proyecto.
He aquí algunos aspectos que debe tener en cuenta a la hora de seleccionar un proyecto:
¿Qué quiere conseguir?
¿Por qué eligió este proyecto en concreto?
Si acaba proponiendo un proyecto propio, ¿en qué se diferencia su idea de otra preexistente que podría haber elegido?
¿Qué le hace idóneo para participar en este proyecto?
¿Cuánto tiempo piensa invertir en el proyecto antes/durante/después del programa?
3. Si te aceptan o cuando te acepten, te asignaremos un mentor que te ayudará a convertirte en un gran colaborador.
Encuentre "buenas primeras ediciones
Ahora, digamos que no puedes dedicar que No pasa nada, yo tampoco puedo. En su lugar, puede abordar una buena primera cuestión que sea adecuada para los nuevos colaboradores, ya que normalmente no requieren un conocimiento profundo del código base del proyecto. Deberías elegir uno en función de tus habilidades e intereses.
He aquí algunas formas de encontrar un "buen primer número":
Buscar un repositorio Github que coincida con el tema 'good-first-issue'.. Otras palabras clave/frases que puedes buscar y que pueden darte resultados similares son 'contributions-welcome', 'hacktoberfest', 'beginner', 'beginner-friendly', 'help-wanted', o 'contributions-welcome'.
Por ejemplo, Appwrite tiene temas etiquetados como buena-primera-emisión.
Utiliza un buen buscador de primeras emisiones. Eddie Jaoude construyó uno que puedes usar gratis.
Una vez que hayas encontrado un problema en el que te gustaría trabajar, mira en el hilo de comentarios para ver si se ha asignado a alguien. Si no es así, deja un comentario pidiendo a los mantenedores que te la asignen.
Aquí's un ejemplo de alguien que comenta y pide trabajar en un problema que informé.
Si tienes una pregunta mientras trabajas en el problema, no tengas miedo de aprender en público. Ve al hilo de la incidencia en GitHub y/o en cualquier plataforma pública que la comunidad utilice para chatear (Discord, Slack, etc.) y envíales un mensaje público con el siguiente contexto:
lo que hiciste
lo que quiere conseguir
error(es) obtenido(s)
solicita recursos para desbloquearte
Cómo informar de un problema
Solía pensar que plantear un problema me convertía en el problema. Como dice Taylor Swift: "Soy yo. Hola. Yo soy el problema, soy yo." Pero aquí está la cosa - ¡tú no eres el problema! Puede que incluso seas la solución. Informar de los problemas sigue contando, y es mi favorita manera de contribuir al código abierto.
Si no te ha llamado la atención ningún problema cuando has intentado encontrar un "buen primer problema", ve a un repositorio de GitHub que te interese y utiliza el proyecto. Construye el proyecto en tu propio sistema. Si te encuentras con algún problema (ya sea en el código o en la documentación) notifícalo.
Ejemplo de contribución al código abierto (notificación de un problema)
Veamos mi contribución a Appwriteuna empresa que ofrece un código abierto Backend-as-a-Service (BaaS) de código abierto.
¿Cómo sabemos que es un proyecto de código abierto? Comprobemos su repositorio¡!
Appwrite Check Es un repositorio público.
Tiene licencia.
El archivo archivo LICENSE.md describe lo que puede hacer con este proyecto.
Mientras construía una aplicación que programa SMS usando Vonage y Appwrite Messagingme encontré con un problema que me hizo sentir tan tonto en el momento. Estaba tratando de establecer la fecha y hora (30 de mayo de 2024, a las 15:27:10) en que quería que se enviara un mensaje de texto, pero me daba un mensaje de error. Incluso confirmé que la hora que intentaba fijar era posterior a la hora actual (15:25).
Discord QuestionAsí que fui al servidor Discord de Appwrite y envié un mensaje a uno de sus canales. Sí, ser vulnerable y pedir ayuda delante de otras personas puede ser desalentador, pero aprender en público es una gran parte de la cultura del código abierto.
Poco después, recibí una respuesta de uno de los miembros de su equipo explicándome exactamente qué había fallado. Incluso reconoció que era un buen problema para informar porque si yo me encontraba con este problema, otros también lo harían.
Discord responseEn primer lugar, hice una búsqueda rápida de su repositorio y encontré su archivo CONTRIBUTING.mden el que se indicaba claramente qué tipo de ayuda podían necesitar y cómo se podía participar.
Hice clic en su pestaña de ediciones y pulsé "Nueva edición".
En esta página he seleccionado el tipo de problema. Como quiero sugerir un cambio en la función de programación de SMS, elijo "Mejora".
A continuación, rellené todos los campos necesarios para presentar la propuesta y pulsé "Enviar nueva edición". Como referencia, miré una incidencia comunicada anteriormente.
Puede ver mi número abierto aquí. Eso es todo - ¡He hecho una contribución de código abierto! 🙌🏻
Conceptos erróneos sobre el código abierto
Hay que saber programar. Mucha gente cree que contribuir a proyectos de código abierto requiere conocimientos avanzados de programación. Aunque la programación es útil, hay otras formas valiosas de contribuir, como mejorar la documentación (reescribiendo, reformateando, etc.), el diseño, las pruebas, la traducción, la notificación de errores y el apoyo a la comunidad. Ninguna de ellas requiere conocimientos de programación.
El código abierto es robar. Algunas personas creen que copiar código abierto es robar propiedad intelectual. ¡TODOS! ¿Recuerdas cuando dije que los proyectos de código abierto necesitan licencias? Si el mantenedor del proyecto seleccionó una licencia que hace permite a otros utilizar, modificar y distribuir su software, es completamente legal hacerlo. El código abierto está hecho para ser utilizado. Digamos que un proyecto tiene las funcionalidades que usted necesita para su propia aplicación, ¿por qué reinventar la rueda? Y si encuentras problemas en ese proyecto mientras lo usas, puedes contribuir informando del problema o arreglándolo tú mismo. Siempre que des crédito a quien lo merece, todo está permitido. Ten en cuenta que no todas las licencias lo prohíben.
Por ejemplo, la licencia Apache tiene pocas restricciones y permite incorporar el código a proyectos comerciales sin exigir que todo el proyecto sea de código abierto. Esa es la licencia que utiliza el SDK Python de Vonage (mencionado al principio del blog).
No se puede ganar dinero con el código abierto. Al principio yo también tenía curiosidad por esto, porque no entendía cómo una empresa de código abierto podía ganar dinero cuando proporciona su código gratuitamente. El código sigue siendo libre. Sin embargo, muchas empresas que crean software de código abierto pueden monetizar ofreciendo servicios como soporte de pago, funciones personalizadas o formación a los clientes sobre el uso del propio proyecto.
Por ejemplo el proyecto CAMARA es un proyecto de código abierto de la Fundación Linux que tiene subproyectos relacionados con las telecomunicaciones, como SIM Swap y Verificación de Números. Una gran empresa como Ericsson puede utilizar legalmente la SIM Swap API y API de verificación de Numbers para construir sus productos comercializados.
Cómo hacer que su proyecto sea de código abierto
Elija una licencia de código abierto: Aunque no necesita pasar por ningún proceso de aprobación para confirmar que su proyecto es de código abierto, es obligatorio que elija una licencia aprobada que se ajuste a sus objetivos de una fuente de confianza como Open Source Initiative. Al elegir una licencia, tenga en cuenta los diferentes casos de uso de su proyecto, como la creación de un producto de software que le gustaría vender.
Prepare su proyecto para su publicación: Asegúrate de que tu código está bien documentado y limpio, y crea unas directrices de contribución que describan cómo otros pueden participar y enviar mejoras al proyecto. No olvide incluir en su proyecto la licencia que haya elegido.
Publique su proyecto en una plataforma de alojamiento: Sube tu código a la plataforma que elijas: ¡recuerda incluir el archivo de licencia! Repositorios de código públicos como GitHub o GitLab son opciones populares para alojar proyectos de código abierto.
Y ya está. Tu proyecto se considera de código abierto y está a disposición de los demás.
Comparta con nosotros sus proyectos de código abierto
Siempre nos entusiasma ver lo que los desarrolladores crean utilizando nuestras API y SDK de Vonage de código abierto. Si aún no formas parte de nuestra comunidad de desarrolladores de Vonage, nos encantaría que te unas a nuestro canal de Slack y sigas a nuestro equipo en X, antes conocido como Twitter, para que todos puedan ver todos los proyectos divertidos que te gustaría compartir. Si te ha gustado este blog (o no), no dudes en hacérmelo saber en X y cuéntame cuáles son tus proyectos de código abierto favoritos.