Why not adopt me?
NAME
cpan-outdated-fresh - Indicate out-of-date modules by walking the metacpan releases backwards
VERSION
version 0.001006
SYNOPSIS
cpan-outdated-fresh [--args]
--age TIMESPEC The maximum age for a release (default: 7d)
-a TIMESPEC
--develop Include development releases in output
--devel
--dev
--no-develop Exclude development releases from output (default)
--no-devel
--no-dev
--authorized Show only authorized releases in output (default)
--authed
--no-authorized Show even unauthorized releases in output
--no-authed
TIMESPEC
<int seconds>
<int><multiplier>
multipliers
s = second
m = minute
h = hour
d = day
w = 7 days
M = 31 days
Y = 365 days
DESCRIPTION
This application bears much resemblance to cpan-outdated, but with a few important differences.
MetaCPAN Driven
--dev
supportedTemporal difference comparison.
Temporal difference comparison
One of the big features of using the MetaCPAN
API, is the ability to filter results into a time bracket.
As such, this application can tell you only about updates that happened to things you have installed IF
they've been recently updated.
For instance, one problem I kept facing was this:
$ cpan-outdated
# Broken::Package
$ cpanm Broken::Package
# Broken::Package is broken!
... wait a few days
$ cpan-outdated
# Broken::Package
$ cpanm Broken::Package
# Broken::Package is broken!
... doh
... repeat.
With this app, as soon as Broken::Package
falls outside the age
window, you stop getting told about it.
DU;DC - Didn't Update, Don't Care.
This also has a benefit that if you run it very frequently, you can get a speed boost by narrowing the update window.
$ time
# 12:00
$ cpan-outdated
# install ALL the things
... wait a while
$ time
# 1:00
$ cpan-outdated-fresh -a 1h
# One update
Essentially rewarding you for frequent use by being fast for frequent use.
Downside
Unfortunately, this optimization has a trade-off, namely, it scales very poorly vs time, due to exponential growth.
cpan-outdated
uses 02packages
, which has its limits, and its inefficiencies, but the inefficiencies are effectively constant due to old packages getting pruned from 02packages
as newer versions replace them.
So:
cpan-outdated-fresh -a 30d
Will take substantially more time to execute than
cpan-outdated
We've tried to combat this by trimming some cycles, but they may still prove over-zealous.
However, this approach is still going to give you --dev
results that cpan-outdated
can't deliver.
SEE ALSO
AUTHOR
Kent Fredric <kentnl@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.