2010-09-24 15 views
5

Desde que descubrí perlbrew, soy un feliz usuario de CPAN. Pero lo que nunca he descubierto es cómo leer los registros de cambios de módulos. Por ejemplo, cuando miro los obsoletos con "r" en el shell de CPAN, me gustaría inspeccionar fácilmente el registro de cambios para decidir si actualizar o no.¿Cómo se leen los registros de cambios de CPAN?

Por supuesto que puedo descargar el módulo, descomprimirlo y buscar un registro de cambios. Pero espero que haya una manera más fácil. ¿Cómo lo haces?

Estoy usando el viejo shell CPAN. Si CPANPLUS o cpanminus lo admiten, consideraría cambiar.

Respuesta

3

cpan-outdated casi hace lo que necesita salir de la caja:

$ cpan-outdated --compare-changes 

anterior produce una diferenciación entre todas sus Changes archivos y la última de CPAN a cabo para cada módulo de fecha que tiene. Sin embargo, esto puede ser un poco largo & complicado para ver si tienes muchos módulos anticuados.

Afortunadamente sólo se tarda unos pocos cambios para añadir estas opciones:

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

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

Mi actualización se puede conocer en Github aquí: http://github.com/draegtun/cpan-outdated. Aquí está el diff of my changes-tokuhirom cpan-outdated

/I3az/

+0

Esto sería genial agregarlo a cpan (1). Tendré que "ver lo que hiciste allí" :) –

+0

@brian d foy: Todos los elogios deberían ir a Tokuhirom (http://github.com/tokuhirom) porque mis cambios fueron muy mínimos. – draegtun

+0

Excelente, esto es exactamente lo que estaba buscando. ¡Gracias! –

6

Acabo de mirar en CPAN Search. La página principal de cada distribución se vincula a los archivos principales, y también puede navegar por toda la distribución. No tiene que descargar o descomprimir la distribución.

También puede utilizar opción -C del comando CPAN por lo que no tiene que introducir la cáscara CPAN.pm:

$ cpan -C Some::Module 

No sé de nada que le mostrará el archivo de cambios en una vez para todos los módulos obsoletos. Eso probablemente sería un desastre en la terminal. Usted puede ser capaz de improvisar algo con el interruptor -O:

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

Eso es poco $. > 9 está ahí para saltar la salida CPAN.pm y la cabecera de la tabla. Es feo seguro.

Si desea hacer algo más elegante, puede hacer que la última parte de la tubería se ejecute alguna secuencia de comandos individualmente y guardar el resultado en un archivo. Pon todos los archivos en un directorio de Cambios y Bob es tu tío. Eso es mucho más trabajo de lo que me importa hacer. Simplemente actualizo las cosas y miro los cambios más tarde si algo se rompe.

+0

Gracias, echaba de menos la bandera -C como yo siempre uso la cáscara, y no está expuesto como un comando allí. Eso debería ser fácil de implementar, tal vez tengo un nuevo proyecto aquí :-) –

+0

Además, estoy de acuerdo en que ver todos los cambios a la vez sería demasiado complicado, solo lo querría para un módulo específico. –

Cuestiones relacionadas