Tillämpa trunkbaserad utveckling
Med dina träningsskript och jobbdefinitioner i källkontrollen är nästa utmaning att skydda dem. Två dataforskare som redigerar samma fil på grenen main samtidigt kan skapa konflikter och, ännu viktigare, oavsiktliga kodbrytningar som andra är beroende av. Trunkbaserad utveckling ger ditt team ett strukturerat sätt att utveckla modellen samtidigt som produktionskoden hålls stabil.
Håll den delade grenen stabil
I trunkbaserad utveckling integrerar deltagare ändringar i en delad gren, vanligtvis main. Teamen håller den här grenen felfri så att den fortfarande är en tillförlitlig startpunkt för nytt arbete.
För Proseware-projektet kräver teamet ändringar för att nå main genom pull-begäranden. Den här principen ger granskare och automatiserade kontroller en chans att utvärdera varje ändring före integrering.
Kortlivade funktionsgrenar
När en dataexpert vill experimentera med en ny funktion – till exempel lägga till en BMI-variabel i diabetesmodellen – skapar de en kortlivad gren från main. Arbetet sker där, isolerat från alla andras kod. När experimentet är redo att granskas öppnar dataexperten en pull-begäran.
Kortlivade grenar minskar risken för avvikande långt från main, vilket gör sammanslagningen enklare och konflikterna mindre.
Pull-begäranden, granskningar och nödvändiga kontroller
En pull-begäran gör två saker: den visar granskarna exakt vad som har ändrats och blir utlösarpunkten för automatiserade kontroller. Granskare kan ställa frågor, begära ändringar eller godkänna arbetet. Automation körs parallellt med granskningen.
Grenskyddsregler eller regeluppsättningar kan upprätthålla den här processen. Beroende på lagringsplatsens inställningar kan en regel på main :
- Begränsa direkta pushar
- Kräv ett minsta antal godkännanden innan sammanslagning
- Kräv att specifika statuskontroller godkänns innan sammanslagning tillåts
GitHub Actions arbetsflöden kan skapa de kontroller som en regel kräver. Du utforskar dessa kontroller i nästa lektion.
Kommentar
Regler och regeluppsättningar för grenskydd är GitHub lagringsplatsinställningar, inte GitHub Actions. Arbetsflödet definierar vad som körs. Skyddsregeln avgör om en sammanslagning tillåts baserat på resultatet.
Tips/Råd
Överväg en modelländring som behöver flera veckors arbete. Hur skulle du kunna dela upp det i mindre ändringar som slås ihop till main utan att skapa en långlivad gren?