Tipos de Software Repositório de Código
Em um processo de desenvolvimento de software, uma vez que seu programa deixa os limites de seu sistema ou máquina, geralmente há quatro componentes-chave que você precisará para um desenvolvimento mais bem sucedido de sua criação: um website bem otimizado, uma lista de discussão totalmente ativa, um bom rastreador de problemas, e um repositório de código seguro.
A maior parte da infra-estrutura exigida por um projeto de desenvolvimento de software pode já estar disponível nos sistemas internos da empresa, mas existe uma ampla gama de ferramentas e serviços que podem facilitar os esforços das equipes de desenvolvimento para manter e publicar um software bem construído e bem-sucedido.
Existem alguns tipos diferentes de soluções de repositório de código disponíveis. Há uma chamada de instalações de código fonte de serviços hospedadas por um provedor de serviços de renome, conhecida como repositório institucional, que normalmente é executada e gerenciada pela organização com seus próprios serviços de controle de versão. Caso contrário, há também o tipo de repositório de código com uma infra-estrutura projetada e gerenciada pela própria empresa.
Serviços hospedados
Serviços hospedados são uma solução comum para desenvolvedores de software que trabalham com colaboradores e committers em projetos complexos, especialmente quando esses colaboradores estão espalhados por múltiplas instituições.
alguns destes serviços hospedados publicamente e repositórios de código são na verdade bastante populares na indústria, que inclui GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah, e Assembla. No entanto, nem todas essas soluções oferecem exatamente os mesmos serviços. GitHub oferece um ambiente forte para desenvolvedores de software como um serviço focado no desenvolvimento. BitBucket é um serviço hospedado pela Atlassian, um provedor de serviços conhecido por suas soluções colaborativas, que incluem Confluence e JIRA.
GitLab, por outro lado, é um gerenciador de repositório Git baseado na web que vem com wiki e funcionalidades de rastreamento de problemas. O serviço também oferece um repositório local que pode ser instalado dentro da infra-estrutura da instituição ou organização.
SourceForge é uma das mais antigas e estabelecidas plataformas hospedadas para projetos de desenvolvimento de software e repositórios de código fonte. O provedor de serviços oferece a maioria das características e capacidades que se espera de um repositório.
Launchpad é hospedado pela Canonical e atende a vários usuários conhecidos como Ubuntu e MySQL. O serviço vem com rastreamento de recursos e especificações, bem como gerenciamento de lançamento Soyuz.
Assembla é um provedor de serviços hospedado popular entre equipes e organizações menores. Ele oferece facilidades extensivas de gerenciamento de projetos, bem como serviços de desenvolvimento de software. Savannah atende a maioria do software GNU e algumas soluções não-GNU. A plataforma se concentra em hospedar projetos de desenvolvimento de software livre.
Repositórios de código institucional
Apesar da disponibilidade de uma infinidade de serviços hospedados e repositórios de código baseados na web, ainda há um número de empresas e organizações por aí que executam seus próprios serviços de controle de versão, gerentes de listas de discussão e serviços.
Mais frequentemente, este tipo de repositório de código ou serviço de desenvolvimento de software é muito mais eficiente se os desenvolvedores e committers atribuídos ao projeto estiverem baseados na organização que hospeda o serviço. No entanto, repositórios institucionais também são capazes de lidar com um punhado de colaboradores externos.
Gerenciando e Executando sua Própria Infraestrutura
Então, há o serviço hospedado, o repositório institucional, e então há o sistema de controle de revisão auto-gerido como SVN, CVS, ou Git. Há também soluções disponíveis que permitem às organizações executar seu próprio repositório de software usando pacotes como Trac, GitLab, Savane (que alimenta o SourceForge assim como o Savannah), LibreSource, GForge e Codendi.
Este tipo de solução de repositório de código requer sério compromisso, tempo e esforço para configurar e manter o fluxo de trabalho e o processo de desenvolvimento. No entanto, o pagamento é dar às equipes de desenvolvimento e empresas o maior controle sobre seus projetos e repositório, especialmente quando se trata de customização.