Sto cercando "Best Practices" per quanto riguarda ruoli e responsabilità, in particolare chi è responsabile delle fusioni dai rami di sviluppo al trunk (o principale). Fondamentalmente sto cercando munizioni per aiutare la mia causa.
Lasciami descrivere ciò che sto affrontando. Sono lo sviluppatore principale (proprietario) di una particolare applicazione. Di recente la nostra azienda è passata da VSS (di cui ero amministratore del database VSS in cui era archiviata la mia applicazione) a TFS (dove ho solo autorizzazioni per i rami di sviluppo creati dal nostro team "operazioni"). Nei lavori precedenti, ero un amministratore TFS, quindi conosco il modo in cui mi muovo tra TFS e MSBuild.
Non ho alcun problema con la strategia di diramazione e fusione in uso (ramo principale, con rami di sviluppo bug / progetto creati in base alle esigenze, uniti al principale quindi promossi in un ramo di rilascio). I problemi che ho sono:
Non riesco a creare i miei rami. Devo creare un'attività TFS per fare in modo che un membro del team "operazioni" crei il ramo per me.
Non riesco a unirmi da Main al mio ramo di sviluppo. Devo creare un'attività TFS per fare in modo che un membro del team "operazioni" esegua l'unione e quindi spero che non "calpesti" nessuna delle modifiche del mio team poiché il "ragazzo delle operazioni" può o meno essere uno sviluppatore e sicuramente ha poca o nessuna conoscenza del codice che sta unendo.
Non posso unirmi dallo sviluppo al Main. Ancora una volta devo creare un'attività TFS per fare in modo che "ops guy" esegua l'unione, sperando che lo faccia correttamente. Quindi devo creare un'altra attività TFS per ricollegarmi al mio ramo in modo da poter risolvere tutti i problemi che si sono verificati avendo un'unione non sviluppatore con Main.
Non riesco a creare o modificare gli script di MSBuild. Ancora una volta devo lavorare con il team "ops" che è nuovo in MSBuild in modo da poter eseguire solo le attività di build più basilari. (Dimentica qualsiasi cosa complessa o proibisci al cielo un compito personalizzato).
Non riesco a eseguire uno script MSBuild. Ancora una volta solo il team "ops" può farlo.
Per finire, in genere si tratta di una risorsa "off-shore" che esegue le attività richieste, quindi anche se creo l'attività di (branch / merge / build) al mattino presto, probabilmente non verrà completata fino a quella sera.
Ora non ho alcun problema con il team "operazioni" che mantiene i rami di rilascio. Come tutto ciò che stanno facendo è (sostanzialmente) prendere l'ultima versione da Main e promuoverla nel ramo di rilascio; quindi finché "Main" è stabile e pronto, il ramo di rilascio sarà buono.
La mia opinione è che i lead tecnici (come I) dovrebbero essere responsabili del mantenimento del trunk ("Main") e di qualsiasi fusione da / verso i rami di sviluppo. Il responsabile del team dovrebbe inoltre avere la capacità di generare script di MS Build da compilare e distribuire nell'ambiente di test di integrazione.
Qualcuno può indirizzarmi a un documento di buone pratiche che mi aiuterà a dimostrare il mio caso? Tutta la mia ricerca ha rivelato solo le migliori pratiche relative alle tecniche di ramificazione e fusione, e nessuna menzione dell'OMS dovrebbe eseguire tale diramazione / fusione.
WHO should be performing said branching/merging.
è una decisione organizzativa interna. Non proprio qualcosa con cui potremmo aiutarti ...