Skip to content

Contribuir

Damos la bienvenida a contribuciones de todo tipo — reportes de errores, mejoras de documentación, propuestas de funcionalidades y código. Esta página resume el proceso. Para el acuerdo de contribuidor completo y las directrices detalladas, consulta CONTRIBUTING.md en GitHub.

Configuración del entorno de desarrollo

Prerrequisitos

RequisitoVersión mínima
PHP8.5+
Composer2.x
PHPUnit12.x
PHPStan2.x

Primeros pasos

bash
# Clonar el repositorio
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next

# Instalar dependencias
composer install

# Verificar que todo funciona
composer test

Ejecutar pruebas

TCPDF-Next usa PHPUnit 12 con suites separadas para pruebas unitarias y de integración.

bash
# Ejecutar la suite de pruebas completa
composer test

# Ejecutar solo pruebas unitarias (rápidas, sin E/S)
composer test:unit

# Ejecutar solo pruebas de integración (salida de archivos, carga de fuentes, etc.)
composer test:integration

Todas las pruebas deben pasar antes de que un pull request pueda ser mergeado. El pipeline de CI ejecuta la suite completa en cada push.

Análisis estático

El código base se analiza con PHPStan a Level 10 (el nivel más estricto):

bash
composer analyse

No se toleran errores. Si tu cambio introduce un error de PHPStan, la compilación de CI fallará.

Requisitos de estilo de código

  • declare(strict_types=1) al inicio de cada archivo PHP.
  • PHPStan Level 10 — sin excepciones de baseline para código nuevo.
  • readonly classes preferidas donde no se requiera estado mutable.
  • Backed enums para todos los conjuntos finitos de valores (sin cadenas mágicas ni constantes enteras).
  • Parámetros con nombre en los métodos de la API pública para mayor claridad.
  • Sin tipos mixed — cada parámetro, tipo de retorno y propiedad debe estar explícitamente tipado.
  • Final por defecto — las clases son final a menos que estén diseñadas para extensión.

Proceso de pull request

  1. Haz un fork del repositorio y crea una rama de funcionalidad desde main.

  2. Escribe las pruebas primero — TCPDF-Next sigue un flujo de trabajo orientado a TDD. Las nuevas funcionalidades y correcciones de errores deben incluir las pruebas correspondientes.

  3. Mantén los commits enfocados — un cambio lógico por commit. Escribe mensajes de commit claros.

  4. Ejecuta la suite de verificación completa antes de hacer push:

    bash
    composer analyse && composer test
  5. Abre un pull request contra main. Completa la plantilla del PR con:

    • Una descripción del cambio y su motivación.
    • Enlaces a issues relacionados (usa la sintaxis Closes #123).
    • Cualquier cambio incompatible o notas de migración.
  6. Responde al feedback de revisión — los mantenedores pueden solicitar cambios. Por favor aborda o discute cada comentario.

Reportar errores

Abre un GitHub Issue con:

  • Versión de PHP y SO.
  • Versión de TCPDF-Next (composer show yeeefang/tcpdf-next).
  • Código de reproducción mínimo.
  • Comportamiento esperado vs. real.

Vulnerabilidades de seguridad

No reportes problemas de seguridad a través de GitHub Issues públicos. Usa GitHub Security Advisories en su lugar. Consulta las FAQ para más detalles.

Gracias

Cada contribución hace que TCPDF-Next sea mejor. Ya sea que corrijas un error tipográfico en la documentación o implementes una funcionalidad importante, tu tiempo y esfuerzo son genuinamente apreciados.

Distribuido bajo la licencia LGPL-3.0-or-later.