GitHub Open Source

GitHub Open Source permite compartir código y colaborar en proyectos de software con personas de todo el mundo. En este artículo aprenderás qué significa que un proyecto sea de código abierto, cómo funcionan las licencias y cómo puedes participar y contribuir a proyectos Open Source.

que es y para que sirve github open source

1. ¿Qué es GitHub Open Source y para qué sirve?

Open Source, o código abierto, hace referencia al software cuyo código fuente está disponible para que otras personas puedan estudiarlo, utilizarlo, modificarlo y, según las condiciones de su licencia, distribuirlo.

En GitHub, los proyectos Open Source permiten que desarrolladores de todo el mundo colaboren en un mismo proyecto, propongan cambios, solucionen errores, creen nuevas funcionalidades y revisen el código.

GitHub proporciona herramientas como repositorios, Issues, Pull Requests, ramas y Forks que facilitan esta colaboración.

1.1. ¿Qué significa que un proyecto sea Open Source?

Que un proyecto sea Open Source significa principalmente que su código fuente puede estar disponible públicamente bajo los términos establecidos por una licencia de código abierto.

Esto permite que otras personas puedan analizar cómo funciona el programa y, dependiendo de la licencia, modificarlo y redistribuirlo.

Importante: que un repositorio sea público en GitHub no significa automáticamente que su código tenga una licencia Open Source que permita cualquier uso. La licencia define qué pueden hacer legalmente otras personas con ese código.

1.2. ¿Cuál es la diferencia entre código público y Open Source?

Estos conceptos pueden confundirse.

Un repositorio puede ser público y permitir que cualquiera pueda consultar su contenido, pero eso no significa necesariamente que tenga una licencia que permita reutilizar, modificar o distribuir el código.

En cambio, un proyecto Open Source utiliza una licencia que establece los permisos y condiciones para utilizar su código.

Por eso, cuando quieras utilizar código de otro proyecto, es importante comprobar qué licencia tiene.

1.3. ¿Cómo funciona Open Source en GitHub?

Un proyecto Open Source normalmente tiene un repositorio donde se encuentra su código fuente y otros archivos relacionados.

Las personas pueden consultar el proyecto, descargarlo, crear una copia mediante un Fork, realizar modificaciones en una rama y posteriormente proponer esos cambios mediante un Pull Request.

De esta manera, el propietario o los mantenedores del proyecto pueden revisar las contribuciones antes de incorporarlas al proyecto principal.

1.4. Ejemplo de colaboración Open Source

Imaginemos que existe un proyecto llamado mi-proyecto.

Un desarrollador puede:

  1. Encontrar el repositorio en GitHub.
  2. Crear un Fork del proyecto.
  3. Clonar su Fork en su computadora.
  4. Crear una nueva rama.
  5. Realizar cambios en el código.
  6. Subir los cambios a GitHub.
  7. Crear un Pull Request.
  8. Esperar la revisión de los mantenedores.
  9. Corregir los cambios solicitados si es necesario.
  10. Si la propuesta es aceptada, puede incorporarse al proyecto original.

2. Licencia Open Source

Una licencia Open Source es un documento legal que establece las condiciones bajo las cuales otras personas pueden utilizar, modificar, copiar y distribuir el código de un proyecto. Su función es definir qué usos están permitidos y qué obligaciones debe cumplir quien utiliza ese código.

2.1. ¿Para qué sirve una licencia Open Source?

La licencia permite que el autor del proyecto indique claramente qué pueden hacer otras personas con su código.

Por ejemplo, una licencia puede permitir:

  • Utilizar el código en otros proyectos.
  • Modificar el código.
  • Copiarlo.
  • Distribuirlo.
  • Utilizarlo en proyectos comerciales.

Sin una licencia que otorgue determinados permisos, que un repositorio sea público no significa automáticamente que puedas hacer cualquier cosa con su código.

2.2. ¿Qué derechos establece una licencia?

Dependiendo de la licencia elegida, pueden establecerse diferentes condiciones relacionadas con:

  • Uso del software.
  • Modificación del código.
  • Distribución de copias.
  • Inclusión del código en otros proyectos.
  • Atribución al autor original.
  • Publicación de modificaciones.
  • Distribución de código fuente.
  • Uso comercial.

Por eso, no todas las licencias Open Source funcionan exactamente de la misma manera.

2.3. ¿Dónde puedo encontrar la licencia de un proyecto de GitHub?

