Tipos de Software de Repositorio de Código
En un proceso de desarrollo de software, una vez que su programa sale de los confines de su sistema o máquina, generalmente hay cuatro componentes clave que necesitará para un desarrollo más exitoso de su creación: un sitio web bien optimizado, una lista de correo totalmente activa, un buen rastreador de problemas y un repositorio de código seguro.
Aunque la mayor parte de la infraestructura requerida por un proyecto de desarrollo de software puede estar ya disponible en los sistemas internos de la empresa, hay una amplia gama de herramientas y servicios que pueden facilitar a los equipos de desarrollo en sus esfuerzos por mantener y publicar un software bien construido y exitoso.
Hay algunos tipos diferentes de soluciones de repositorio de código disponibles. Hay una que se conoce como servicio alojado -instalaciones de código fuente alojadas por un proveedor de servicios de renombre, lo que se conoce como repositorio institucional- que suelen ser ejecutadas y gestionadas por la organización con sus propios servicios de control de versiones. Si no, también existe el tipo de repositorio de código con una infraestructura diseñada y gestionada por la propia empresa.
Servicios alojados
Los servicios alojados son una solución común para los desarrolladores de software que trabajan con colaboradores y committers en proyectos complejos, especialmente cuando esos colaboradores están repartidos por múltiples instituciones.
Algunos de estos servicios públicos alojados y repositorios de código son en realidad bastante populares en la industria, que incluye GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah y Assembla. Sin embargo, no todas estas soluciones ofrecen exactamente los mismos servicios. GitHub ofrece un entorno sólido para los desarrolladores de software como servicio centrado en los desarrolladores. BitBucket es un servicio alojado por Atlassian, un proveedor de servicios conocido por sus soluciones de colaboración, entre las que se encuentran Confluence y JIRA.
GitLab, por otro lado, es un gestor de repositorios Git basado en la web que viene con funcionalidades de wiki y seguimiento de incidencias. El servicio también ofrece un repositorio local que puede instalarse en la infraestructura de la institución u organización.
SourceForge es una de las plataformas alojadas más antiguas y consolidadas para proyectos de desarrollo de software y repositorios de código fuente. El proveedor de servicios ofrece la mayoría de las características y capacidades que uno esperaría de un repositorio.
Launchpad está alojado por Canonical y atiende a varios usuarios conocidos como Ubuntu y MySQL. El servicio viene con el seguimiento de las características y especificaciones, así como la gestión de la liberación de Soyuz.
Assembla es un proveedor de servicios alojados popular entre los equipos y organizaciones más pequeñas. Ofrece amplias facilidades de gestión de proyectos, así como servicios de desarrollo de software. Savannah atiende a la mayoría del software de GNU y a algunas soluciones que no son de GNU. La plataforma se centra en el alojamiento de proyectos de desarrollo de software libre.
Repositorios de código institucionales
A pesar de la disponibilidad de una multitud de servicios alojados y repositorios de código basados en la web, todavía hay un número de empresas y organizaciones que ejecutan sus propios servicios de control de versiones, gestores de listas de correo y servicios.
En la mayoría de los casos, este tipo de repositorio de código o servicio de desarrollo de software es mucho más eficiente si los desarrolladores y confirmadores asignados al proyecto se encuentran en la organización que aloja el servicio. Sin embargo, los repositorios institucionales también son capaces de manejar un puñado de colaboradores externos.
Gestión y ejecución de su propia infraestructura
Así pues, está el servicio alojado, el repositorio institucional, y luego está el sistema de control de revisiones autogestionado como SVN, CVS o Git. También hay soluciones disponibles que permiten a las organizaciones ejecutar su propio repositorio de software utilizando paquetes como Trac, GitLab, Savane (que impulsa SourceForge así como Savannah), LibreSource, GForge y Codendi.
Este tipo de solución de repositorio de código requiere un compromiso serio, tiempo y esfuerzo para configurar y mantener el flujo de trabajo y el proceso de desarrollo. Sin embargo, la recompensa es que da a los equipos de desarrollo y a las empresas el mayor control sobre sus proyectos y su repositorio, especialmente cuando se trata de la personalización.