Que vous utilisiez Meta CPAN ou search.cpan.org, vous verrez que certains modules ont un lien vers Github ou tout autre endroit où les auteurs de ces modules entreposent leurs projets.

search.cpan.org affiche juste la valeur en clair du lien au niveau du champ libellé Repository (Dépôt). Meta CPAN fournit le lien dont le libellé se trouve entre parenthèses (<nom_du_dépôt> clone), au niveau du champ libellé Repository (Dépôt). Pour Github, une fenêtre contextuelle fournit des informations détaillées dans un beau format. Les autres sites personnels n'auront certainement que le lien.

Les deux sites retrouvent ce lien vers le système de contrôle de version depuis les fichiers META inclus dans les distributions CPAN. Soit le fichier META.yml, soit le fichier META.json, celui-ci étant le plus récent. Ils ne devraient différer que dans leur format.

Comme les fichiers META sont généralement générés automatiquement lorsque la distribution est livrée par l'auteur, je vais vous montrer comment vous pouvez configurer les quatre principaux systèmes d'empaquetage pour inclure le champ dépôt.

Dans les exemples ci-dessous, je vais utiliser le lien vers le dépôt de Task::DWIM qui est une distribution expérimentale qui liste tous les modules inclus dans la distribution DWIM Perl.

ExtUtils::MakeMaker

Si vous utilisez ExtUtils::MakeMaker, ajoutez la ligne suivante dans votre Makefile.PL comme paramètre dans la fonction WriteMakefile :

META_MERGE => {
    resources => {
        repository => 'https://github.com/dwimperl/Task-DWIM',
    },
},

Si votre version de ExtUtils::MakeMaker ne supporte pas cette fonctionnalité, il suffit de mettre à jour ExtUtils::MakeMaker.

Module::Build

Si vous utilisez Module::Build, ajoutez la ligne suivante dans Build.PL, lors de l'appel à Module::Build->new :

meta_merge => {
    resources => {
        repository => 'https://github.com/dwimperl/Task-DWIM'
    }
},

Module::Install

Si vous utilisez Module::Install, ajoutez la ligne suivante dans Makefile.PL :

repository 'https://github.com/dwimperl/Task-DWIM';

Dist::Zilla

Si vous utilisez Dist::Zilla, le module d'extension Dist::Zilla::Plugin::Repository ajoute automatiquement le lien vers votre dépôt, mais vous pouvez également le spécifier manuellement :

[MetaResources]
repository.url = https://github.com/dwimperl/Task-DWIM.git

Une version détaillée incluerait plus de détails comme dans l'exemple suivant. Ces détails ne sont inclus que dans le fichier META.json, pas dans le fichier META.yml. Pour générer ce fichier, vous aurez également besoin de comprendre le module d'extension Dist::Zilla::Plugin::MetaJSON.

[MetaResources]
repository.web = https://github.com/dwimperl/Task-DWIM
repository.url = https://github.com/dwimperl/Task-DWIM.git
repository.type = git

[MetaJSON]

Il y a d'autres façons d'ajouter des liens vers des dépôts (EN) dans les fichiers META lors de l'utilisation Dist::Zilla.

Pourquoi dois-je ajouter ce lien ?

C'est simple ! Plus il est facile d'envoyer des correctifs pour la version la plus récente de votre module, plus il est probable que vous les aurez !

Aussi, vous avez peut-être déjà apporté quelques modifications à votre module depuis la dernière version. Vous avez peut-être déjà fixé le bogue que j'aimerais corriger. Si je peux voir votre dépôt, nous pouvons éviter le travail en double.

Autres ressources

Pendant que vous êtes dans la gestion des fichiers META, vous pouvez ajouter d'autres ressources de cette manière. La spécification Meta CPAN répertorie toutes ces ressources. Si un point de cette documentation n'est pas clair, il suffit de demander de l'aide.

Licences

Dans un autre article, j'ai montré comment ajouter les informations de licence pour les fichiers META des distributions CPAN. Si vous aviez un dépôt public, il serait aussi plus facile pour les autres d'envoyer ce correctif.