Publier un plugin sur le SVN de WordPress

Cet article liste l’ensemble des commandes subversion utiles lors de la publication d’un plugin sur le SVN de WordPress.

Il ne s’agit pas ici d’expliquer en détails le fonctionnement de SVN, mais uniquement de rappeler les principes et les commandes de base qui peuvent facilement être oubliées quand on ne met pas à jour ses plugins très souvent.

Dépôt d’un nouveau plugin

Récupération du contenu du dépôt SVN (checkout)

La première étape est de créer le dossier local qui va accueillir une copie du dépôt SVN.

$ mkdir mon-dossier-local

Il faut ensuite effectuer le checkout du projet. Le checkout est l’opération consistant à récupérer les fichiers existant dans le dépôt SVN. Cette opération ne se fait pas nécessairement à chaque fois…

$ svn co https://plugins.svn.wordpress.org/nom-du-plugin mon-dossier-local
> A  mon-dossier-local/assets
> A  mon-dossier-local/branches
> A  mon-dossier-local/tags
> A  mon-dossier-local/trunk
> Checked out revision 1654809.

Le A indique que subversion a ajouté (« A » pour « Add ») tous les répertoires du dépôt SVN dans le dossier local mon-dossier-local que vous avez créé.

Ajout des fichiers du plugin dans le dépôt SVN (commit)

Vous devez maintenant copier tous les fichiers de votre plugin dans le dossier mon-dossier-local/trunk. Cette opération peut être réalisée via le gestionnaire de  fichiers de votre système d’exploitation ou via la commande adaptée.

$ cp -avR source/ destination/

Attention à copier les fichiers du plugin directement dans trunk sans le dossier parent.

La copie du plugin se trouve dans le dossier trunk. Il faut maintenant vous positionner dans le dossier local puis déclarer les dossiers à ajouter dans le dépôt. Dans l’exemple de code, je déclare l’intégralité des dossiers trunk et assets.

$ cd mon-dossier-local
mon-dossier-local/$ svn add trunk/* assets/*
> A  assets/banner-772x250.png
> A  assets/icon-128x128.png
> A  trunk/nom-du-plugin.php
> A  trunk/readme.txt

Tout est prêt pour le commit ou checkin. Cette opération consiste à mettre à jour le dépôt SVN à partir de la copie disponible dans votre dossier local. Vous devez saisir un message indiquant la raison de la mise à jour. Une nouvelle révision sera alors créée sur le dépôt.

mon-dossier-local/$ svn ci -m 'Adding first version of my plugin'
> Adding assets/banner-772x250.png
> Adding assets/icon-128x128.png
> Adding trunk/nom-du-plugin.php
> Adding trunk/readme.txt
> Transmitting file data .
> Committed revision 1654810.

En cas de problème d’accès « Access forbidden« , il est possible de vous identifier lors du commit.

mon-dossier-local/$ svn ci -m 'Adding first version of my plugin' --username nomutilisateur --password motdepasse

Mettre à jour les fichiers d’un plugin

Pour que cela fonctionne, il faut que l’opération de checkout ait déjà été effectuée pour avoir un copie du dépôt en local.

On va commencer par vérifier que la copie locale est bien à jour par rapport au dépôt. Si la copie locale n’est pas à jour, les fichiers concernés seront alors téléchargés.

$ cd mon-dossier-local
mon-dossier-local/$ svn up
> At revision 1654810.

Vous pouvez maintenant effectuer toutes les modifications que vous souhaitez dans les fichiers de votre plugin. Une fois les modifications effectuées, il s’agit de vérifier les différences entre votre copie locale et celle du dépôt.

mon-dossier-local/$ svn stat
> M  trunk/nom-du-plugin.php

Le M (« M » pour « Modified ») indique que le fichier trunk/nom-du-plugin.php est différent entre le dossier local et la version sur le dépôt.

Pour avoir le détails des modification effectuées, vous pouver utiliser la commande diff.

mon-dossier-local/$ svn diff

Une fois que toutes les vérifications ont été effectuées, il suffit d’effectuer un commit.

mon-dossier-local/$ svn ci -m 'Update of my amazing plugin'
> Sending    trunk/nom-du-plugin.php
> Transmitting file data .
> Committed revision 1654811.

Si vous rencontrez des problèmes de droits « Access forbidden« , il est possible de vous identifier lors du commit.

mon-dossier-local/$ svn ci -m 'Update of my amazing plugin' --username nomutilisateur --password motdepasse

Si vous avez ajouté des nouveaux fichiers à votre plugin, il faut penser à les ajouter au dépôt.

mon-dossier-local/$ svn add trunk/nouveau-fichier.php

« Tagger » une nouvelle version

Les notions de tronc, de branches et de tags sont spécifiques aux logiciels de contrôle de versions. C’est ce qui explique pourquoi les dossiers trunk branches et tags ont été créés lors du checkout initial.

  • Tronc : correspond à la version principale du programme, le développement « officiel ».
  • Branche : il s’agit d’un développement « secondaire ». Créé soit pour ajouter de nouvelles fonctionnalités, soit parce que le développement va prendre une autre direction. Une branche peut ensuite être fusionnée dans le « tronc », disparaître ou donner lieu à un nouveau programme.
  • Tags : correspond à une releaser du programme, c’est à dire un version du programme. La création de tag permet de passer facilement d’une version du programme à une autre.

A chaque fois que vous allez créer une nouvelle version de votre plugin, vous allez devoir tagger la version en question. Cela permet aux utilisateurs de choisir facilement la version la plus récente (ou une précédente), elle vous permet de suivre les modifications plus facilement et permet à WordPress.org de connaître la version du plugin à télécharger en fonction de la version de WordPress des utilisateurs.

Pensez à mettre à jour le champ Stable tag dans le readme.txt du plugin.

On effectue ensuite la copie du plugin dans le dossier tags.

mon-dossier-local/$ svn cp trunk tags/2.0
> A tags/2.0

Comme pour chaque modification, il faut terminer par un commit.

mon-dossier-local/$ svn ci -m "tagging version 2.0"
> Adding     tags/2.0
> Adding     tags/2.0/nom-du-plugin.php
> Adding     tags/2.0/readme.txt
> Committed revision 1654812.

Cela peut vous intéresser :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.