Ontwikkeling op basis van trunk toepassen

Voltooid

Met uw trainingsscripts en taakdefinities in broncodebeheer is de volgende uitdaging het beveiligen ervan. Twee data scientists die tegelijkertijd hetzelfde bestand op de main-branch bewerken, kunnen conflicten veroorzaken en, nog belangrijker, onbedoelde fouten in code waarvan anderen afhankelijk zijn. Met trunk-gebaseerde ontwikkeling biedt uw team een gestructureerde manier om het model te ontwikkelen terwijl productiecode stabiel blijft.

Houd de gedeelde branch stabiel

Bij trunkgebaseerde ontwikkeling integreren bijdragers wijzigingen in één gedeelde branch, meestal main. Teams houden deze branch gezond, zodat die een betrouwbaar startpunt blijft voor nieuw werk.

Voor het Proseware-project vereist het team dat wijzigingen via pull-aanvragen worden aangebracht om main te bereiken. Dit beleid biedt revisoren en geautomatiseerde controles een kans om elke wijziging vóór de integratie te evalueren.

Korte functievertakkingen

Wanneer een data scientist wil experimenteren met een nieuwe functie, bijvoorbeeld het toevoegen van een BMI-variabele aan het diabetesmodel, maken ze een kortdurende vertakking van main. Het werk gebeurt daar, geïsoleerd van de code van alle anderen. Wanneer het experiment klaar is om te worden beoordeeld, opent de data scientist een pull-aanvraag.

Kortdurende branches verkleinen de kans dat ze ver afwijken van main, waardoor mergen eenvoudiger wordt en conflicten kleiner worden.

Pull-aanvragen, beoordelingen en vereiste controles

Een pull-aanvraag doet twee dingen: de revisoren zien precies wat er is gewijzigd en het wordt het triggerpunt voor geautomatiseerde controles. Revisoren kunnen vragen stellen, wijzigingen aanvragen of het werk goedkeuren. Automatisering loopt parallel aan de beoordeling.

Regels voor branchbeveiliging of regelsets kunnen dit proces afdwingen. Afhankelijk van de repository-instellingen kan een regel voor main het volgende doen:

  • Directe pushes beperken
  • Een minimumaantal goedkeuringen vereisen vóór het samenvoegen
  • Vereis dat specifieke statuscontroles slagen voordat er samengevoegd kan worden

GitHub Actions werkstromen kunnen de controles produceren die een regel vereist. U verkent deze controles in de volgende les.

Notitie

Regels voor branchbeveiliging en regelsets zijn GitHub-repository-instellingen, niet GitHub Actions. De werkstroom definieert wat er wordt uitgevoerd. De beveiligingsregel bepaalt of een samenvoeging is toegestaan op basis van het resultaat.

Tip

Overweeg een modelwijziging die enkele weken werk nodig heeft. Hoe zou u het kunnen opsplitsen in kleinere wijzigingen die u in main kunt samenvoegen zonder een langlevende branch aan te houden?