Molti piccoli script, un repository o multipli?


15

Un collega e io abbiamo riscontrato un problema su cui abbiamo opinioni multiple.

Attualmente abbiamo un repository git in cui stiamo mantenendo tutti i nostri cronjob. Ci sono circa 20 croni e non sono realmente correlati, tranne per il fatto che sono tutti piccoli script in pitone ed essenziali per alcune attività. Stiamo usando un fabric.pyfile da distribuire e un requirements.txtfile per gestire i requisiti per tutti gli script.

Il nostro problema è fondamentalmente: teniamo tutti questi script in un repository git o dovremmo separarli nei loro repository? Conservandoli in un repository è più semplice distribuirli su un server. Possiamo usare solo un file cron per tutti gli script.

Tuttavia, questo sembra sbagliato, poiché i 20 cronjob non sono logicamente correlati. Inoltre, quando si utilizza un requirements.txtfile per tutti gli script, è difficile capire quali siano le dipendenze per un determinato script e tutti devono usare le stesse versioni dei pacchetti.

Potremmo separare tutti gli script nei loro repository ma questo crea 20 repository diversi che devono essere ricordati e trattati. La maggior parte di questi script non sono molto grandi e quella soluzione sembra eccessiva.

Una domanda correlata è: utilizziamo un grande file crontab per tutti i cronjob o un file separato per ciascuno? Se ognuno ha il proprio, come fa l'installazione di un crontab a evitare di sovrascrivere l'altro 19? Anche questo sembra un dolore, dato che ci sarebbero 20 diversi file cron da tenere traccia.

In breve, la nostra domanda e questione principale è: li teniamo tutti strettamente raggruppati come un unico repository o li separiamo nel loro repository con i loro requisiti.txt e fabfile.py? Riteniamo che probabilmente stiamo anche cercando una soluzione davvero semplice. C'è un modo più semplice per affrontare questo problema?


Questi lavori cron di script sono correlati ad altre applicazioni o sono letteralmente solo una discarica di script di utilità?
Greg Burghardt,

Non vedo perché averli nello stesso repository significherebbe che dovrebbero condividere gli stessi requisiti.txt? Ognuno di essi può avere requisiti.txt diversi se li metti in sottodirectory separate del repository ...
Sean Burton,

Risposte:


16

A meno che non esista un motivo specifico per cui tu pensi che ognuno di loro meriti un repository personalizzato (cresceranno molto? Probabilmente no!) Sembra più ragionevole metterli tutti in un repository e salvarti la fatica di clonare tutti di loro da 20 repository.

Mantenere ognuno in un repository separato sembra il percorso di creazione di un problema in cui non esiste un problema.

Non creare lavoro extra per te (e gli altri).


2
D'accordo - fintanto che gli script sono ben denominati e la duplicazione viene mantenuta bassa tra loro (ad esempio materiale della libreria condivisa) in modo che le ricerche grep non siano troppo ingombra, penso che funzioni.
Danny Staple,

1

A meno che non ci sia davvero una buona ragione per la scissione (prestazioni; travolgenti preoccupazioni organizzative / di sicurezza ecc.) Il mio istinto è quello di tenere insieme i documenti di origine nello stesso repository.

La suddivisione dei sistemi in repository separati generalmente crea barriere che inibiscono il riutilizzo; poiché il riutilizzo è solo il modo in cui un'organizzazione deve ammortizzare i costi di sviluppo, tutto ciò che ostacola il riutilizzo è ipso facto una cosa negativa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.