En un repositorio de GitHub, la licencia puede aparecer como un archivo denominado:

LICENSE

También puede mostrarse en la información del repositorio.

Por ejemplo:

mi-proyecto/
├── README.md
├── LICENSE
├── src/
└── package.json

El archivo LICENSE contiene el texto de la licencia que establece las condiciones de uso del proyecto.

2.4. Principales licencias Open Source

Existen diferentes licencias de código abierto. Algunas de las más conocidas son:

2.4.1. MIT

Es una licencia permisiva que permite utilizar, modificar y distribuir el software, incluyendo su uso en proyectos comerciales, siempre que se mantengan determinadas condiciones, como el aviso de copyright y la licencia.

2.4.2. Apache 2.0

También es una licencia permisiva. Además de permitir diferentes formas de uso, modificación y distribución, incluye disposiciones relacionadas con derechos de patentes.

2.4.3. GPL

La GNU General Public License (GPL) permite utilizar, estudiar, modificar y distribuir el software. Cuando se redistribuyen versiones modificadas bajo las condiciones de la GPL, existen obligaciones relacionadas con mantener las libertades establecidas por la licencia.

3. ¿Cómo hacer mi proyecto Open Source?

Si tienes un repositorio y quieres publicarlo como proyecto Open Source, normalmente debes hacer dos cosas:

  1. Hacer público el repositorio, si quieres que cualquier persona pueda acceder al código.
  2. Agregar una licencia Open Source, como MIT, Apache 2.0 o GPL, según las condiciones que quieras establecer.

Por ejemplo, si eliges la licencia MIT, estás indicando que otras personas pueden utilizar, modificar y distribuir tu código bajo las condiciones establecidas por esa licencia.

3.1. ¿Cómo agregar una licencia a mi repositorio?

Desde GitHub puedes hacerlo directamente:

  1. Entra en tu repositorio.
  2. Pulsa Add file.
  3. Selecciona Create new file o, dependiendo de la interfaz, la opción para agregar una licencia al crear el repositorio.
  4. Crea un archivo llamado:
LICENSE
  1. GitHub puede ofrecerte plantillas de licencias.
  2. Selecciona la licencia que quieras utilizar.
  3. Revisa el contenido de la licencia.
  4. Guarda los cambios mediante un commit.

Otra opción muy sencilla es agregar la licencia cuando creas un repositorio nuevo. GitHub permite seleccionar una licencia desde el apartado correspondiente durante la creación del repositorio.

3.2. ¿Qué pasa después de agregar la licencia?

Tu repositorio tendrá una estructura similar a:

mi-proyecto/
├── README.md
├── LICENSE
├── src/
└── ...

El archivo LICENSE deja establecido bajo qué condiciones otras personas pueden utilizar tu código.

Por ejemplo:

README.md
    ↓
Explica qué hace el proyecto

LICENSE
    ↓
Explica qué pueden hacer legalmente
otras personas con el códigoLenguaje del código: CSS (css)

3.3. ¿Público significa Open Source?

No necesariamente.

Puedes tener:

Repositorio público sin licencia

→ Las personas pueden ver el código, pero no estás otorgando mediante una licencia Open Source los permisos que normalmente se asocian con reutilizarlo, modificarlo o redistribuirlo.

Repositorio público + licencia Open Source

→ El código está disponible públicamente y existe una licencia que establece los permisos y condiciones de uso.

Por eso, si quieres presentar tu proyecto como Open Source, es importante elegir y añadir una licencia adecuada.

4. ¿Cómo encontrar proyectos Open Source en GitHub?

Puedes utilizar el buscador de GitHub para encontrar proyectos relacionados con las tecnologías que te interesan.

Por ejemplo, puedes buscar proyectos relacionados con:

  • JavaScript.
  • HTML y CSS.
  • Python.
  • React.
  • Node.js.
  • WordPress.
  • Bases de datos.
  • Inteligencia artificial.

También puedes utilizar filtros y explorar repositorios que tengan actividad reciente, documentación y una comunidad activa.

5. ¿Cómo contribuir a un proyecto?

Una forma habitual de contribuir es mediante un Fork y Pull Request.

Paso 1: Encontrar un proyecto

Busca un proyecto Open Source en GitHub que te interese.

Paso 2: Revisar la documentación

Lee el README.md, la licencia y las instrucciones para contribuir.

Paso 3: Crear un Fork

