1.071   2022-09-19  Released-By: PERLANCAR; Urgency: medium

        - Disable saving old file/module/script records for now, because of
          current lack of handling of duplicates.

        - Add subcommands: author-mods-by-rdep-count (which is just a shortcut
          for mods-by-rdep-count, author-mods-by-other-author-rdep-count,
          delete-old-data, related-authors, .

        - [ux] Provide summaries for most completion answers.

        - [doc][subcommand related-mods] Add note about the downside of the
          approach used.

        - Add common option: --no-update-db-schema.

        - [subcommand mods-by-rdep-count] Replace --author arg to
          --module-author, --module-author-isnt, --dist-author,

1.070_001  2022-05-07  Released-By: PERLANCAR; Urgency: medium

           - [experimental] Retain historical records for tables file, module,
             script (in old_file, old_module, old_script respectively). This
             will be used to give more correct results with things like
             'whatsnew'. Usually when a file is deleted, i.e. no longer
             mentioned in the index, e.g. Foo-Bar-0.001.tar.gz which contains
             module 'Foo::Bar' and script 'foo', some records like the 'foo'
             script belonging to the file record are deleted along with it. Then
             when a new file for the same distribution is added in the index,
             e.g. Foo-Bar-0.002.tar.gz (which still contains the same 'Foo::Bar'
             module and 'foo' script), the script record and some other records
             are re-added to the lcpan index. This means lcpan sees the script
             as new, when it's actually not. We now store old module record as
             well as file and script records to old_* tables so we will be able
             to know whether a distribution, module, or script is actually new
             or just updated. But note that the last part has not been coded in

1.070   2022-03-27  Released-By: PERLANCAR; Urgency: medium

        - Add subcommand: dists-by-mod-count.

1.069   2022-03-27  Released-By: PERLANCAR; Urgency: medium

        - Add proper rank column to ranking subcommands (*-by-*count).

        - Add subcommands: db-path, dists-by-script-count,

1.068   2021-06-05  Released-By: PERLANCAR; Urgency: medium

	- [ux] [doc] Add description and cross-mention between mentions-for-mods
	  and mentions-for-all-mods.

        - [build] Rebuild to bump dependency version to attempt to fix

1.067   2021-06-03  Released-By: PERLANCAR; Urgency: medium

	- [subcommand related-mods] Add option --(no-)submodules.

1.066   2021-05-31  Released-By: PERLANCAR; Urgency: medium

	- [subcommand rdeps] Accept option --dist.

	- [subcommand deps] Accept option --module.

1.065   2021-05-25  Released-By: PERLANCAR; Urgency: medium

	- [subcommand rdeps] Allow finding revdeps for unindexed modules
	  (this is already in the database, we just need to give it to

1.064   2021-04-21  Released-By: PERLANCAR; Urgency: medium

	- [subcommand related-mods] Add option: --with-content-paths.

1.063   2021-02-13  Released-By: PERLANCAR; Urgency: medium

	[subcommand authors]

	- Add options --sort, --result-limit, --result-start, --random.

	[subcommands dists, mods, rels]

        - Add options --random, --result-limit, --result-start.

	[subcommand rdeps-scripts]

        - Add option --author.

1.062   2020-08-13  Released-By: PERLANCAR; Urgency: medium

	- [bugfix] Fix completion of whatsnew's --my-author.

	[subcommand update]

        - Add retrying and retry options: retry_max_attempts, retry_delay.

        - We now use LWP::UserAgent::Plugin.

1.061   2020-06-11  Released-By: PERLANCAR; Urgency: medium

	[subcommand mentions]

        - Add --{added,updated,added-or-updated-}-* options.

	[subcommand whatsnew]

        - Show new mentions for you.

1.060   2020-06-11  Released-By: PERLANCAR; Urgency: medium

	- [bugfix] Fix author-deps & author-rdeps which didn't apply the
	  {added,updated,added_or_updated}_since filter to the correct
	  entity (to module/dist instead of dep).

	- [bugfix] Fix typo that caused --added-since-last-n-index-updates
	  to not work.

	[subcommand whatsnew]

        - Add --my-author option to show additional added/updated items related
	  to you.

1.059   2020-06-10  Released-By: PERLANCAR; Urgency: medium

	- The --updated-since X option now does not include records created at
	  X, to avoid duplication when viewing new records as well as updated
	  records in the same time (e.g. in whatsnew).

	[subcommand deps]

        - [ux] Delete module_file_id from results.

1.058   2020-05-26  Released-By: PERLANCAR; Urgency: medium

	- [incompatible change] Add/replace/rename/remove ctime/mtime
	  options: remove --{added,updated}-before, replace
	  --{added,updated}-after with --{added,updated}-since, rename
	  --{added,updated}-in-last-update to
	  --{added,updated}-since-last-index-update, rename
	  --{added,updated}-in-last-n-updates to
	  --{added,updated}-since-last-n-index-updates, add
	  --added-or-updated-since* options.

        - Add some subcommands: most-depended-mods, most-mentioned-mods,
          most-mentioned-scripts, whatsnew, heaviest-dists.

        - Add option -n to mods-by-mention-count, mods-by-rdep-count,
	  scripts-by-mention-count, dists-by-dep-count.

	[subcommand scripts-by-mention-count]

        - Return author.

	- Add subcommand: heaviest-dists.

        [subcommand dists-by-dep-count]

	- [bugfix]Fix query, dependency count was incorrect (all 1).

1.057   2020-05-07  Released-By: PERLANCAR; Urgency: high

	- [bugfix] Fix several misplaced parameters in SQL update query which
	  caused module & script abstract as well as distro information to not
	  be set. This version will bump database schema version to v15 which
	  will reset the database for reindexing.

        - [enhancement] Aside from full reindexing, the database schema is also
          changed. We now remove the 'dist' table and merge the information to
          'file' table for simplicity. 'dist' has a 1:1 relattonship with 'file'
          anyway. The 'file' table now adds several columns to store distro
          information: dist_name, dist_abstract, dist_version, and

        - [subcommand deps] The subcommand can now show dependencies of older
          distros, as long as it's still indexed in 02packages. Use this syntax:
          'lcpan deps Foo-Bar@1.23' to show dependencies of a specific version.
          Otherwise, without the version suffix, dependencies of the latest
          Foo-Bar will be shown.

	- [bugfix] Fix regex to catch META.json or META.yml on top-level
	  dir, which has path 'META.yml' instead of '/META.yml'.

	- [subcommand update][bugfix] Update authors or deleted authors were not
	  reflected in the author table.

        - [subcommand dist2author][bugfix] Didn't return author name when there
          is only one input dist.

        - [testing] Add more tests which uncovered a few other bugs, some listed

1.056   2020-05-06  Released-By: PERLANCAR; Urgency: medium

	- [testing] Avoid error when testing database schema version upgrades.

1.055   2020-05-06  Released-By: PERLANCAR; Urgency: medium

	- [testing] Add some basic tests, finally.

1.054   2020-05-06  Released-By: PERLANCAR; Urgency: medium

	- [bugfix] Fix typo in translating --updated-in-last-update.

        - Add convenience options --{added,updated}-in-last-n-updates=n.

	- [subcommand log] Reorder lcpan_version column.

1.053   2020-05-05  Released-By: PERLANCAR; Urgency: medium

	- Bump database schema version to v14 to add 'log' table.

	- [subcommand reset] Reset index_creation_time metadata, add

        - [subcommand update][bugfix] Mark files that we skip sub indexing for,
          so we don't re-process them again and again.

        - Add convenience options --added-in-last-update,

        - [subcommand author-rdeps] Add --{added,updated}-* options.

1.052   2020-05-04  Released-By: PERLANCAR; Urgency: medium

	- Bump database schema version to v13 to add rec_mtime and rec_mtime to
	  all tables. Recording ctime and mtime will allow users to check for
	  newly added/updated authors, distributions, modules, and so on.

        - Add filter options --added-{before,after} & --updated-{before,after}
          to some subcommands.

	- Record index creation time and show it in 'stats'.

1.051   2020-04-20  Released-By: PERLANCAR; Urgency: medium

	- Add unique indexes for PK which apparently are not added for tables
	  that have other unique indexes (bump database schema version to v12).

1.050   2020-04-19  Released-By: PERLANCAR; Urgency: medium

	- [subcommand deps] Fix query: do not link queries using dist_id +
	  is_latest because there might be several dists/releases for the same
	  module; use dist name instead.

	- [subcommand rdeps] Like deps, fix query by linking using module
	  name instead of module ID.

	- Remove App::lcpan::Manual::Cookbook (now in App-lcpan-Manual).

1.049   2020-04-11  Released-By: PERLANCAR; Urgency: high

	- [bugfix] A logic bug in --dont-uniquify option broke deps & rdeps

1.048   2020-04-11  Released-By: PERLANCAR; Urgency: medium; Broken: yes

        - UPDATE: this release was broken, fixed in 1.048.

	- Bump database schema version to v11 to add some indices on dep

	- [subcommands deps, rdeps] Add option --dont-uniquify.

1.047   2020-04-11  Released-By: PERLANCAR; Urgency: medium

        - [doc] Mention App::lcpan::Manual.

	[subcommand deps]

	- 'perl' is considered registered even though it does not have 'author'.

        - Rename options --{include,exclude}-{,un}registered to *{,un}indexed*
          to be more consistent with PAUSE/CPAN terminology.

	[subcommand rdeps-scripts]

        - Add --level (-R).

	[subcommand author-deps]

        - Add description & examples.

1.047   2020-04-11  Released-By: PERLANCAR; Urgency: medium

        [subcommand deps]

        - [Incompatible change] deps: Rename --{include,exclude}-{,un}registered
          options to --{include,exclude}-{,un}indexed to be more consistent with
          PAUSE/CPAN terminology.

1.046   2020-04-04  Released-By: PERLANCAR; Urgency: medium

	- Add subcommand: rdeps-scripts.

        [subcommand dist-scripts]

        - Accept multiple dists.

	[subcommand rdeps]

        - Add --flatten like in deps.

1.045   2020-03-04  Released-By: PERLANCAR; Urgency: medium

	- Add options: skip_sub_indexing_files,

	- Add Bencher-Scenarios-HashSlicing-0.003.tar.gz to built-in skip
	  list for sub indexing (eats memory).

1.044   2020-02-13  Released-By: PERLANCAR; Urgency: low

	- Add subcommand: x-mentions-for-mod.

	- [internal] Replace PERLANCAR::Module::List with Module::List::Tiny.

	[subcommand mods]

        - Tweak schema of 'namespaces' argument for better tab completion.

1.043   2019-11-29  Released-By: PERLANCAR; Urgency: medium

	- Add subcommand: dist-rdeps.

	[subcommand deps]

        - Add --{include,exclude}-{,un}registered options. UPDATE 2020-04-11: In
          1.047, these options are now renamed to
          --{include,exclude}-{,un}indexed to be consistent with PAUSE/CPAN

        [subcommand related-mods]

	- [bugfix] Connect as ro, not rw.

1.042   2019-11-19  Released-By: PERLANCAR; Urgency: medium

	- Add subcommands: author, dist, mod/module, rel/release, script.

1.041   2019-10-05  Released-By: PERLANCAR; Urgency: medium

	- [bugfix] Typo in variable package name, causing shown total
	  downloaded data to be 0.

1.040   2019-10-05  Released-By: PERLANCAR; Urgency: medium

	- [ux] Show total downloaded data after mirroring.

1.039   2019-09-19  Released-By: PERLANCAR; Urgency: medium

	- Make %rdeps_level_args available from another package.

1.038   2019-08-01  Released-By: PERLANCAR; Urgency: low

	- Add %pods_args.

	- Tweak Rinci metadata: rename greedy -> slurpy.

1.037   2019-07-23  Released-By: PERLANCAR; Urgency: high

	- Add to builtin skip list: Shipment-3.02.tar.gz (segfaults
          Compiler::Lexer 0.22).

1.036   2019-07-11  Released-By: PERLANCAR; Urgency: medium

	[subcommands mods, dists, authors, rels, namespaces]

        - Add --query-type regexp-name (-r).

	- [ux][completion] Show full names as summaries when completing
	  CPAN IDs.

1.035   2019-06-26  Released-By: PERLANCAR

	- [ux] Show completion message/hint when user hasn't typed any
	  characters, instead of just returning empty answer.

1.034   2019-06-19  Released-By: PERLANCAR

	- Add script: lcpanm-namespace.

1.033   2019-06-07  Released-By: PERLANCAR

        - Add --self-upgrade (-U).

	- [doc] Update current CPAN mini size estimation.

	- [doc] Mention CPAN::SQLite & CPAN::Mini in See Also.

1.032   2019-01-09  Released-By: PERLANCAR

	- Add subcommand: extract-dist.

1.031   2019-01-08  Released-By: PERLANCAR

	- Add option --no-use-bootstrap to prevent using bootstrap database
	  (e.g. when indexing a darkpan, or when debugging).

1.030   2019-01-07  Released-By: PERLANCAR

	- No functional changes.

	- Forgot to check in documentation update to script/lcpan about
	  using the bootstrap.

1.029   2019-01-07  Released-By: PERLANCAR

	- Utilize bootstrap database (provided by App-lcpan-Bootstrap
	  distribution) if available.

	[subcommand scripts]

        - [ux] Add shortcut option -n (for --query-type name) and -x (for
          --query-type exact-name), just like in mods.

1.028   2018-11-29  Released-By: PERLANCAR

	- Add option: skip_index_file_patterns.

1.027   2018-11-27  Released-By: PERLANCAR

	- When log level is error or lower (--quiet), silence minicpan with

1.026   2018-09-08  Released-By: PERLANCAR

	- No functional changes.

	- [doc] Updates, grammar fixes, and rewording.

1.025   2018-09-07  Released-By: PERLANCAR

	- [internal][bugfix] Fix variable name in %authors_args.

1.024   2018-09-07  Released-By: PERLANCAR

	- [internal] Add variable '%authors_args'.

1.023   2018-06-21  Released-By: PERLANCAR

	- Locate index solely using index_name if index_name contains path
	  separator character.

1.022   2018-02-08  Released-By: PERLANCAR

	- [Bugfix] Make log level overridable from environment variable,
	  e.g. TRACE=1.

1.021   2018-02-08  Released-By: PERLANCAR

	- Add to builtin skip list: Shipment-3.01.tar.gz (segfaults
	  Compiler::Lexer 0.22).

1.020   2018-01-15  Released-By: PERLANCAR

	- lcpanm, lcpanm-script: Observe LCPANM_PERL5OPT.

        - Switch from Log::Any to Log::ger.

1.019   2017-06-19  Released-By: PERLANCAR

        - No functional changes.

        - Replace Log::Any with Log::ger.

1.018   2017-06-17  Released-By: PERLANCAR

	- Add script: lcpanm-script.

1.017   2017-02-03  Released-By: PERLANCAR

	- Typo.

1.016   2017-02-02  Released-By: PERLANCAR

	- [dist] Update copyright year.

        - Add argument: modules_or_dists.

1.015   2017-01-19  Released-By: PERLANCAR

	- Add subcommand: dist-meta.

1.014   2016-12-28  Released-By: PERLANCAR

	- [Bugfix] Prefer getting META from META.json over META.yml (e.g. to get
	  x_* prereqs). A full reindex is recommended (`lcpan reset` follows by
	  `lcpan update`).

	- Add subcommand: delete-rel.

1.013   2016-12-28  Released-By: PERLANCAR

	- [dist] Fix expressing follow-spec prereq relationship with

	- Allow phase and rel with values /^x_/.

1.012   2016-11-01  Released-By: PERLANCAR

        [subcommand related-mods]

        - [ux] Instead of specifying min_score, let users just specify number of
          result they want; hide score-related fields by default in result
          unless user specifies --with-scores.

1.011   2016-10-14  Released-By: PERLANCAR

	[subcommand authors-by-rdep-count]

        - [bugfix] Fix SQL again, derp (didn't really count the number of dists).

1.010   2016-10-14  Released-By: PERLANCAR

        - [doc] Add Synopsis and Description for lcpanm.

        [subcommand authors-by-rdep-count]

        - [bugfix] Fix SQL which caused duplicated author rows, include author
          name in the result, only count latest distributions, add options

1.009   2016-10-09  Released-By: PERLANCAR

	[subcommand stats-last-index-time]

        - Return CPAN mirror information (path and index name) to be more useful
	  for CLI users.

1.008   2016-10-08  Released-By: PERLANCAR

	- Make it work when SetEnv dzil plugin is used.

1.007   2016-10-07  Released-By: PERLANCAR

        - [Bugfix] Trap POD parsing errors to avoid dying (thanks Norbert
          Csongradi) [GH#1] [GH#2].

1.006   2016-09-25  Released-By: PERLANCAR

	- Add subcommand: inject.

	- [ux] No need to warn that 'perl' and 'Config' does not have dist

1.005   2016-09-06  Released-By: PERLANCAR

	- D'oh, screwed up last commit.

1.004   2016-09-06  Released-By: PERLANCAR

	- Add to builtin skip list: Shipment-2.03.tar.gz (segfaults
	  Compiler::Lexer 0.22).

	- Add subcommands: dist-contents, mod-contents.

1.003   2016-08-18  Released-By: PERLANCAR

	- No functional changes.

	- Add to builtin skip list: App-IndonesianBankingUtils-0.07.tar.gz
	  (segfaults at phase 3/3).

1.002   2016-08-11  Released-By: PERLANCAR

	- When checking if a module is core (using
	  Module::CoreList::More->is_still_core), use version=0 instead of the
	  currently indexed version. Using currently indexed version might
	  result in a false negative for dual-life modules that has a newer
	  release on CPAN. For example, as of this writing, for List::Util the
	  currently indexed version is 1.42. If we use perl 5.22.2 as the base,
	  it only has 1.41. Thus, is_still_core("List::Util", "1.42", 5.022002)
	  returns false. While we generally want it to return true. So now we
	  use is_still_core("List::Util", undef, 5.022002).

	- [ux] Tweak completion: enable path-mode in --index-name.

	- [ux] Tweak wording in log when skipping, show the word 'reason:'.

1.001   2016-07-20  Released-By: PERLANCAR

	- Use more specific schemas (e.g. perl::distname, perl::modname,
	  dirname, filename instead of just str) to get coercion rules
	  benefits, e.g. now you can say 'lcpan dist-scripts App::MTPUtils'
	  and it will be normalized to 'lcpan dist-scripts App-MTPUtils'.

	- [Internal] Change builtin skip list from array to hash to store
	  reason, and show the reason in the log.

1.000   2016-06-29  Released-By: PERLANCAR

	- No functional changes.

	- Bump version to 1.000 to get 3 digits of minor version number.

        - Add to builtin skip list: Shipment-2.02.tar.gz (segfaults
	  Compiler::Lexer 0.22).

0.89    2016-06-24  Released-By: PERLANCAR

	- No functional changes.

	- Add to builtin skip list: Shipment-2.01.tar.gz (segfaults
	  Compiler::Lexer 0.22).

0.88    2016-06-21  Released-By: PERLANCAR

	- [ux] Format time for some subcommands.

0.87    2016-05-25  Released-By: PERLANCAR

	- Try setting cache_size to 400000 (400MB), the default is 2MB.

	- Update to Data::Sah 0.76+ (date/duration by default now already
	  coerces to floats).

0.86    2016-04-15  Released-By: PERLANCAR

	- [Bugfix] Fix misnumbering in log statement because we 'next'
	  before incrementing counter.

	- Add subcommand: src.

	[subcommand doc]

        - Also page --raw result.

0.85    2016-03-17  Released-By: PERLANCAR

	- changes: Allow specifying script name in addition to module/dist.

0.84    2016-03-12  Released-By: PERLANCAR

	- [Bug fixes] Some fixes for subcommand 'changes'.

        - [ux] Tweak completion for module names (allow / as path separator).

0.83    2016-03-12  Released-By: PERLANCAR

	- Add subcommand: changes.

0.82    2016-03-10  Released-By: PERLANCAR

        - Add subcommand: mentions-for-all-mods.

        - [ux] [subcommand mods] Add shortcut options -x (for
          --query-type=exact-name), -n (for --query-type=name), -N (for

        - [ux] [subcommands authors, dists, rels] Also add shortcut options -x &

        - [ux] [completion] [subcommands mods, dists, authors, rels] Do
          completion on query when query type is exact name.

        - [ux] [completion] Don't do completion when word is empty, to avoid
          slow response.

0.81    2016-03-02  Released-By: PERLANCAR

	- [subcommand doc] Encoding fixes (use pod2man -u option).

	- [subcommand related-mods] Add option --skip-same-dist.

	- Use Rinci 1.1.79's cmdline_src=stdin_or_args to allow subcommands
	  like 'mods' to get arguments from stdin, e.g. 'cpan-outdated -p |
	  lcpan mod2dist'.

0.80    2016-02-25  Released-By: PERLANCAR


        - Add subcommands: mentions-by-mod, mentions-by-script,
          mentions-for-mod, mentions-for-script, author-deps,
          author-deps-by-dependent-count, deps-by-dependent-count.

	- [subcommand mods] Add options --include-core, --include-noncore.

	- [subcommand deps] Add options --module-author, --module-author-isnt,
	--include-noncore; various small fixes.

        - [ux] Set default log level to 'info' (verbose) so 'lcpan update' by
          default can see indexing process.

	[Bug fixes]

        - Fix a typo in SQL.

	[Incompatible changes]

        - Rename subcommand distmods -> dist-mods, distscripts ->


        - [subcommand deps] Assume 'perl' is a core dependency instead of

0.79    2016-02-19  Released-By: PERLANCAR

	- Add subcommand: related-mods.

	- [Optimization] mentions: No need to include both clause when
	  type=known-module or type=unknown-module.

	- [subcommand mentions] Allow multiple
	  --mentioned-{module,script,author}, add options

0.78    2016-02-17  Released-By: PERLANCAR

        [Bug fixes]

        - Fix indexing of content. Previously content mode (>777) was used to
          skip directory, this is wrong so some (many?) content were not
          indexed. It is now fixed and we force a reindex of

        - [subcommand dists] Forgot to update field name.

        - [subcommand dists] fix Rinci argument specification for 'sort'.


        - Indexing of subroutines. Currently basic (only subroutine name and
          source line number are indexed). I plan to add include more
          information e.g. type (whether subroutine is a method, static method,
          function), argument list (either from POD or subroutine signature),
          summary (from POD). Also planned is support for Mo/Moo/Moose/Mouse and
          the indexing of classes/roles, attributes. Since this is experimental,
          it's not enabled by default. To index subroutines, you'll have to add
          '--no-skip-sub-indexing' option during 'lcpan update'. It increases
          index size to ~360M on current mini CPAN.

        - Bump database schema version to v10 to support subroutine indexing and
          force reindexing of content/script/mention.


        - New subcommands: sub, subs-by-count, script2author, mod2author,

0.77    2016-02-17  Released-By: PERLANCAR

	- No functional changes.

	- [Bugfix] [subcommand mods] fix Rinci argument specification for

0.76    2016-02-16  Released-By: PERLANCAR

	- [Bugfix] [subcommand dists] release name was shown instead of size in
	  rel_size result field.

0.75    2016-02-16  Released-By: PERLANCAR

	- [subcommand dists] Add options --sort, --rel-mtime-newer-than.

0.74    2016-02-16  Released-By: PERLANCAR

        - Add subcommand: stats-last-index-time. This is a faster version of
          'stats' for App::lcpan::Call by only returning the result that is

        - [subcommand stats] Add total_filesize.

        - [subcommand doc] Add option --html to open browser and show the HTML

0.73    2016-02-14  Released-By: PERLANCAR

	- [subcommand doc] Search .pod using content path to be able to show POD
	  when there is no package declaration in the .pod.

0.72    2016-02-14  Released-By: PERLANCAR

        - [Bugfix] [subcommand doc] Fix SQL error when name contains

        - [subcommand mods] Add result field rel_mtime.

        - [subcommand rels] Add option --no-path.

0.71    2016-02-12  Released-By: PERLANCAR

	- No functional changes.

	- 2nd attempt to workaround PAUSE indexer mistakenly detects a
	  package declaration.

0.70    2016-02-12  Released-By: PERLANCAR

	- No functional changes.

	- Workaround package declaration false positive from PAUSE indexer.

0.69    2016-02-12  Released-By: PERLANCAR

        - Bump database schema version to v9 (add index for 'package' field in
          'content' table).

        - New subcommands: doc, script2mod, copy-script, extract-script,

        - [subcommand script2dist] Add option --all.

        - [subcommand script2rel] Accept multiple arguments.

        - [subcommand dists] Add options --sort, --has-multiple-rels.

        - [subcommands authors-by-*] Add percentage result field.

        - [subcommand contents] Add option --package.

0.68    2016-02-11  Released-By: PERLANCAR

        - Skip files that cannot be extracted from pass 2 of files processing.

        - Add subcommands: mods-by-mention-count, scripts-by-mention-count,
          script2dist, script2rel.

0.67    2016-02-11  Released-By: PERLANCAR

        - [Bugfix] Previous version was broken (a SQL error when updating

        - Bump database schema version to v8. We are now indexing more stuffs:
          mtime/size of files, content of files  Released-By: files inside release files
          along with their mtime/uncompressed size, scripts. We also parse PODs
          of module/script files inside each release files, so we now record the
          abstract of each module/script, and mentions/references of modules &
          scripts in POD of modules/scripts. Note that size of index (index.db)
          now increases from ~60M to ~250M.

        - This version forces a full reindex.

        - New subcommands: contents, scripts, mentions, authors-by-script-count,
          authors-by-mod-mention-count, scripts-from-same-dist, distscripts,
          author-scripts. UPDATE 2016-02-20: distscripts now renamed to

0.66    2016-02-07  Released-By: PERLANCAR

        - [Bugfix] file should be indexed by (cpanid,name) not (name) because
          PAUSE allows two authors to have the same filename.

        - Bump database schema version to v7 due to the above fix.

        - [Incompatible change] [subcommand deps] Change default --include-core
          to 1.

        - [subcommands copy_*, extract_*]: Check that release file exists.

0.65    2016-01-23  Released-By: PERLANCAR

	- [Bugfix] [subcommand deps] Dependency to unindexed modules was not

	- Use authors/00whois.xml (produced by e.g. OrePAN) when
	  authors/01mailrc.txt.gz does not exist.

	- [doc] Update mini CPAN current size.

	- [subcommand mods] [ux] Complete namespace.

0.64    2016-01-16  Released-By: PERLANCAR

        - Adjust so we can be used like a daemon.

        - [Bugfix] mod2dist: Used wrong database result field.

        - [Bugfix] releases: Used wrong result field.

        - [doc] Update information about mini CPAN current size.

0.63    2016-01-06  Released-By: PERLANCAR

	- [Bugfix] Propagate error from _update_index().

	- Add safety code to bail out when indexer_version is newer than
	  current version, remove old code.

0.62    2016-01-04  Released-By: PERLANCAR

	- [subcommand mods] Allow specifying multiple namespaces.

0.61    2015-12-31  Released-By: PERLANCAR

        - No functional changes.

        - [build] Rebuild with updated PWR:DumpPerinciCmdLineScript (0.04) which
          lets us avoid extraneous subcommands from being included in the
          bin/lcpan's POD.

0.60    2015-12-25  Released-By: PERLANCAR; Message: It's *this* Christmas!

	- Replace --exact-match with the more general --query-type to be
	  able to search certain fields only or exact match on certain
	  fields only.

	- [subcommand deps] Add option --flatten when doing recursive.

	- [internal] Replace 'format_options' result metadata with the simpler

	- Bump prereq version Log::Any::IfLOG to 0.07.

0.59    2015-12-07  Released-By: PERLANCAR

        - No functional changes.

        - [Build] [Bugfix] Don't include subcommand modules outside of our dist
          when building with dzil, because we'll document and depend on
          extraneous subcommands/modules [CT].

0.58    2015-12-07  Released-By: PERLANCAR

	- [subcommand mods-by-rdep-count] [ux] Allow lowercase names in author

	- [Incompatible change] Rename subcommands author{rdeps,mods,rels,dists}
	  to author-{rdeps,mods,rels,dists} to be more consistent. It's
	  recommended that you first uninstall the old version (e.g. using
	  'pm-uninstall' or 'pmuninst') before installing this version, to clean
	  up old names.

0.57    2015-11-22  Released-By: PERLANCAR

	- No functional changes.

	- [doc] Don't show large results in example.

0.56    2015-11-21  Released-By: PERLANCAR

	- [subcommand stats] Add num_authors_with_releases.

	- [dist] Bump version of IPC::System::Options to fixed 0.22

0.55    2015-10-20  Released-By: PERLANCAR

	- [subcommand deps] Add --with-xs-or-pp to show dependency is XS/PP.

	- Warn about modules that don't have dist ID.

	- Avoid perl undef warning.

0.54    2015-10-09  Released-By: PERLANCAR

	- Add convenience commands: copy-rel & copy-mod.

0.53    2015-09-17  Released-By: PERLANCAR

	- No functional changes.

	- Adjust to Complete::Util 0.36 (complete_file() split to

0.52    2015-09-09  Released-By: PERLANCAR

	- No functional changes.

	- [dist] Remove prereq: Complete because it is not directly used.

0.51    2015-09-03  Released-By: PERLANCAR

	- No functional changes.

	- [dist] Move spec prereqs from RuntimeRequires to
	  DevelopRecommends to reduce deps but still allow indicating spec

0.50    2015-08-11  Released-By: PERLANCAR

	- No functional changes.

	- Shave about 6ms of startup time (56ms -> 50ms) when doing completion,
	  by delay-loading POSIX and avoiding experimental (+Carp) in App::lcpan
	  as well as in Perinci::Sub::Complete and Complete::Util.

0.49    2015-08-11  Released-By: PERLANCAR

	- No functional changes.

	- Shave about 8ms of startup time (64ms -> 56ms) when doing completion,
	  by replacing Log::Any with Log::Any::IfLOG.

0.48    2015-08-11  Released-By: PERLANCAR

	- Save about 10ms of startup time (74ms -> 64ms) when doing completion,
	  by replacing Module:List with PERLANCAR::Module::List.

	- [Bugfix] Avoid SQL error when there are nulls in IN(...) clause.

0.47    2015-07-27  Released-By: PERLANCAR

	- [ux] Show local/remote size which exceeds size.

0.46    2015-07-02  Released-By: PERLANCAR

        - [ux] Add alias -l for --detail (like in ls).

        - [ux] namespaces: Remove alias -l for --level, because we want -l to
          mean --detail in all subcommands  Released-By: like in ls

0.45    2015-07-02  Released-By: PERLANCAR

        - Add subcommand: reset.

        - [subcommand update] Add options --skip-index-file (-F),

        - Don't assume an empty indexer_version in meta table to mean reindex
          from scratch. It might be that the current version fails/crashes in
          the middle while indexing.

0.44    2015-07-02  Released-By: PERLANCAR

	- [Bugfix] Fix deleting old file records (forgot to $sth->execute,
	  forgot to delete records in file table).

0.43    2015-07-01  Released-By: PERLANCAR

        - [subcommands modst, dists, authors, rels, namespaces] Change multiple
          query to have AND logic instead of OR, and provide --or switch.

0.42    2015-06-28  Released-By: PERLANCAR

        - Add subcommand 'rels' as alias for 'releases' (for consistency, the
          term 'rels' and not 'release'/'releases' is used in all other
          subcommand names).

        - [subcommands mods, dists, authors, rels, namespaces] Accept multiple
          queries, add option --exact-match. This way, you can use the
          subcommand to list several things of certain names.

        - [Bugfix] Fix namespace matching (previously --namespace Win32 would
          also match Win32API).

0.41    2015-06-17  Released-By: PERLANCAR

	- [Bugfix] authorrdeps: Fix completion for --user-author-{is,isnt}.
          UPDATE: Renamed to author-rdeps in 0.58.

	- [Bugfix] modules: Forgot to give default SQL order.

	- Add FAQ item about seeing SQL queries.

0.40    2015-06-16  Released-By: PERLANCAR

	- Add subcommand 'mods' as alias for 'modules' (for consistency, the
          term 'mods' and not 'module'/'modules' is used in all other subcommand

        - [subcommand mods] Add option --sort which allows sorting by name,
          author, as well as rdeps (number of reverse dependencies). This means
          we can show "popular" modules first.

0.39    2015-06-13  Released-By: PERLANCAR

	- Add subcommands for convenience: extract-mod, extract-rel.

0.38    2015-06-10  Released-By: PERLANCAR

	- [Bugfix] Update referenced function name in lcpanm.

0.37    2015-06-09  Released-By: PERLANCAR

        - [dist] Add missing prereq to PerlIO::gzip.

        - [Bugfix] Fix way to use Parse::CPAN::Meta.

        - Replace YAML::XS with core module Parse::CPAN::Meta (thanks ether).

0.36    2015-05-20  Released-By: PERLANCAR

	- [Bugfix] Search for META.json, META.yml, Build.PL, Makefile.PL at
	  the top-level or second-level only, not anywhere.

	- Switch from YAML::Syck to YAML::XS (YAML::Syck can't parse things
	  like '--- # YAML1.0' header).

0.35    2015-05-19  Released-By: PERLANCAR

	- [subcommand dists] Add filtering options

0.34    2015-05-15  Released-By: PERLANCAR

        - [subcommand mod2dist] Accept multiple modules.

        - [subcommand authorrdeps] Add completion for --user-author{,--isnt}.

0.33    2015-04-29  Released-By: PERLANCAR

        - [Bugfix] (update schema) Mixed up 'has_child' and 'num_sep' columns
          when filling the 'namespace' table. So we need to empty and re-fill
          the table.

        - [Bugfix] update: Forgot to update 'namespace' table when adding a new

0.32    2015-04-29  Released-By: PERLANCAR

        - Bump database schema version to v6 (add 'namespace' table). This is
          mostly to help speed up tab completion query when completing module

        - Add subcommand: namespaces.

        - [subcommand modules] Add filter option --namespace.

0.31    2015-04-28  Released-By: PERLANCAR

	- [Bugfix] Don't update dist by name because name is not unique,
	  update by id instead.

0.30    2015-04-26  Released-By: PERLANCAR

        - This version will require full reindex.

        - [Bugfix] When indexing, used wrong dist_id (from last_insert_id())
          when record already exists.

        - [Bugfix] deps, rdeps: Result ordering fixes.

0.29    2015-04-24  Released-By: PERLANCAR

	- [Bugfix] Fix missing dependencies/reverse dependencies information
          when a depended module is updated, this is because we used INSERT OR
          REPLACE {dist,module} which changes module/dist IDs. We should've used
          INSERT or UPDATE. From this new version on we record the module
          version which did the reindexing. We are doing a full reindex when
          indexer <= 0.28.

0.28    2015-04-24  Released-By: PERLANCAR

	- No functional changes.

	- Avoid perl undef warning.

0.27    2015-04-23  Released-By: PERLANCAR

        - [subcommand rdeps] Implement recursive (-l/-R).

        - [subcommand deps] Ordering when in -l/-R mode.

        - [subcommand deps] Optimize query (avoid retrieving module ID's twice
          when in recursive mode).

        - [Bugfix] [subcommand deps] Forget to clone data causing deps --phase &
          --level defaults being reset to 'ALL'.

0.26    2015-04-22  Released-By: PERLANCAR

	- Add phase & rel arguments to rdeps & authorrdeps.

	- Add test: xt/author/sql_schema_versioned.t.

0.25    2015-04-22  Released-By: PERLANCAR

	- [Bugfix] Fix SQL error when creating schema.

0.24    2015-04-21  Released-By: PERLANCAR

	- [subcommand deps] Accept multiple modules, speed up query.

0.23    2015-04-16  Released-By: PERLANCAR

	- Add subcommand: dists-by-dep-count.

	- Add subcommand: authors-by-rdep-count.

	- Remove unnecessary (and unhelpful) package metadata in command
	  modules, module abstract will be retrieved from handle_cmd's
	  metadata anyway.

	- [subcommand mods-by-rdep-count] Add filter options --phase & --rel.

0.22    2015-04-15  Released-By: PERLANCAR

        - [subcommand rdeps] Accept multiple modules.

        - New subcommand: authorrdeps. If you are a CPAN author, this subcommand
          makes it easy to list all distributions that use one of your modules.
          To filter only distributions created by others, just pass
          --user-author-isnt YOURCPANID.

        - New subcommand: mods-by-rdep-count.

0.21    2015-04-15  Released-By: PERLANCAR

        - [Removed feature] Remove separate 'update-files' and 'update-index'
          subcommands, to simplify configuration. Merge options to 'update'

        - Add filter options --include-author, --exclude-author.

0.20    2015-04-15  Released-By: PERLANCAR

	- Bump database schema version to v5 (add column is_latest to dist table
          to ease queries).

        - Allow --nolatest in addition to --latest.

        - Add --latest filter option to 'modules' and 'mods-from-same-dist'

0.19    2015-04-15  Released-By: PERLANCAR

	- Replace Module::CoreList->is_core with

0.18    2015-04-15  Released-By: PERLANCAR

	- [subcommand mods-from-same-dist] Accept multiple modules.

0.17    2015-04-14  Released-By: PERLANCAR

        - Add command: mods-from-same-dist.

        - [subcommand stats] Add raw_mirror_mtime & raw_last_index_time to ease
          scripts calculating freshness.

0.16    2015-04-12  Released-By: PERLANCAR

        - [ux] Rename functions in App::lcpan to match CLI subcommand names
          (e.g. list_local_cpan_authors -> authors) to make codebase easier to

        - Various minor tweaks and fixes.

0.15    2015-04-11  Released-By: PERLANCAR

        - Bump database schema version to v4. This update mainly adds column
          'cpanid' to tables 'module' and 'dist' to speed up queries. This
          version requires a full reindex.

        - [Bugfix] Dependency information were sometimes lost when we update
          mirror and old files information were removed, because we stored
          dependency information on a per-dist basis instead of per-file.

        - Enable authors-by-{mod,rel}-count because the queries are now fast.

        - Add subcommand: authors-by-dist-count.

0.14    2015-04-07  Released-By: PERLANCAR

        - Make subcommands pluggable (App::lcpan::Cmd::*) to prepare for adding
          more/custom subcommands by plugins.

        - Add subcommands authors-by-mod-count & authors-by-rel-count, though
          they are currently disabled by default because the queries are slow
          (100+ secs).

        - [Optimization] update: don't update index if mirrored files do not
          change (done by checking the mtime of

        - Add completion for --index-name.

        - [dist] Rebuild with newer Pod::Weaver::Plugin::Rinci for producing
          Configuration POD section.

0.13    2015-02-26  Released-By: PERLANCAR

	- No functional changes.

	- Forget to tag 'index_name' arg as common arg.

0.12    2015-02-25  Released-By: PERLANCAR

	- [ux] Avoid creating index database automatically when we are just
	  reading the index (ro mode).

	- Allow customizing db filename via --index-name.

0.11    2015-02-24  Released-By: PERLANCAR

        - To help chase bugs in updating index, now keeps old indexes (by
          default 7, customize via --num-backups).

0.10    2015-02-06  Released-By: PERLANCAR

	- Mark common args with 'common' tag.

	- Add convenient option --all (equivalent to: --phase ALL --rel

0.09    2015-01-20  Released-By: PERLANCAR

	- Skip erroneous version in dep information, instead of exploding.

	- rdeps: Allow multiple --author & --author-isnt options.

0.08    2015-01-14  Released-By: PERLANCAR

        - More tweaks and minor bug fixes.

        - Add more examples.

0.07    2015-01-14  Released-By: PERLANCAR

        - Various small tweaks.

0.06    2015-01-14  Released-By: PERLANCAR


        - Remove the feature that extracts dist metadata from Makefile.PL and
          Build.PL because this is unsafe (we are running untrusted code). Note
          that MetaCPAN also does not extract dist metadata from Makefile.PL and
          Build.PL for the same reason. Also, it has been pointed out to me that
          the current way is not proper ("idiomatic"). The more proper way is to
          let perl run Makefile.PL and Build.PL to generate Makefile/Build as
          well as MYMETA.{json,yml}. Then we read MYMETA. Perhaps this feature
          will come back as an optional plugin later, should there be any
          demand. BTW, Dist::Requires does this kind of functionality.

        - Also remove the feature that detects *.meta files, because these files
          are not present in a mini CPAN mirror.


        - New subcommands: releases, mod2dist, mod2rel, dist2rel, distmods,
          authormods, authordists, authorrels. UPDATE 2015-12-06: authormods now
          renamed to author-mods, authordists -> author-dists, authorrels ->
          author-rels. UPDATE 2016-02-20: distmods now renamed to dist-mods.


        - Bump database schema version to v3: add columns
          has_{metayml,metajson,makefilepl,buildpl} to 'file' table. Add
          'version_numified' to 'dist' and 'module' tables.

        - Clear data for reindexing.

0.05    2015-01-14  Released-By: PERLANCAR

        - No functional changes.

        - Rebuild to update TODO.md (d'oh).

0.04    2015-01-14  Released-By: PERLANCAR

        - Use Perinci::CmdLine::Util::Config to get lcpan configuration without
          running the binary.

        - Rebuild to update TODO.md.

0.03    2015-01-14  Released-By: PERLANCAR

	- Bump database schema version to v2.

        - The indexer now tries to extract dist metadata from Makefile.PL or
          Build.PL in addition to from META.{json,yml}. This allows for more
          thorough indexing of dependencies information (as well as distribution
          name & abstract), as a lot of older releases do not include CPAN META
          files. But this also means actually executing the Makefile.PL &
          Build.PL scripts, which might have some side effects.

        - Add script: lcpanm.

        - Rename 'rev-deps' subcommand to 'rdeps'.

        - [subcommand rdeps] Add options --author and --author-isnt to be able
          to filter by author. This allows you to, for example, see if a module
          is used by other authors instead of just herself.

0.02    2015-01-13  Released-By: PERLANCAR

	- Rename module/dist from CPAN::Local to App::lcpan (PAUSE
	  conflict, CPAN::Local already exists on CPAN).

0.01    2015-01-13  Released-By: PERLANCAR

        - First version.