π Pull Requests
π Overzichtβ
Pull Requests (PR's) zijn de kern van onze codeβreviewproces bij Brixion. Ze zorgen voor kwaliteitscontrole, kennisuitwisseling en transparantie in onze ontwikkelingsprocessen. Deze pagina beschrijft hoe je effectieve PR's opstelt die bijdragen aan de kwaliteit van onze codebase.
π·οΈ PR Titelβ
Gitmoji gebruikenβ
We gebruiken gitmoji in onze PR titels om snel visueel te begrijpen wat voor type wijziging het betreft.
Goede voorbeelden:
β¨ Added email validation in user repositoryπ Fixed image orientation in upload serviceπ§ Changed configuration for Nuxt ESLintβ»οΈ Refactored authentication middlewareπ Updated API documentation for user endpointsπ Secured API endpoints with rate limitingπ¦ Updated dependencies in package.jsonπ₯ Removed unused functions in User Entityπ Improved UI styling for dashboard components
Titel formatβ
Alle PR titels volgen het format: [GITMOJI] [ACTION] [WHAT] in/for [SUBJECT]
Acties:
Added- Nieuwe functionaliteitChanged- Wijzigingen aan bestaande codeFixed- Bug fixesRemoved- Verwijderde codeUpdated- Updates aan bestaande featuresRefactored- Code herstructureringImproved- Verbeteringen
Voorbeelden van goede PR titels:
β¨ Added email validation in user repositoryπ§ Changed configuration for Nuxt ESLintπ₯ Removed unused functions in User Entityπ Fixed image orientation in upload service
Voorbeelden van slechte PR titels:
- β
Fix stuff(te vaag, geen gitmoji) - β
π§ WIP(work in progress hoort niet in main branch) - β
π Bug fix(welke bug?) - β
β¨ New feature(welke feature?) - β
π§ Test(wat wordt er getest?) - β
π§Ή Cleanup code(wat wordt er opgeruimd?) - β
π Temporary fix(waarom tijdelijk?) - β
π Quick fix(suggereert haastwerk)
Taalβ
PR titels worden altijd in het Engels geschreven omdat ze na het squashen de commit message worden in de main branch. Dit zorgt voor consistente en professionele commitgeschiedenis.
π PR Beschrijvingβ
Doelβ
De PR beschrijving heeft als doel om:
- Snel terug te kunnen lezen wat er is aangepast
- De aanleiding van de wijziging te begrijpen
- Te begrijpen waarom het is aangepast
- Te zien wat er daadwerkelijk is opgelost
Taal en structuurβ
PR beschrijvingen worden in het Nederlands geschreven en volgen onze standaard template.
Template richtlijnenβ
- Wees kort en duidelijk
- Het Eerste kopje is altijd "π Samenvatting" en de eerste zin begint altijd met de woorden "Deze PR ...". Schrijf in maximaal 3 zinnen wat het doel is van deze PR.
- Begin al je subkopjes met een passende emoji.
- Haal de kopjes weg die niet relevant zijn in deze PR
- Gebruik backticks (`) voor het benoemen van bestandsnamen, codeβverwijzingen, enz.
- Schrijf je PR bij voorkeur zelf zodat het voor jezelf helder is wat je gedaan hebt en of het klopt
- Markeer je PR als
Draftals deze nog niet klaar is voor review en vermijd "WIP" in titels. - Link issues die je oplost met bijvoorbeeld
Closes #123. - Voeg screenshots of screen recordings toe voor UIβwijzigingen.
Voorbeeld templateβ
## π Samenvatting
Deze PR ...
## π Beschrijving
-
-
-
## π§ͺ Testinstructies (optioneel)
1.
2.
3.
## π Openstaande punten (optioneel)
- [ ]
## π¬ Extra informatie
## β
Checklist
- [ ] Code is lokaal getest
- [ ] Tests zijn toegevoegd/aangepast
- [ ] Documentatie bijgewerkt (indien nodig)
π Regels & richtlijnenβ
Stelregelsβ
- Alleen de auteur merged de PR (na goedkeuring).
- Voor kleine PR's: stel
auto-mergein om het proces te versnellen. - Loop alle CodeRabbit-opmerkingen langs (ook nitpicks) en los op of motiveer.
Focus per PRβ
Een PR bevat altijd maar één wijziging. Combineer nooit meerdere aanpassingen in één PR. Dit voorkomt onduidelijkheid en maakt het reviewproces overzichtelijker. De verleiding is soms groot om dingen samen te voegen voor de snelheid, maar leer jezelf aan om de tijd te nemen voor een goede, gefocuste PR. Zelfs als je wijziging maar 1 regel code is.
PRβgrootteβ
- Kleine PR's: 1-200 regels wijziging
- Middelgrote PR's: 200-500 regels wijziging
- Grote PR's: >500 regels (overweeg opsplitsing)
Heb je een PR met meer dan 1000 gewijzigde regels? Dat is te groot om goed te reviewen. Doe dit alleen als het echt niet anders kan, bijvoorbeeld bij:
- Grote refactor
- Automatische codegeneratie (bijv.
.lockβfiles) - Code style of lint aanpassingen
Overleg altijd vooraf met je team. Iedereen moet akkoord zijn.
Zorg voor een duidelijke uitleg: wat is er veranderd, waarom zo groot, waar moet op gelet worden? Voeg een korte "Changes overview" met bullets toe en geef aan welke onderdelen prioriteit hebben voor review.
Neem ruim de tijd voor de review. Je team moet zich prettig voelen bij zo'n grote wijziging.
π PR Templatesβ
Organization-wide templatesβ
Alle repositories in onze organisatie gebruiken standaard PR templates die centraal beheerd worden in de brixion/.github repository.
Locatie: .github/PULL_REQUEST_TEMPLATE/
Templates aanpassenβ
Wil je een bestaande template wijzigen of een nieuwe template toevoegen?
- Ga naar de
brixion/.githubrepository - Navigeer naar de
.github/PULL_REQUEST_TEMPLATE/map - Maak een PR aan met je wijzigingen
- Na merge worden de templates automatisch beschikbaar in alle repositories
Nieuwe templates toevoegenβ
Heb je behoefte aan een specifieke template voor een bepaald type PR? Voeg deze toe aan de organization-wide repository zodat alle teams er gebruik van kunnen maken.
β Voordelenβ
Kwaliteitscontroleβ
Elke wijziging wordt door minimaal één collega beoordeeld op functionaliteit, leesbaarheid, veiligheid en performance. Dit verkleint de kans op regressies en verhoogt de betrouwbaarheid van onze software in productie.
Kennisuitwisselingβ
Reviews zorgen voor kruisbestuiving tussen teamleden. Door elkaars code te lezen ontstaan gedeelde inzichten over domeinlogica, architectuurkeuzes en best practices, waardoor busfactor wordt verlaagd en het team als geheel groeit.
Transparantie en traceerbaarheidβ
PR's vormen een helder audit trail van wie wat heeft veranderd, waarom en wanneer. Dit maakt het makkelijker om beslissingen te herleiden, incidenten te onderzoeken en compliance-eisen te ondersteunen.
Betere documentatie van wijzigingenβ
Een goede PR-beschrijving legt context vast (aanleiding, aanpak, impact). Dit fungeert als levend naslagwerk voor toekomstige wijzigingen, onboarding van nieuwe collega's en het snel begrijpen van historische keuzes.
Samenwerking en alignmentβ
Discussies in PR's helpen om vroegtijdig feedback te verzamelen, alternatieven te overwegen en consensus te bereiken. Dit leidt tot consistentere implementaties en voorkomt dure herwerkingen later in het proces.
Snellere feedbackloopβ
Door kleine, gefocuste PR's te maken en auto-merge voor kleine wijzigingen te gebruiken, verkorten we de doorlooptijd van idee naar productie en houden we momentum in het team hoog.
Verbeterde testdekking en kwaliteitβ
Het reviewproces stimuleert het toevoegen of verbeteren van tests en het naleven van onze kwaliteitsstandaarden (linting, typechecks, security). Hierdoor stijgt de algehele codekwaliteit.