Come organizzare i repository per una libreria divisa?

1

Ho due librerie che implementano un protocollo: uno fornisce strumenti per stabilire un canale tra due parti e l'altro fornisce classi e strumenti per costruire e analizzare i messaggi del protocollo binario.

Queste due librerie possono essere utilizzate indipendentemente, non dipendono l'una dall'altra e ognuna ha una propria configurazione di build. Tuttavia, condividono un insieme comune di esempi (utilizzando entrambe le librerie) e la documentazione (tutorial).

Ho in mente due alternative per l'organizzazione di questo nei repository Git:

Alternativa 1

Rendi ciascuna libreria nel proprio repository. Un repository centrale manterrebbe la documentazione comune, esempi e strumenti per la clonazione di entrambi i repository e il loro bootstrap. Gli utenti userebbero questo repository principale e gli sviluppatori lavorerebbero sugli archivi dedicati.

Non voglio usare i sottomoduli Git poiché sono difficili da gestire in questo modo (il controllo delle versioni diventa molto più difficile da fare quando le librerie cambiano costantemente).

Alternativa 2

Metti tutto insieme: entrambe le librerie, la documentazione e gli esempi. Il controllo delle versioni verrebbe applicato a entrambe le librerie, poiché sarebbero trattate come entità singola (sebbene separata).

Ecco come lo stiamo facendo ora. Rende le cose più semplici ma sento che potrebbe essere migliorato.

Quindi ... quali sono le migliori pratiche per organizzare tutto usando Git? Sono aperto anche ad altre alternative.

Anche se non lo stiamo utilizzando in questo momento, è possibile che utilizzeremo strumenti di integrazione continua, test e build automatici, ecc.

    
posta Allan 15.02.2014 - 01:56
fonte

1 risposta

2

I repository del codice sorgente (cioè git o altri vcs) dovrebbero essere organizzati per la comodità di coloro che lavorano su il codice sorgente; risolvere, estendere e rilasciarlo.

I repository binari (ad es. Debian, repository basati su maven, ecc.) dovrebbero essere organizzati per la comodità di coloro che lavorano con le librerie.

A volte, a breve termine, usi il repository del codice sorgente per consegnare cose ai tuoi utenti finali, solo perché qualsiasi altra cosa sarebbe eccessiva. In tal caso, quindi per definizione non vale la pena riorganizzare le cose per loro comodità; quello che stai facendo è troppo semplice o ha pochi utenti finali. Se questo cambia, quindi imposta un repository binario piuttosto che riorganizzare.

Come dici tu vuoi mettere insieme le due cose, questo suggerisce un singolo repository. E non suona così grande da colpire il punto in cui vuoi dividere il repository per motivi di prestazioni.

    
risposta data 15.02.2014 - 14:16
fonte

Leggi altre domande sui tag