Typer af Code Repository Software
I en softwareudviklingsproces, når dit program forlader dit system eller din maskine, er der generelt fire nøglekomponenter, som du har brug for for en mere vellykket udvikling af din skabelse: et veloptimeret websted, en fuldt aktiv postliste, en god issue tracker og et sikkert kodeopbevaringssted.
Selv om det meste af den infrastruktur, der er nødvendig for et softwareudviklingsprojekt, måske allerede er tilgængelig på virksomhedens interne systemer, findes der en lang række værktøjer og tjenester, der kan lette udviklingsholdene i deres bestræbelser på at vedligeholde og offentliggøre en velbygget og vellykket software.
Der findes et par forskellige typer af kodeopbevaringsløsninger. Der er en, der omtales som en hosted service – kildekodefaciliteter, der hostes af en velrenommeret tjenesteudbyder, som er kendt som et institutionelt repository – som typisk drives og administreres af organisationen med deres egne versionskontroltjenester. Ellers er der også den type kodeopbevaring med en infrastruktur, der er designet og forvaltes af virksomheden selv.
Hosted Services
Hosted Services er en almindelig løsning for softwareudviklere, der arbejder med samarbejdspartnere og committers på komplekse projekter, især når disse samarbejdspartnere er spredt over flere institutioner.
Nogle af disse offentlige hostede tjenester og kodeopbevaringssteder er faktisk ret populære i branchen, hvilket omfatter GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah og Assembla. Det er dog ikke alle disse løsninger, der tilbyder præcis de samme tjenester. GitHub tilbyder et stærkt miljø for softwareudviklere som en tjeneste med fokus på udviklere. BitBucket er en tjeneste, der hostes af Atlassian, en tjenesteudbyder, der er kendt for sine samarbejdsløsninger, som omfatter Confluence og JIRA.
GitLab er på den anden side en webbaseret Git-repository manager, der leveres med wiki- og problemsporing-funktioner. Tjenesten tilbyder også et lokalt repositorium, der kan installeres i institutionens eller organisationens infrastruktur.
SourceForge er en af de ældste og mest etablerede hostede platforme for softwareudviklingsprojekter og kildekodeopbevaringssteder. Tjenesteudbyderen tilbyder størstedelen af de funktioner og muligheder, man kan forvente af et repository.
Launchpad er hostet af Canonical og henvender sig til flere velkendte brugere som Ubuntu og MySQL. Tjenesten leveres med sporing af funktioner og specifikationer samt Soyuz release management.
Assembla er en populær hosted service provider blandt mindre teams og organisationer. Den tilbyder omfattende projektstyringsfaciliteter samt softwareudviklingstjenester. Savannah henvender sig til størstedelen af GNU-software og nogle få ikke-GNU-løsninger. Platformen fokuserer på hosting af fri softwareudviklingsprojekter.
Institutionelle kodeopbevaringssteder
Trods tilgængeligheden af et væld af hostede tjenester og webbaserede kodeopbevaringssteder er der stadig en række virksomheder og organisationer derude, der driver deres egne versionskontroltjenester, mailinglisteadministratorer og tjenester.
Ofte er denne type kodeopbevaring eller softwareudviklingstjeneste meget mere effektiv, hvis de udviklere og committers, der er tildelt projektet, er baseret i den organisation, der er vært for tjenesten. Institutionelle repositorier er dog også i stand til at håndtere en håndfuld eksterne samarbejdspartnere.
Håndtering og drift af din egen infrastruktur
Så der er den hostede tjeneste, det institutionelle repositorium, og så er der det selvkørende revisionskontrolsystem som SVN, CVS eller Git. Der findes også løsninger, der gør det muligt for organisationer at køre deres eget softwarerepositorium ved hjælp af pakker som Trac, GitLab, Savane (som driver SourceForge såvel som Savannah), LibreSource, GForge og Codendi.
Denne type kodeopbevaringsløsning kræver et seriøst engagement, tid og kræfter til at opsætte og vedligeholde arbejdsgangen og udviklingsprocessen. Udbyttet er dog, at det giver udviklingsteams og virksomheder den største kontrol over deres projekter og repository, især når det gælder tilpasning.