From f768c7a7e291cb848d8cb1fbda5b760abf36b338 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Tue, 26 Apr 2022 17:54:14 +0200 Subject: [PATCH] Add documentation to explain the git branch model being used --- .../git-branch-model.md | 45 +++++++++++++++++++ docs/_content/ontwikkelaars/index.md | 1 + 2 files changed, 46 insertions(+) create mode 100644 docs/_content/ontwikkelaars/handleidingen-en-tutorials/git-branch-model.md diff --git a/docs/_content/ontwikkelaars/handleidingen-en-tutorials/git-branch-model.md b/docs/_content/ontwikkelaars/handleidingen-en-tutorials/git-branch-model.md new file mode 100644 index 000000000..1a22a09c9 --- /dev/null +++ b/docs/_content/ontwikkelaars/handleidingen-en-tutorials/git-branch-model.md @@ -0,0 +1,45 @@ +--- +title: "OneFlow branching model" +date: '22-04-2022' +weight: 20 +--- + +Het ontwikkelen van de ZGW componenten gebeurd aan de hand van het git branching +model "[OneFlow]". In deze tutorial wordt beschreven hoe een je om dient te gaan +met dit type branch model. + +## Standaard branch +Voor het aanmaken van nieuwe features of bugfixes dien je gebruik te maken van de +`master` branch tenzij je een feature of bugfix wilt toevoegen voor een specifieke versie. + +## Testomgevingen +Voor testomgevingen wordt gebruikt gemaakt van de `master` branch. Om een nieuwe versie +te deployen kan je als ontwikkelaar een [git tag] gebruiken of gebruik maken van de sha-256 checksum +van een specifieke commit. Bij het gebruik van een git tag dien je het volgende format te hanteren: +``` +1.3.0-alpha1 +``` + +## Productieomgevingen +Productieomgevingen worden alleen gebruikt in combinatie met daadwerkelijke release versies. +Voor deze versies is altijd een branch aangemaakt met het volgende format: `..x`. +Een voorbeeld hiervan zou kunnen zijn: `1.2.x`. Alleen bugfixes kunnen nog toegevoegd worden +aan deze branches. Een nieuwe minor of major versie betekent een nieuwe release en +daarbij een nieuwe branch (bijvoorbeeld in het geval van een nieuwe minor release `1.3.x`). + +## Bugfixes en features +Ook bugfixes en nieuw features zijn idealiter gericht naar de `master` branch tenzij +het gaat om een bugfix of feature voor een specifieke release. Er kan daarnaast +gekozen worden om de bugfix niet alleen naar `master` toe te richten maar ook te backporten +naar specifiek releases. Wanneer het gaat om zogenaamde "breaking changes" dien je +altijd een nieuwe release te doen en hiermee ook de major versie op te hogen (e.g van `1.1.1` naar `2.0.0`). + +## Aandachtspunten +Om een versie van een ZGW component op te hogen dienen je rekening te houden met +een aantal punten: +1. Het ophogen van het versienummer gaat normaliter via de `API_VERSION` setting in je Django settings +2. Om de API specificaties up-to-date te brengen dien je het `generate_schema` management commando te draaien welke onder andere de openapi specificatie update +3. Indien je een release of release-candidate uitbrengt dien je ook het `CHANGELOG.rst` bestand uit te breiden met de wijzingingen die zijn gedaan + +[OneFlow]: https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow +[git tag]: https://git-scm.com/book/en/v2/Git-Basics-Tagging#_lightweight_tags diff --git a/docs/_content/ontwikkelaars/index.md b/docs/_content/ontwikkelaars/index.md index 92418b16d..362d1de8f 100644 --- a/docs/_content/ontwikkelaars/index.md +++ b/docs/_content/ontwikkelaars/index.md @@ -22,6 +22,7 @@ Tutorials zijn introducties gericht op specifieke functionaliteiten binnen de ZG 2. [Aan de slag met notificeren](./handleidingen-en-tutorials/notificeren) 3. [Aan de slag met archiveren](./handleidingen-en-tutorials/archiveren) 4. [Crashcourse zaakgericht werken voor ontwikkelaars PDF](./handleidingen-en-tutorials/20201208%20-%20Crash%20course%20zaakgericht%20werken%20voor%20CG-ontwikkelteams_v1_0.pdf) +4. [Git branch model binnen ZGW](./handleidingen-en-tutorials/git-branch-model) ## Testomgevingen