package App::lcpan::Manual::Cookbook;

# AUTHORITY
# DATE
our $DIST = 'App-lcpan-Manual'; # DIST
# VERSION

1;
# ABSTRACT: App::lcpan cookbook

__END__

=pod

=encoding UTF-8

=head1 NAME

App::lcpan::Manual::Cookbook - App::lcpan cookbook

=head1 VERSION

version 1.065.000

=head1 DESCRIPTION

Items relevant to CPAN authors are tagged with C<[author]>.

=head1 QUERYING AUTHORS

=head2 Listing recent authors

TODO.

=head2 Sampling some random authors (1.063+)

 % lcpan authors    --random --result-limit 100
 % lcpan authors -l --random --result-limit 100

=head1 QUERYING DEPENDENCIES

=head2 Checking if you currently specify a dependency to a "non-existing" (unindexed) module in one of your distributions [author] [item-dep-1]

 % lcpan deps-unindexed --dist-author YOUR-CPAN-ID

This requires you installing L<App::lcpan::CmdBundle::deps>.

A "non-existing" module simply means that the module (the dependency) is not
currently listed in F<02packages.details.txt.gz>. The dependency could be
mispelled. Or the module has been purged from CPAN, either accidentally or
deliberately. Or PAUSE index was momentarily incomplete or corrupt (this happens
from time to time). In this case, if you happen to maintain the module yourself,
you can request a PAUSE reindex ("pause reindex" if using L<pause>).

=head2 Checking if your distribution depends on a non-core Perl module [author]

 % lcpan deps YOUR-DIST --exclude-core

=head2 Checking if your distribution depends on a "non-existing" (unindexed) module [author]

 % lcpan deps YOUR-DIST --exclude-indexed

See also: [item-dep-1].

=head2 Checking if your distribution specifies a circular dependency

TODO.

=head2 Finding out if there is any broken prerequisites specified by one of your distributions [author]

To find out which prerequisites that your distributions specify but are
currently not indexed (i.e. probably cannot be installed by users):

 % lcpan author-deps YOUR-CPAN-ID --broken --dont-uniquify

=head2 Listing distributions of other CPAN authors that depend on one of your modules [author]

    % lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID

=head2 Listing distributions of other CPAN authors that recently depend on one of your modules [author]

    # Show dependencies that were added in the last 2 weeks
    % lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID --added-since '2 weeks ago'

    # Show dependencies that were updated in the last 2 weeks
    % lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID --updated-since '2 weeks ago'

    # Show dependencies that were not present before your last 'lcpan update'
    % lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID --added-in-last-update

=head2 Showing what other distributions you will have to download and install when you install a module

TODO.

=head1 QUERYING DISTRIBUTIONS

=head2 Listing recent distributions

TODO

=head2 Sampling some random distributions (1.063+)

 % lcpan dists    --random --result-limit 100
 % lcpan dists -l --random --result-limit 100

=head1 QUERYING MENTIONS

=head2 Finding out who (which script's or module's POD) mentions your module [author]

 % lcpan mentions-for-mod YOUR-MODULE

=head2 Finding out who (which script's or module's POD) mentions your script [author]

 % lcpan mentions-for-script YOUR-SCRIPT

=head1 QUERYING MODULES

=head2 Comparing version of installed modules vs local CPAN versions

 % lcpan ver-cmp-installed
 % lcpan ver-cmp-installed --older-than-db                ;# outdated modules (modules that need to be updated)
 % lcpan ver-cmp-installed --older-than-db --exclude-core ;# noncore outdated modules (noncore modules that need to be updated)

The C<ver-cmp-installed> subcommand is distributed in
L<App::lcpan::CmdBundle::ver>.

This can also be done using tools like L<cpan-outdated> (from
L<App::cpanoutdated>) or L<cpan-outdated-coro> (from
L<App::cpanoutdated::coro>).

To update outdated modules:

 % lcpan-ver-cmp-installed --older-than-db | td select module | lcpanm -n

L<td> is provided by L<App::td>.

=head2 Listing recent modules

    # Show modules that were added in the last 2 weeks
    % lcpan mods -l --added-since '2 weeks ago'

    # Show modules that were updated in the last 2 weeks
    % lcpan mods -l --updated-since '2 weeks ago'

    # Show modules that were not present before the last 'lcpan update'
    % lcpan mods -l --added-in-last-index-update

There's also C<lcpan whatsnew>.

=head2 Sampling some random modules (1.063+)

 % lcpan mods    --random --result-limit 100
 % lcpan mods -l --random --result-limit 100

=head2 Showing related modules

You like L<Sub::Exporter> and wonder what other modules might be similar or
related to it:

    % lcpan related-mods Sub::Exporter

The C<related-mods> subcommand uses the degree of being mentioned together as a
proxy for relatedness. If you want to see in which POD documents the module and
related module are being mentioned together, you can add `--with-content-paths`
option.

=head1 QUERYING RELEASES

=head2 Listing recent releases

TODO.

=head2 Sampling some random releases (1.063+)

 % lcpan rels    --random --result-limit 100
 % lcpan rels -l --random --result-limit 100

=head1 AUTHOR

perlancar <perlancar@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2021, 2020 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
