Types of Code Repository Software
In un processo di sviluppo del software, una volta che il vostro programma lascia i confini del vostro sistema o macchina, ci sono generalmente quattro componenti chiave di cui avrete bisogno per uno sviluppo di maggior successo della vostra creazione: un sito web ben ottimizzato, una mailing list completamente attiva, un buon issue tracker, e un repository di codice sicuro.
Anche se la maggior parte dell’infrastruttura richiesta da un progetto di sviluppo software può essere già disponibile sui sistemi interni dell’azienda, c’è una vasta gamma di strumenti e servizi che possono facilitare i team di sviluppo nei loro sforzi per mantenere e pubblicare un software ben costruito e di successo.
Ci sono alcuni diversi tipi di soluzioni di deposito di codice disponibili. Ce n’è uno definito come un servizio ospitato – strutture di codice sorgente ospitate da un fornitore di servizi rispettabile, che è conosciuto come un repository istituzionale – che sono tipicamente eseguiti e gestiti dall’organizzazione con i loro propri servizi di controllo delle versioni. Altrimenti, c’è anche il tipo di deposito di codice con un’infrastruttura progettata e gestita dall’azienda stessa.
Servizi ospitati
I servizi ospitati sono una soluzione comune per gli sviluppatori di software che lavorano con collaboratori e committers su progetti complessi, specialmente quando questi collaboratori sono sparsi in più istituzioni.
Alcuni di questi servizi pubblici ospitati e repository di codice sono in realtà abbastanza popolari nel settore, che comprende GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah e Assembla. Tuttavia, non tutte queste soluzioni offrono esattamente gli stessi servizi. GitHub offre un forte ambiente per gli sviluppatori di software come servizio focalizzato sugli sviluppatori. BitBucket è un servizio ospitato da Atlassian, un fornitore di servizi noto per le sue soluzioni collaborative, che includono Confluence e JIRA.
GitLab, d’altra parte, è un gestore di repository Git basato sul web che viene fornito con funzionalità wiki e di monitoraggio dei problemi. Il servizio offre anche un repository locale che può essere installato all’interno dell’infrastruttura dell’istituzione o dell’organizzazione.
SourceForge è una delle più antiche e consolidate piattaforme ospitate per progetti di sviluppo software e repository di codice sorgente. Il fornitore di servizi offre la maggior parte delle caratteristiche e capacità che ci si aspetta da un repository.
Launchpad è ospitato da Canonical e si rivolge a diversi utenti ben noti come Ubuntu e MySQL. Il servizio viene fornito con il monitoraggio delle caratteristiche e delle specifiche così come la gestione del rilascio di Soyuz.
Assembla è un fornitore di servizi ospitati popolare tra i piccoli team e le organizzazioni. Offre ampie strutture di gestione del progetto e servizi di sviluppo del software. Savannah si rivolge alla maggior parte del software GNU e ad alcune soluzioni non-GNU. La piattaforma si concentra sull’hosting di progetti di sviluppo di software libero.
Repository di codice istituzionali
Nonostante la disponibilità di una moltitudine di servizi ospitati e repository di codice basati sul web, ci sono ancora un certo numero di aziende e organizzazioni che gestiscono i propri servizi di controllo delle versioni, gestori di mailing list e servizi.
Più spesso che no, questo tipo di repository di codice o servizio di sviluppo software è molto più efficiente se gli sviluppatori e i committers assegnati al progetto sono basati presso l’organizzazione che ospita il servizio. Tuttavia, i repository istituzionali sono anche in grado di gestire una manciata di collaboratori esterni.
Gestire ed eseguire la propria infrastruttura
Così, c’è il servizio ospitato, il repository istituzionale, e poi c’è il sistema di controllo di revisione autogestito come SVN, CVS o Git. Ci sono anche soluzioni disponibili che permettono alle organizzazioni di gestire il proprio repository di software usando pacchetti come Trac, GitLab, Savane (che alimenta SourceForge così come Savannah), LibreSource, GForge e Codendi.
Questo tipo di soluzione di repository di codice richiede un serio impegno, tempo e sforzo per impostare e mantenere il flusso di lavoro e il processo di sviluppo. Tuttavia, la ricompensa è che dà ai team di sviluppo e alle aziende il maggior controllo sui loro progetti e sul repository, specialmente quando si tratta di personalizzazione.
Si tratta di una soluzione che richiede un impegno serio, tempo e sforzo per impostare e mantenere il flusso di lavoro e il processo di sviluppo.