2010-09-24 6 views
5

Depuis la découverte de perlbrew, je suis un heureux utilisateur de CPAN. Mais ce que je n'ai jamais compris, c'est comment lire les changelogs des modules. Par exemple, quand on regarde les anciens avec "r" dans le shell CPAN, je voudrais facilement inspecter le changelog pour décider s'il faut mettre à jour ou non.Comment lis-tu les changelogs du CPAN?

Bien sûr, je peux télécharger le module, le décompresser et rechercher un journal des modifications. Mais j'espère qu'il y a un moyen plus facile. Comment faites-vous? J'utilise l'ancien shell CPAN. Si CPANPLUS ou cpanminus supportent ceci, je considérerais la commutation.

Répondre

3

cpan-outdated-t presque ce que vous avez besoin de la boîte:

$ cpan-outdated --compare-changes 

produit Au-dessus d'un diff entre tous vos fichiers et Changes dernières nouvelles de CPAN pour chaque module de hors daté vous. Cependant, cela peut être un peu long à traîner si vous avez beaucoup de modules périmés!

Heureusement, il n'a fallu que quelques modifications pour ajouter ces options:

$ cpan-outdated --pkg Catalyst::View::TT --compare-changes 

$ cpan-outdated --filter-pkg Catalyst --compare-changes 

Ma mise à jour se trouvent sur Github ici: http://github.com/draegtun/cpan-outdated. Voici le diff of my changes-tokuhirom cpan-outdated

/I3az/

+0

Ce serait vraiment cool d'ajouter à cpan (1). Je vais devoir "voir ce que vous avez fait là" :) –

+0

@brian d foy: Tous les félicitations devraient aller à Tokuhirom (http://github.com/tokuhirom) parce que mes changements étaient très minimes. – draegtun

+0

Excellent, c'est exactement ce que je cherchais. Merci! –

6

Je viens de regarder CPAN Search. La page principale de chaque distribution est liée aux fichiers principaux et vous pouvez également parcourir la distribution entière. Vous n'avez pas besoin de télécharger ou décompresser la distribution.

Vous pouvez également utiliser le commutateur C de commande CPAN de sorte que vous ne devez pas entrer dans le shell CPAN.pm:

$ cpan -C Some::Module 

Je ne sais pas de quoi que ce soit qui vous montrera le fichier à changements une fois pour tous les modules obsolètes cependant. Ce serait probablement un peu le bordel dans le terminal. Vous pourriez être en mesure de monter quelque chose avec l'option -o:

$ cpan -O | perl -anle 'print $F[0] if $. > 9' | xargs cpan -C 

C'est peu $. > 9 est là pour sauter la sortie CPAN.pm et l'en-tête de table. C'est moche à coup sûr.

Si vous vouliez faire quelque chose de plus sophistiqué, vous pourriez faire en sorte que cette dernière partie de la pipe soit exécutée individuellement pour enregistrer cpan -C et enregistrer le résultat dans un fichier. Mettez tous les fichiers dans un répertoire de Changes et Bob est votre oncle. C'est beaucoup plus de travail que je me soucie de faire. Je viens de mettre à jour les choses et de regarder les changements plus tard si quelque chose se brise.

+0

Merci, j'ai raté le drapeau C comme je l'utilise toujours la coquille, et il est pas exposé comme une commande là-bas. Cela devrait être facile à mettre en œuvre, peut-être que je me suis un nouveau projet ici :-) –

+0

Aussi, je suis d'accord que voir tous les changements à la fois serait trop compliqué, je ne le voudrais que pour un module spécifique. –

Questions connexes