Skip to content

GitFlow

Julian Klumpers edited this page Sep 2, 2022 · 2 revisions

primair

Met regels.overheid.nl hanteren we min of meer de gitflow die voor het eerst gepubliceerd is door Vincent Driessen bij nvie.

De centrale repo heeft twee primaire branches met een oneindige levensduur:

  • main
  • develop

We beschouwen origin/main als de branch waar de broncode van HEAD altijd een productie status heeft.

secundair

Voor de ontwikkeling van De regels.overheid.nl hanteren we twee typen met een tijdelijke levensduur:

  • feature
  • release

Naming conventions

  • voor een feature branch: <issue nummer>-<issue titel> óf feature-<issue nummer> (zie het voorbeeld hieronder)
  • voor een release branch: release-/<MAJOR.MINOR.PATCH> cf. Semantic Versioning

feature branch

Naar verwachting zal dit na verloop van tijd minder nodig zijn, omdat De regels.overheid.nl meer content is dan functionaliteit(en) en/of anderszins. De werkwijze die we hanteren is de volgende:

  1. Er is een issue of er wordt een issue aangemaakt;
  2. Via de issue pagina wordt een branch gecreëerd (zie docs voor nadere toelichting) Let op: selecteer altijd develop als de branch source!
  3. Werk lokaal aan/in deze feature branch;
  4. Creëer een pull request voor de comparing changes tussen base: develop en compare: <issue nummer>-<issue titel>;
  5. (optioneel) Werk lokaal verder waar nodig aan deze feature branch;
  6. Merge de feature in develop om ze toe te voegen aan de komende release.
  7. Verwijder de feature branch.

voorbeeld issue

image

voorbeeld branch

image

voorbeeld pull request

image

release branche

Deze branch komt van main óf van de bijna-gereed versie van develop en krijgt de naam release-/<MAJOR.MINOR.PATCH>.

Zodra de status van de release klaar is om een echte release te worden:

  1. Creëer een pull request voor de comparing changes tussen base: main en compare: release-/<MAJOR.MINOR.PATCH>;
  2. (optioneel) Werk lokaal verder waar nodig aan deze release branch;
  3. Merge de release branch met de main branch;
  4. Maak een corresponderende release nummer tag en publish de release (zie docs voor nadere toelichting);
  5. Merge de wijzigingen die in de release zijn gemaakt terug in develop.
  6. Verwijder de release branch.
Clone this wiki locally