---
url: 'https://dxpr.com/it/hc/documentazione/impara-dxpr-builder/sviluppo/come-contribuire'
title: 'Come contribuire | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T03:04:31+00:00'
updated: '2026-10-24T19:36:26+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  Lo sviluppo di DXPR Builder avviene su GitHub all’indirizzo
  github.com/dxpr/dxpr_builder. Tutti i
  contributi seguono il flusso di lavoro descritto nel
  CONTRIBUTING.md del 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-24T19:36:26+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Come contribuire'
      description: |-
        Lo sviluppo di DXPR Builder avviene su GitHub all’indirizzo
        github.com/dxpr/dxpr_builder. Tutti i
        contributi seguono il flusso di lavoro descritto nel
        CONTRIBUTING.md del repository.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T03:04:31+0000'
      dateModified: '2026-10-24T19:36:26+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/it/hc/documentazione/impara-dxpr-builder/sviluppo/come-contribuire'
      articleSection: Strumenti
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/it/hc/documentazione/impara-dxpr-builder/sviluppo/come-contribuire'
      description: |-
        Lo sviluppo di DXPR Builder avviene su GitHub all’indirizzo
        github.com/dxpr/dxpr_builder. Tutti i
        contributi seguono il flusso di lavoro descritto nel
        CONTRIBUTING.md del repository.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/it'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: it
---
[Centro assistenza](/it/hc)/[Documentazione](/it/hc/documentazione) /[Impara DXPR Builder](/it/hc/documentation/learn-dxpr-builder) /[Estendi](/it/hc/documentation/learn-dxpr-builder/extend) /[Strumenti](/it/hc/documentation/learn-dxpr-builder/extend/tooling) # Come contribuire.

 Impara DXPR BuilderEstendiStrumenti

   ## In questa guida

Lo sviluppo di DXPR Builder avviene su GitHub all’indirizzo [github.com/dxpr/dxpr\_builder](https://github.com/dxpr/dxpr_builder). Tutti i contributi seguono il flusso di lavoro descritto nel [CONTRIBUTING.md](https://github.com/dxpr/dxpr_builder/blob/3.x/CONTRIBUTING.md) del repository.

## Flusso di lavoro Git

1. Ogni pull request deve essere collegata a una issue di GitHub
2. Convenzione per i nomi dei branch: `person/target-branch/#issue-description` (ad es. `jur/3.x/#42-fix-carousel-autoplay`)
3. Scrivi commit atomici seguendo lo [styleguide Git di alphagov](https://github.com/alphagov/styleguides/blob/master/git.md)
4. Le pull request devono contenere una breve descrizione della soluzione
5. Mantieni le modifiche entro l’ambito della issue: niente formattazione o refactoring non correlati

## Code owner

[@jjroelofs](https://github.com/jjroelofs) è il code owner. Nessuna pull request può essere unita senza la sua revisione.

## Standard di programmazione

- PHP: [standard di programmazione Drupal](https://www.drupal.org/docs/develop/standards)
- JavaScript: solo ES6+ (niente `var`, niente jQuery nel nuovo codice). Segui gli [standard di programmazione JavaScript di Airbnb](https://github.com/airbnb/javascript) con le eccezioni del progetto
- CSS: segui il [Design System](https://github.com/dxpr/dxpr_builder/blob/3.x/DESIGN-SYSTEM.md) per le proprietà personalizzate e i nomi dei token
- Una modifica al metodo `showed` di un elemento deve includere il file `dxpr_frontend.js` aggiornato. Genera il file dall’output completo che l’editor stampa nella console del browser quando fai clic sul pulsante di salvataggio di un contenitore.
- Le nuove funzioni richiedono la copertura di QA Analytics.

Esegui `npm install` una volta dopo la clonazione. Installa l’hook pre-commit di Husky, che controlla con il linter i file che hai messo nello stage; vedi [Test](/it/hc/documentazione/impara-dxpr-builder/sviluppo/test).

## Esecuzione dei test E2E

I test si avviano con comandi slash nei commenti delle pull request:

| Comando | Descrizione |
|---|---|
| `/e2e` | Esegue le suite complete dell’editor BS5 e per utenti anonimi |
| `/e2e groups=group-name` | Esegue gruppi di test specifici |
| `/e2e tests=ClassName` | Esegue classi di test specifiche |
| `/e2e-bs3` | Esegue la suite dell’editor BS3 |
| `/e2eV2` | Esegue le suite BS5 sullo stack DXPR CMS |
| `/e2e maven_ref=branch` | Esegue i test con un branch `dxpr_maven` personalizzato |

Quando una modifica del builder richiede una modifica dei test, l’ingegnere QA aggiorna `dxpr_maven` su un branch ed esegui `/e2e maven_ref=<branch>` sulla tua pull request. Prima viene unita la pull request del builder, poi quella di `dxpr_maven`.

## Prima di richiedere la revisione

1. Implementa la modifica
2. Testa con attenzione
3. Fai un giro di pulizia e refactoring
4. Ripeti i test per confermare che niente si sia rotto
5. Fai commit e push con una cronologia git pulita
6. Verifica che i controlli del linter riescano
7. Commenta `/e2e` sulla pull request per eseguire i test di regressione
8. Richiedi la revisione dopo che tutti i controlli sono riusciti