2010-09-24 9 views
5

Seitdem ich Perlbrew entdeckt habe, bin ich ein glücklicher CPAN-Benutzer. Was ich aber nie herausgefunden habe, ist, wie man Changelogs von Modulen liest. Wenn Sie zum Beispiel die veralteten mit "r" in der CPAN-Shell betrachten, würde ich gerne das Changelog überprüfen, um zu entscheiden, ob ein Upgrade durchgeführt werden soll oder nicht.Wie liest man CPAN Changelogs?

Natürlich kann ich das Modul herunterladen, entpacken und nach einem Changelog suchen. Aber ich hoffe, es gibt einen einfacheren Weg. Wie machst du das?

Ich benutze die alte CPAN-Shell. Wenn CPANPLUS oder cpanminus dies unterstützen, würde ich einen Wechsel in Betracht ziehen.

Antwort

3

cpan-outdated fast tut, was Sie aus dem Kasten heraus benötigen:

$ cpan-outdated --compare-changes 

produziert Vor ein Diff zwischen allen Ihren Changes Dateien und spätestens ab CPAN für jeden datierten Modul aus Sie haben. Allerdings kann das ein bisschen lang sein & chaotisch zu durchforsten, wenn Sie eine Menge veralteter Module haben!

Zum Glück dauerte es nur wenige Änderungen dieser Optionen hinzuzufügen:

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

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

Mein Update finden Sie hier auf Github werden: http://github.com/draegtun/cpan-outdated. Hier ist die diff of my changes-tokuhirom cpan-outdated

/I3az/

+0

Das wäre wirklich cool zu cpan (1) hinzuzufügen. Ich muss "sehen, was du dort getan hast" :) –

+0

@brian d foy: Alle Kudos sollten nach Tokuhirom gehen (http://github.com/tokuhirom), weil meine Änderungen sehr minimal waren. – draegtun

+0

Ausgezeichnet, das ist genau das, was ich gesucht habe. Vielen Dank! –

6

Ich schaue einfach auf CPAN Search. Die Hauptseite für jede Distribution enthält Links zu den Hauptdateien und Sie können auch die gesamte Distribution durchsuchen. Sie müssen die Distribution nicht herunterladen oder entpacken.

Sie können auch die C-Schalter des cpan Befehl verwenden, so dass Sie die CPAN.pm Shell nicht eingeben müssen:

$ cpan -C Some::Module 

ich nichts wissen nicht, dass bei Ihnen die Änderungen Datei zeigen einmal für alle veralteten Module. Das wäre im Terminal wahrscheinlich ein wenig durcheinander.

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

Das ist $. > 9 Bit ist es zu überspringen die CPAN.pm Ausgang und den Tabellenkopf: Sie könnten etwas mit dem -O-Schalter auf rig können. Es ist sicher hässlich.

Wenn Sie etwas ausgefalleneres tun möchten, könnten Sie den letzten Teil der Pipe ein Skript machen, um cpan -C einzeln auszuführen und das Ergebnis in einer Datei zu speichern. Setze alle Dateien in ein Verzeichnis von Changes und Bobs Onkel. Das ist viel mehr Arbeit, als mir wichtig ist. Ich aktualisiere nur die Dinge und schaue später auf die Änderungen, wenn etwas kaputt geht.

+0

Danke, ich die Option -C verpasst, wie ich immer die Shell verwenden, und es ist nicht als Befehl dort ausgesetzt. Das sollte einfach zu implementieren sein, vielleicht habe ich mir hier ein neues Projekt besorgt :-) –

+0

Außerdem stimme ich zu, dass alle Änderungen auf einmal zu chaotisch wären, ich würde es nur für ein bestimmtes Modul haben wollen. –