Skip to content

Contribuer

Nous accueillons les contributions de toutes sortes — rapports de bugs, améliorations de documentation, propositions de fonctionnalités et code. Cette page résume le processus. Pour l'accord de contributeur complet et les directives détaillées, consultez CONTRIBUTING.md sur GitHub.

Configuration du développement

Prérequis

PrérequisVersion minimale
PHP8.5+
Composer2.x
PHPUnit12.x
PHPStan2.x

Démarrage

bash
# Cloner le dépôt
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next

# Installer les dépendances
composer install

# Vérifier que tout fonctionne
composer test

Exécuter les tests

TCPDF-Next utilise PHPUnit 12 avec des suites séparées pour les tests unitaires et d'intégration.

bash
# Exécuter la suite de tests complète
composer test

# Exécuter uniquement les tests unitaires (rapide, sans I/O)
composer test:unit

# Exécuter uniquement les tests d'intégration (sortie fichier, chargement polices, etc.)
composer test:integration

Tous les tests doivent passer avant qu'une pull request puisse être fusionnée. Le pipeline CI exécute la suite complète à chaque push.

Analyse statique

La base de code est analysée avec PHPStan au Level 10 (le niveau le plus strict) :

bash
composer analyse

Zéro erreur n'est toléré. Si votre changement introduit une erreur PHPStan, le build CI échouera.

Exigences de style de code

  • declare(strict_types=1) en haut de chaque fichier PHP.
  • Conformité PHPStan Level 10 — aucune exception de baseline pour le nouveau code.
  • Classes readonly préférées partout où l'état mutable n'est pas requis.
  • Backed enums pour tous les ensembles finis de valeurs (pas de chaînes magiques ou constantes entières).
  • Paramètres nommés dans les méthodes d'API publiques pour la clarté.
  • Pas de types mixed — chaque paramètre, type de retour et propriété doit être explicitement typé.
  • Final par défaut — les classes sont final sauf si conçues pour l'extension.

Processus de pull request

  1. Forker le dépôt et créer une branche de fonctionnalité depuis main.

  2. Écrire les tests d'abord — TCPDF-Next suit un workflow orienté TDD. Les nouvelles fonctionnalités et corrections de bugs doivent inclure des tests correspondants.

  3. Garder les commits focalisés — un changement logique par commit. Écrire des messages de commit clairs.

  4. Exécuter la suite de vérification complète avant de pousser :

    bash
    composer analyse && composer test
  5. Ouvrir une pull request contre main. Remplir le template PR avec :

    • Une description du changement et sa motivation.
    • Liens vers les issues liées (utiliser la syntaxe Closes #123).
    • Tous changements cassants ou notes de migration.
  6. Répondre aux retours de revue — les mainteneurs peuvent demander des changements. Veuillez adresser ou discuter chaque commentaire.

Signaler des bugs

Ouvrez une GitHub Issue avec :

  • Version PHP et OS.
  • Version TCPDF-Next (composer show yeeefang/tcpdf-next).
  • Code de reproduction minimal.
  • Comportement attendu vs. réel.

Vulnérabilités de sécurité

Ne signalez pas les problèmes de sécurité via les GitHub Issues publiques. Utilisez plutôt GitHub Security Advisories. Consultez la FAQ pour plus de détails.

Merci

Chaque contribution rend TCPDF-Next meilleur. Que vous corrigiez une faute de frappe dans la documentation ou implémentiez une fonctionnalité majeure, votre temps et votre effort sont sincèrement appréciés.

Distribué sous licence LGPL-3.0-or-later.