Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add release documentation #1995

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/_content/ontwikkelaars/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,16 @@ De handleidingen vormen een algemene introductie voor ontwikkelaars die met de Z
5. [Large files upload (Engels)](./handleidingen-en-tutorials/large-files)

### Tutorials
Tutorials zijn introducties gericht op specifieke functionaliteiten binnen de ZGW API's. Deze tutorials Ze zijn ontwikkeld voor gebruik tijdens API lab-bijeenkomsten, maar kunnen ook individueel doorlopen worden.
Tutorials zijn introducties gericht op specifieke functionaliteiten binnen de ZGW API's. Deze tutorials zijn ontwikkeld voor gebruik tijdens API lab-bijeenkomsten, maar kunnen ook individueel doorlopen worden.
1. [Eenmalige setup van de referentie-implementaties](./handleidingen-en-tutorials/eenmalige-setup)
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)

### Onderhoud
Het uitbrengen van nieuwe versies voor de ZGW componenten gaat via het "OneFlow" `git`-branching model.
Meer informatie hierover is te lezen in het [git-branch-model](./onderhoud/git-branch-model) document.

## Testomgevingen

VNG-Realisatie stelt de referentieimplementaties beschikbaar op een aantal
Expand Down Expand Up @@ -50,7 +54,7 @@ Deze omgevingen zijn:
**Volgende release**

Deze omgevingen zijn de nieuwe versies die in ontwikkeling zijn. Ze worden
continue bijgewerkt op basis van de `develop` branch van de
continue bijgewerkt op basis van de `master` branch van de
referentieimplementaties. Deze omgevingen dienen om nieuwe features uit te
testen en bugs op te sporen.

Expand Down
52 changes: 52 additions & 0 deletions docs/_content/ontwikkelaars/onderhoud/git-branch-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: "OneFlow branching model"
date: '22-04-2022'
weight: 20
---

Het ontwikkelen van de ZGW componenten gebeurt aan de hand van het `git`-branching
model "[OneFlow]". Dit document beschrijft hoe je om dient te gaan met dit type
branch model.

## Standaardbranch

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.

Bijvoorbeeld `git checkout -b feature/some-feature master` of `git checkout -b issue/some-bugfix stable/1.2.x`.

## 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 container image. 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: `stable/<major>.<minor>.x`.
Een voorbeeld hiervan zou kunnen zijn: `stable/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 `stable/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 specifieke releases. Wanneer het gaat om zogeheten "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