---
url: 'https://dxpr.com/es/hc/documentation/learn-dxpr-builder/development/contributing'
title: 'Cómo contribuir | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:18:13+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  El desarrollo de DXPR Builder ocurre en GitHub en
  github.com/dxpr/dxpr_builder. Todas
  las contribuciones siguen el flujo descrito en el
  CONTRIBUTING.md del repositorio.
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-24T11:18:13+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Cómo contribuir'
      description: |-
        El desarrollo de DXPR Builder ocurre en GitHub en
        github.com/dxpr/dxpr_builder. Todas
        las contribuciones siguen el flujo descrito en el
        CONTRIBUTING.md del repositorio.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:18:13+0000'
      dateModified: '2026-10-24T11:18:13+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/es/hc/documentation/learn-dxpr-builder/development/contributing'
      articleSection: Herramientas
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/es/hc/documentation/learn-dxpr-builder/development/contributing'
      description: |-
        El desarrollo de DXPR Builder ocurre en GitHub en
        github.com/dxpr/dxpr_builder. Todas
        las contribuciones siguen el flujo descrito en el
        CONTRIBUTING.md del repositorio.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Inicio
            item: 'https://dxpr.com/es'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: es
---
[Centro de ayuda](/es/hc)/[Documentación](/es/hc/documentation) /[Aprende DXPR Builder](/es/hc/documentation/learn-dxpr-builder) /[Extender](/es/hc/documentation/learn-dxpr-builder/extend) /[Herramientas](/es/hc/documentation/learn-dxpr-builder/extend/tooling) # Cómo contribuir.

 Aprende DXPR BuilderExtenderHerramientas

   ## En esta guía

El desarrollo de DXPR Builder ocurre en GitHub en [github.com/dxpr/dxpr\_builder](https://github.com/dxpr/dxpr_builder). Todas las contribuciones siguen el flujo descrito en el [CONTRIBUTING.md](https://github.com/dxpr/dxpr_builder/blob/3.x/CONTRIBUTING.md) del repositorio.

## Flujo Git

1. Cada pull request debe estar vinculado a un issue de GitHub
2. Convención de nombres de rama: `person/target-branch/#issue-description` (p. ej. `jur/3.x/#42-fix-carousel-autoplay`)
3. Escribe commits atómicos siguiendo la [guía de estilo Git de alphagov](https://github.com/alphagov/styleguides/blob/master/git.md)
4. Los pull requests deben contener una descripción corta de la solución
5. Mantén los cambios dentro del alcance del issue: sin formato ni refactorización no relacionados

## Propiedad del código

[@jjroelofs](https://github.com/jjroelofs) es la persona propietaria del código. Ningún pull request puede fusionarse sin su revisión.

## Estándares de código

- PHP: [estándares de código de Drupal](https://www.drupal.org/docs/develop/standards)
- JavaScript: solo ES6+ (sin `var`, sin jQuery en código nuevo). Sigue los [estándares de código JavaScript de Airbnb](https://github.com/airbnb/javascript) con excepciones del proyecto
- CSS: sigue el [sistema de diseño](https://github.com/dxpr/dxpr_builder/blob/3.x/DESIGN-SYSTEM.md) para propiedades personalizadas y nombres de tokens
- Un cambio en el método `showed` de un elemento debe incluir el `dxpr_frontend.js` actualizado. Genéralo desde la salida completa que el editor imprime en la consola del navegador cuando haces clic en el botón de guardado de un contenedor.
- Las funciones nuevas necesitan cobertura de QA Analytics.

Ejecuta `npm install` una vez tras clonar. Instala el hook pre-commit de Husky, que revisa tus archivos en staging; consulta [Pruebas](/hc/documentation/learn-dxpr-builder/development/testing).

## Ejecución de pruebas E2E

Las pruebas se activan con comandos de barra en comentarios de PR:

| Comando | Descripción |
|---|---|
| `/e2e` | Ejecuta las suites completas de editor BS5 y anónimas |
| `/e2e groups=group-name` | Ejecuta grupos de pruebas específicos |
| `/e2e tests=ClassName` | Ejecuta clases de pruebas específicas |
| `/e2e-bs3` | Ejecuta la suite de editor BS3 |
| `/e2eV2` | Ejecuta las suites BS5 en la pila DXPR CMS |
| `/e2e maven_ref=branch` | Prueba con una rama `dxpr_maven` personalizada |

Cuando un cambio del constructor necesita un cambio de pruebas, la persona de QA actualiza `dxpr_maven` en una rama, y ejecutas `/e2e maven_ref=<branch>` en tu pull request. El pull request del constructor se fusiona primero, y luego el de `dxpr_maven`.

## Antes de pedir revisión

1. Implementa el cambio
2. Prueba con cuidado
3. Haz una ronda de limpieza/refactorización
4. Vuelve a probar para confirmar que nada se rompió
5. Haz commit y push con un historial git limpio
6. Comprueba que pasan las revisiones del linter
7. Comenta `/e2e` en el PR para ejecutar pruebas de regresión
8. Pide revisión cuando pasan todas las comprobaciones