En las comunidades de desarrollo de software libre y de código abierto (FOSS) , una forja es una plataforma de software colaborativo basada en la web para desarrollar y compartir aplicaciones informáticas.
Para los desarrolladores de software, es un servicio en línea que aloja las herramientas que necesitan para trabajar y comunicarse con sus compañeros de trabajo. Proporciona un flujo de trabajo para proponer modificaciones y participar en debates. El objetivo es llegar a un acuerdo que permita que estas modificaciones se fusionen en el repositorio de software.
Para los usuarios, una forja es un repositorio de aplicaciones informáticas , un lugar donde se pueden reportar errores , un canal para estar informado de problemas de seguridad , etc.
El código fuente en sí se almacena en un sistema de control de revisión y se vincula a una amplia gama de servicios, como una revisión de código , una base de datos de errores , una integración continua , etc. Cuando una comunidad de desarrollo realiza un forge, duplica el contenido del forge y luego puede modificarlo sin pedir permiso. Una comunidad puede depender de servicios dispersos en varios forges: no necesariamente están alojados bajo el mismo dominio.
Historia
El término forja se refiere a un prefijo o sufijo común adoptado por varias plataformas creadas siguiendo el ejemplo de SourceForge en 2001. [1] Este uso de la palabra proviene de la forja de metales , utilizada para dar forma a piezas de metal .
En 2023, las dos plataformas de desarrollo colaborativo más utilizadas no se publicitan como forges . El lema de GitHub [2] es "La plataforma completa para desarrolladores para crear, escalar y entregar software seguro" . El lema de GitLab [3] es "la plataforma DevSecOps impulsada por IA más completa" . Aunque comparten todos los aspectos técnicos de lo que constituye un forge, la documentación y el material de marketing no hacen uso del término forges .
Sin embargo, en las comunidades de desarrollo de FOSS y desde el inicio de la primera bifurcación de SourceForge en 2001, el término forge todavía se usa comúnmente para designar plataformas de software colaborativo en línea.
Servicios en línea similares para desarrolladores
Algunos servicios en línea no se pueden considerar como una forja, incluso cuando comparten algunos de sus aspectos esenciales. Por ejemplo, un servicio de revisión de código independiente como Gerrit a veces se integra en una forja que carece de revisión de código integrada, pero no se puede utilizar para distribuir el software a los usuarios finales.
De manera similar, los servicios en línea que se centran en la gestión de proyectos o el seguimiento de problemas, como Trac , Redmine u OpenProject, no ofrecen un flujo de trabajo que los desarrolladores de software puedan utilizar para analizar los cambios que proponen y fusionar el resultado en el repositorio de software. Estos servicios pueden incluir una integración limitada con una variedad de sistemas de control de versiones, para visualizar y citar el código que contienen, pero eso por sí solo es más una característica que un flujo de trabajo que un desarrollador puede utilizar.
Tecnología
El término forja suele hacer referencia a dos tipos diferentes de conceptos :
- un servicio ofrecido en una plataforma web para alojar proyectos de desarrollo de software;
- un conjunto integrado de elementos de software que producen dichas plataformas, listas para su implementación.
Todas estas plataformas proporcionan herramientas similares que resultan útiles para los desarrolladores de software que trabajan en los proyectos alojados:
- sistemas de gestión de código fuente
- listas de correo o foros
- Wikis
- servicios de descarga
- sistema de seguimiento de errores
Algunos también ofrecen otras funciones:
Interoperabilidad
API y webhooks
Además de la interfaz de usuario web , es común que una forja proporcione una API REST con la documentación ( GitHub , [4] GitLab , [5] Gitea , [6] etc.) para permitir la interoperabilidad con otros productos. Los usuarios de Forge también pueden instalar webhooks para notificar a un servicio en línea de terceros cuando ocurre un evento en su proyecto de software (por ejemplo, se puede llamar al webhook cuando se crea un nuevo problema [7] ).
Federación
La federación y el protocolo asociado ActivityPub (introducido en 2018) permiten que las forjas se comuniquen entre sí sobre sus actividades (por ejemplo, cuando se crean problemas [8] o se envía una confirmación [9] ). Aunque a veces se habla de la compatibilidad con la federación nativa [10] o está en proceso [11], todavía no está disponible. Surgieron proyectos de terceros para cerrar la brecha, como un complemento para la forja de pagure [12] o un proxy que admita ActivityPub y lo traduzca a llamadas de API REST a la forja designada. [13]
Autenticación
No existe un SSO en el que las aplicaciones y los usuarios puedan confiar para autenticarse en todas las forjas. En cambio, es común que una forja admita varios proveedores de autenticación: si un usuario ya tiene una cuenta, puede usarla para autenticarse en la forja y no necesita crear una cuenta nueva (por ejemplo, GitLab admite proveedores de OAuth2 como GitHub [14] ). Algunas forjas pueden actuar como proveedores de autenticación (por ejemplo, Gitea es un proveedor de OAuth2 [15] al igual que GitLab [16] ).
Integración
Para mejorar la experiencia del usuario y del administrador del sistema al utilizar múltiples servicios en línea, algunas forjas están integradas con software y servicios de terceros populares, como el chat en línea (por ejemplo, Mattermost tiene un complemento para GitHub [17] y cuenta con soporte nativo de GitLab [18] ).
Ejemplos
Software libre
- Allura
- Forjado [19]
- Forja de fusión
- Casa rural
- GitBucket (compatible con GitHub)
- Calítea
- Paquete de plataforma de lanzamiento [20]
- FuenteHut [21]
- Tuleap
Freemiumsoftware
- GitLab [22]
- Servidor avanzado de GForge
- Cabaña fuente [23]
Servicios gratuitos en línea
- OSDN (Red de desarrollo de código abierto)
- FuenteForge
- Ñu Savannah
Servicios online freemium
Software descontinuado
- Fabricante [27]
- Savane (software)
- GForge Community Edition (último lanzamiento el 23 de abril de 2010), que no debe confundirse con la versión propietaria GForge lanzada por primera vez el 1 de octubre de 2018.
Servicios en línea discontinuados
- BerliOS (Se disolvió en 2014, algunos proyectos se han trasladado a la plataforma de colaboración Joinup ).
- CodePlex (cerrado el 15 de diciembre de 2017)
- Gitorious (obsoleto, reemplazado por GitLab)
- Gna.org [28]
- Código de Google
- Software de tecnología de asistencia de código abierto (OATS)
- Proyecto Kenai (creado por Sun Microsystems pero clausurado por Oracle)
- Tigris.org (cerrado el 1 de julio de 2020) [29]
Véase también
- Entorno de desarrollo colaborativo (CDE)
- Software de gestión de proyectos (PMS)
- Gestión de proyectos de software
- Comparación de las instalaciones de alojamiento de código fuente
- Lista de directorios de proyectos de software libre
- Gestión del ciclo de vida de las aplicaciones (ALM)
Referencias
- ^ Maguire, James (17 de octubre de 2007). «La historia de SourceForge». Archivado desde el original el 16 de julio de 2011. Consultado el 12 de abril de 2012 .
- ^ "Desarrolle mejor el software, juntos". GitHub . Consultado el 22 de noviembre de 2023 .
- ^ "La plataforma DevSecOps". about.gitlab.com . Consultado el 22 de noviembre de 2023 .
- ^ "API REST de GitHub" . Consultado el 31 de agosto de 2021 .
- ^ "API REST de GitLab" . Consultado el 31 de agosto de 2021 .
- ^ "API REST de Gitea" . Consultado el 31 de agosto de 2021 .
- ^ "Webhook de Gitea" . Consultado el 31 de agosto de 2021 .
- ^ "Emisión de forgefed" . Consultado el 31 de agosto de 2021 .
- ^ "commit forgefed" . Consultado el 31 de agosto de 2021 .
- ^ "GitLab federado" . Consultado el 31 de agosto de 2021 .
- ^ "Tema de la federación Gitea". GitHub . Consultado el 31 de agosto de 2021 .
- ^ "Plugin de Forgefed Pagure" . Consultado el 31 de agosto de 2021 .
- ^ "Fedeproxy forja federación" . Consultado el 31 de agosto de 2021 .
- ^ "Inicio de sesión en GitLab con GitHub" . Consultado el 31 de agosto de 2021 .
- ^ "Proveedor Gitea OAuth2" . Consultado el 31 de agosto de 2021 .
- ^ "Proveedor OAuth2 de GitLab" . Consultado el 31 de agosto de 2021 .
- ^ "Complemento Mattermost de GitHub". GitHub . Consultado el 31 de agosto de 2021 .
- ^ "GitLab Mattermost" . Consultado el 31 de agosto de 2021 .
- ^ "Forgejo - Más allá de la codificación. Forjamos". Forgejo . 15 de diciembre de 2022.
- ^ "Suite Launchpad en Launchpad". launchpad.net .
- ^ "sourcehut - la forja del hacker". 31-03-2021.
- ^ "Producto". GitLab .
- ^ "sourcehut - la forja del hacker". sourcehut .
- ^ "Precios de GitLab". GitLab .
- ^ "Precios · Planes para cada desarrollador". GitHub .
- ^ "Precios de Bitbucket". Atlassian .
- ^ "Phacility está cerrando sus operaciones".
- ^ "¿El fin de Gna?". 20 de noviembre de 2016. Archivado desde el original el 5 de mayo de 2017. Consultado el 13 de septiembre de 2017 .
- ^ "Tigris.org: cerrado el 1 de julio de 2020". Archivado desde el original el 30 de junio de 2020. Consultado el 2 de marzo de 2022 .