---
url: 'https://dxpr.com/nl/hc/documentation/learn-dxpr-builder/development/contributing'
title: 'Bijdragen | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T02:33:26+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  De ontwikkeling van DXPR Builder gebeurt op GitHub op
  github.com/dxpr/dxpr_builder. Alle
  bijdragen volgen de workflow die is beschreven in
  CONTRIBUTING.md van de repository.
tags:
  - Tooling
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: Bijdragen
      description: |-
        De ontwikkeling van DXPR Builder gebeurt op GitHub op
        github.com/dxpr/dxpr_builder. Alle
        bijdragen volgen de workflow die is beschreven in
        CONTRIBUTING.md van de repository.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T02:33:26+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/nl/hc/documentation/learn-dxpr-builder/development/contributing'
      articleSection: Tooling
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/nl/hc/documentation/learn-dxpr-builder/development/contributing'
      description: |-
        De ontwikkeling van DXPR Builder gebeurt op GitHub op
        github.com/dxpr/dxpr_builder. Alle
        bijdragen volgen de workflow die is beschreven in
        CONTRIBUTING.md van de repository.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/nl'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: nl
---
[Helpcentrum](/nl/hc)/[Documentatie](/nl/hc/documentatie) /[DXPR Builder leren](/nl/hc/documentation/learn-dxpr-builder) /[Uitbreiden](/nl/hc/documentation/learn-dxpr-builder/extend) /[Tooling](/nl/hc/documentation/learn-dxpr-builder/extend/tooling) # Bijdragen.

 DXPR Builder lerenUitbreidenTooling

   ## In deze gids

De ontwikkeling van DXPR Builder gebeurt op GitHub op [github.com/dxpr/dxpr\_builder](https://github.com/dxpr/dxpr_builder). Alle bijdragen volgen de workflow die is beschreven in [CONTRIBUTING.md](https://github.com/dxpr/dxpr_builder/blob/3.x/CONTRIBUTING.md) van de repository.

## Git-workflow

1. Elke pull request moet gekoppeld zijn aan een GitHub-issue
2. Naamgevingsconventie voor branches: `person/target-branch/#issue-description` (bijv. `jur/3.x/#42-fix-carousel-autoplay`)
3. Schrijf atomaire commits volgens de [alphagov Git styleguide](https://github.com/alphagov/styleguides/blob/master/git.md)
4. Pull requests moeten een korte beschrijving van de oplossing bevatten
5. Houd wijzigingen binnen de scope van de issue: geen niet-gerelateerde opmaak of refactoring

## Code-eigenaar

[@jjroelofs](https://github.com/jjroelofs) is de code-eigenaar. Zonder hun review kan geen enkele pull request worden gemergd.

## Codeerstandaarden

- PHP: [Drupal-codeerstandaarden](https://www.drupal.org/docs/develop/standards)
- JavaScript: alleen ES6+ (geen `var`, geen jQuery in nieuwe code). Volg de [Airbnb JavaScript-codeerstandaarden](https://github.com/airbnb/javascript) met projectuitzonderingen
- CSS: volg het [Design System](https://github.com/dxpr/dxpr_builder/blob/3.x/DESIGN-SYSTEM.md) voor custom properties en tokennamen
- Een wijziging aan de `showed`-methode van een element moet de bijgewerkte `dxpr_frontend.js` bevatten. Genereer deze uit de volledige output die de editor naar de browserconsole print wanneer je op de opslaanknop van een container klikt.
- Nieuwe functies hebben QA Analytics-dekking nodig.

Draai `npm install` één keer na het klonen. Het installeert de Husky pre-commit hook, die je gestagede bestanden lint; zie [Testen](/nl/hc/documentation/learn-dxpr-builder/development/testing).

## E2E-tests draaien

Tests worden gestart via slash-opdrachten in PR-reacties:

| Opdracht | Beschrijving |
|---|---|
| `/e2e` | Draai de volledige BS5-editor- en anonieme suites |
| `/e2e groups=group-name` | Draai specifieke testgroepen |
| `/e2e tests=ClassName` | Draai specifieke testklassen |
| `/e2e-bs3` | Draai de BS3-editorsuite |
| `/e2eV2` | Draai de BS5-suites op de DXPR CMS-stack |
| `/e2e maven_ref=branch` | Test met een aangepaste `dxpr_maven`-branch |

Wanneer een builderwijziging een testwijziging nodig heeft, werkt de QA-engineer `dxpr_maven` bij op een branch en draai je `/e2e maven_ref=<branch>` op je pull request. De pull request van de builder wordt eerst gemergd, daarna die van `dxpr_maven`.

## Voordat je een review aanvraagt

1. Implementeer de wijziging
2. Test zorgvuldig
3. Doe een opschoon- en refactorronde
4. Test opnieuw om te bevestigen dat er niets stuk is
5. Commit en push met een schone git-geschiedenis
6. Controleer of de lintercontroles slagen
7. Plaats `/e2e` als reactie op de PR om regressietests te draaien
8. Vraag een review aan nadat alle controles zijn geslaagd