El Fork crea una copia del repositorio en tu propia cuenta de GitHub.

Paso 4: Clonar el Fork

Puedes descargar el proyecto en tu computadora utilizando Git:

git clone https://github.com/usuario/mi-proyecto.gitLenguaje del código: PHP (php)

Paso 5: Crear una rama

Es recomendable trabajar en una rama independiente:

git switch -c corregir-errorLenguaje del código: JavaScript (javascript)

Paso 6: Realizar los cambios

Modifica el código o los archivos necesarios.

Paso 7: Crear el commit

Guarda los cambios en Git:

git add .
git commit -m "Corrige error en la documentación"Lenguaje del código: JavaScript (javascript)

Paso 8: Subir los cambios

Envía la rama a tu repositorio de GitHub:

git push -u origin corregir-error

Paso 9: Crear un Pull Request

Desde GitHub puedes crear un Pull Request para proponer que tus cambios sean incorporados al proyecto original.

Paso 10: Revisar y corregir

Los mantenedores pueden revisar tu código y solicitar modificaciones.

Si todo está correcto, el Pull Request puede ser aceptado y fusionado con el proyecto.

6. Mantenedores de un proyecto Open Source

Los mantenedores son las personas responsables de administrar y mantener un proyecto.

Dependiendo del proyecto, pueden encargarse de:

  • Revisar Pull Requests.
  • Administrar Issues.
  • Decidir qué cambios se incorporan.
  • Publicar nuevas versiones.
  • Mantener la documentación.
  • Gestionar la seguridad.
  • Organizar el desarrollo del proyecto.

En proyectos grandes puede existir un equipo completo de mantenedores.

7. ¿Cómo saber si una contribución fue aceptada?

Cuando creas un Pull Request, puedes consultar su estado desde GitHub.

La propuesta puede:

  • Ser aceptada y fusionada.
  • Ser cerrada sin fusionarse.
  • Requerir nuevos cambios.
  • Permanecer abierta durante el proceso de revisión.

Si el Pull Request es fusionado, los cambios pasan a formar parte de la rama correspondiente del proyecto.

8. ¿Qué debo hacer antes de realizar mi primera contribución?

Antes de enviar tu primer Pull Request, es recomendable:

  1. Leer el README.md.
  2. Revisar la licencia.
  3. Leer CONTRIBUTING.md, si existe.
  4. Buscar Issues relacionadas con el problema.
  5. Comprender cómo funciona el proyecto.
  6. Seguir las convenciones del repositorio.
  7. Crear una rama para tus cambios.
  8. Realizar cambios pequeños y claros.
  9. Probar los cambios antes de enviarlos.
  10. Explicar correctamente tu Pull Request.

Esto facilita que los mantenedores puedan revisar tu contribución.

8.1. ¿Qué es CONTRIBUTING.md?

Muchos proyectos Open Source incluyen un archivo llamado:

CONTRIBUTING.mdLenguaje del código: CSS (css)

Este archivo contiene las reglas y recomendaciones para las personas que quieren contribuir al proyecto.

Puede explicar, por ejemplo:

  • Cómo preparar el entorno.
  • Cómo crear una rama.
  • Cómo ejecutar las pruebas.
  • Cómo escribir los commits.
  • Cómo enviar un Pull Request.
  • Qué tipo de contribuciones acepta el proyecto.

Antes de realizar cambios, es recomendable leer este archivo si el proyecto lo incluye.

9. ¿Por qué GitHub es importante para Open Source?

GitHub proporciona una infraestructura que facilita que personas de diferentes lugares puedan colaborar sobre los mismos proyectos.

Un repositorio puede concentrar el código, documentación, Issues, Pull Requests, revisiones, ramas y versiones, mientras que Git se encarga del control de versiones.

De esta manera, GitHub permite organizar gran parte del proceso de colaboración alrededor de un proyecto de código abierto.

10. Conclusión

Open Source es una forma de desarrollar software en la que el código se publica bajo una licencia que establece cómo puede utilizarse, modificarse y distribuirse. GitHub proporciona herramientas para que desarrolladores y comunidades puedan colaborar en estos proyectos mediante Forks, ramas, Issues y Pull Requests.

Para alguien que está aprendiendo Git y GitHub, participar en un proyecto Open Source también permite llevar a la práctica conceptos que hemos visto a lo largo del curso y experimentar cómo se trabaja con proyectos reales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *