Situazione:
Il nostro progetto Python è ospitato su GitHub. La versione attuale dovrebbe contenere solo una manciata di file, ma o progetto contiene anche diversi file non-release che sono richiesti per il testing e ironicamente per il packaging, ecc.
Noi seguiamo approssimativamente il modello GitFlow, quindi develop
è il nostro mainline su cui ci basiamo e ci stabilizziamo prima di unire a un master
ramo da dove è stata rilasciata.
Problema :
Quando fai un rilascio , quella versione contiene non solo i veri file di rilascio ma contiene anche tutti i meta e testare cose. Questo succede perché il modo in cui GitHub crea i rilasci è semplicemente di ZIP su un'istantanea di un ramo.
Obiettivo:
Voglio che la versione contenga solo i file rilevanti: 1 script Python, 1 file plugin, 1 file di configurazione, 1 file di licenza, 1 file readme.
Voglio escludere tutti i dati di test, testare script di configurazione, file meta git, file meta GitHub, ecc.
Idee:
- Il nostro ramo
master
potrebbe contenere solo i file pertinenti. Si dovrebbe prestare attenzione per evitare di "contaminarlo" con file indesiderati durante l'unione dadevelop
.
Svantaggio: questo ci impedisce di eseguire test di verifica automatici sul ramomaster
. - Potremmo introdurre un ramo
release
(true per GitFlow) e fare il test di verifica lì, quindi unire solo i file rilevanti a un ramo "pulito"master
.
Svantaggio: avere più rami aggiunge più complessità a questo piccolo progetto. - Sono molto curioso di sentire le tue idee! Cosa ho completamente trascurato?