Lorsque l'on développe un plugin pour symfony, le tgz doit être formaté selon la norme des packages PEAR. Ce plugin est une évolution de sfPackageMakerPlugin compatible pour symfony 1.2
Ce plugin permet donc de créer un task symfony qui générera un XML de description valide à partir d'un XML template pour créér le package.
Dans cette version du plugin le task permet égallement de générer les changelog pour respecter le mode Strict de la norme, et donc vous simplifier l'upload de votre packge sur http://symfony-project.com.
Bien évidement, ce plugins, peux servir à générer tous type de packages PEAR, pas uniquement pour symfony.
Pour installer le package il vous suffit d'éxecuter la commande :
symfony plugin:install sfPackageMaker2Plugin --release=0.2.2
Videz ensuite votre cache :
symfony cc
Afin de créér le fichier PEAR package.xml, vous devez :
Modifier le bloc <lead> avec le modele suivant
<lead>
<name>VOTRE NOM</name>
<user>VOTRE IDENTIFIANT SYMFONY</user>
<email>VOTRE EMAIL</email>
<active>yes</active>
</lead>
Vous pouvez bien sur ajouter les blocs pour tous les auteurs.
Exemple :
<dependencies>
<required>
<php>
<min>5.1.0</min>
</php>
<pearinstaller>
<min>1.4.1</min>
</pearinstaller>
<package>
<name>symfony</name>
<channel>pear.symfony-project.com</channel>
<min>1.1.0</min>
<max>1.3.0</max>
<exclude>1.3.0</exclude>
</package>
</required>
</dependencies>
Les dépendances de symfony détermine avec quel version de symfony le package est installable, pensez à bien ajuster cette section, sinon vos plugins ne pourront pas installés facilement
ATTENTION :
Le mode strict de symfony requiert les fichiers README et LICENSE, si vous ne les avez pas créés, le task le fera pour vous.
Afin de créer un fichier, vous pouvez executer la commande :
./symfony plugin:build-package
Sous windows :
symfony plugin:build-package
(je rappele que l'appel au php-cli est optionnel, vous n'avez donc pas l'obligation de mettre php symfony ...)
Le task dispose également d'un alias pour ceux qui ne se sont pas encore fait à la structure des namespaces :
symfony plugin-build-package
Cette ligne de commande contient un argument obligatoire, vous l'aviez probablement deviné, c'est le nom du plugin.
Par défaut et je vous conseille de respecter cette structure, ca simplifie la vie, c'est le nom du plugin dans le fichier package-NOM_DU_PLUGIN.xml
Afin de vous simplifier la vie, voila la ligne de commande que je vous conseil :
./symfony plugin:build-package -v"X.Y.Z" -s"beta" -c"Your notes for the version" PLUGIN_NAME
Si vous avez créer votre ficher XML avec le bon numéro de version, et que vous aviez oublié un fichier par exemple (mais sans rien avoir mis sur le repository), ou encore que vous n'avez pas directement générer le tgz, vous pouvez executer
./symfony plugin:build-package PLUGIN_NAME
Une fois que vous avez préparer le fichier xml il ne vous reste plus qu'a créer un fichier tgz pour l'uploader sur http://symfony-project.com
Procédez comme suit :
cd plugins pear package NOM_DE_VOTRE_PLUGIN/package.xml
Vous trouverez le fichier tgz dans le dossier plugin.