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
| Requisito | Versión mínima |
|---|---|
| PHP | 8.5+ |
| Composer | 2.x |
| PHPUnit | 12.x |
| PHPStan | 2.x |
Primeros pasos
# Clonar el repositorio
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next
# Instalar dependencias
composer install
# Verificar que todo funciona
composer testEjecutar pruebas
TCPDF-Next usa PHPUnit 12 con suites separadas para pruebas unitarias y de integración.
# 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:integrationTodas 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):
composer analyseNo 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.
readonlyclasses 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
finala menos que estén diseñadas para extensión.
Proceso de pull request
Haz un fork del repositorio y crea una rama de funcionalidad desde
main.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.
Mantén los commits enfocados — un cambio lógico por commit. Escribe mensajes de commit claros.
Ejecuta la suite de verificación completa antes de hacer push:
bashcomposer analyse && composer testAbre 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.
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.