public, dans un fichier .pm, documenté L'implémentation peut nécessiter d'autres packages secondaires Script : un programme Perl, exécutable extension .pl facultative POD : la documentation de votre code, embarquée ou séparée dans un fichier .pod Distribution 0..n modules 0..n scripts Métadonnées Tout ce qu'il faut pour installer le module/script Tout ce qu'il faut pour construire une nouvelle distribution
(avec ou sans .pl) lib/ : modules (.pm) De la documentation README Changes / ChangeLog POD Une licence d'utilisation Un script d'installation : Makefile.PL / Build.PL Des métadonnées : MANIFEST META.yml Une suite de test Cette structure est utilisable également pour vos distributions privées (en dehors du CPAN, le DarkPAN)
SErver https://pause.perl.org/ Créez votre identifiant d'auteur CPAN Request PAUSE account Les pages importantes : Login Upload a file to CPAN Delete file
fichiers ! Un bon module est un module qui est maintenu Git, Subversion, Mercurial, CVS... Publiez un serveur public Collaboration Suivi par vos utilisateurs
l'ancêtre, disponible partout nécessite « make » Module::Build : Build.PL dans le core seulement depuis 5.10 assez populaire, donc cette dépendance n'est plus un pb fonctionne mieux sous Windows très bien maintenu mon favori Module::Install : Makefile.PL embarqué dans votre distribution => alourdi basé sur EU::MM
fonctionnement une fois installé config_requires pour l'exécution de « perl Build.PL » (généralement vide) build_requires pour l'exécution de « ./Build », « ./Build test » build_recommends pour des tests plus poussés ; votre build doit savoir s'en passer N'indiquez pas dans requires/build_requires des modules qui ne sont nécessaires qu'à vous en tant qu'auteur
schéma et tenez vous-y Format assez libre, mais évitez les fantaisies ! our $VERSION = '#.##' dans vos modules et scripts Utilisez le même numéro pour votre module et votre distribution CPAN reconnaît deux types de versions : Publiques Développeur version développeur : #.##_## (le '_' fait la différence) masquées sur search.cpan.org et dans le shell CPAN ls DOLMEN install DOLMEN/Parse-nm-0.04_90.tar.gz à utiliser pour publier une pré-version Pour répondre rapidement à un bug Et vérifier les résultats CPAN Testers
: t/*.t Tests de votre module Votre suite de test borne ce qui est permis Elle montre à vos utilisateurs comment utiliser votre module Les cas où ça fonctionne Les cas où ça ne doit pas fonctionner « Build testcover » pour vérifier la couverture de votre suite Tests de votre distribution, avant publication Numéro de version, couverture de la documentation, fichiers de base Ces tests ne doivent pas bloquer un utilisateur qui installe votre distribution => conditionnels si RELEASE_TESTING=1 Un minimum : Test::Distribution
module les liens utiles : La doc en ligne (perldoc) Les bugs ouverts sur rt.cpan.org Les rapports CPANTesters uwinipeg.ca vous donne encore plus de liens : Les rapports de build ActivePerl (Windows)
? Votre ID PAUSE vous donne un alias mail @cpan.org Un feedback rapide et automatique sur la portabilité de votre distribution sur des dizaines de plateformes dans les 48h après un upload : CPAN Testers reports : cpantesters.org Windows : rapports ActiveState Un bugtracker : rt.cpan.org Même authentification pour toutes les distributions du CPAN => facile pour vous et vos utilisateurs Soumission par le web ou par mail Pour vos utilisateurs : Installation directe avec les dépendances via les shells Un archivage jusqu'à la fin des temps : BackPAN