List of new CPAN distributions – May 2019

dist author version abstract
A1z-Html CEEJAY 0.001 Html for Perl
Acme-CPANAuthors-Malaysian KIANMENG 0.01 We are Malaysian CPAN authors (Kami para penulis CPAN Malaysia).
Amazon-S3-Thin-ResponseParser AKIYM 0.01 A parser for S3 XML responses
App-PowerManagementUtils PERLANCAR 0.001 CLI utilities related to power management
App-SortByLines PERLANCAR 0.001 Sort lines of text by other lines of text as keys
App-SortSubUtils PERLANCAR 0.001 CLIs related to Sort::Sub
App-SystemdUtils PERLANCAR 0.001 CLI utilities related to Systemd
App-govproc-pericmd PERLANCAR 0.001 Perinci::CmdLine-based variant of govproc CLI
App-host-struct PERLANCAR 0.001 host alternative that returns data structure
App-jl BAYASHI 0.01 Recursive JSON decoder
App-resolvetable PERLANCAR 0.001 Produce a colored table containing DNS resolve results of several names from several servers
App-timecalc PERLANCAR 0.001 Time calculator
Backblaze-B2V2Client ECHERNOF 1.0 Client library for the Backblaze B2 Cloud Storage Service V2 API.
Bencher-Scenarios-HTTPTinyPlugin PERLANCAR 0.001 Scenarios to benchmark HTTP::Tiny::Plugin
Browser-Start PLICEASE 0.01 Open a URL in a web browser
CAM-PDFTaxforms TURNERJW 1.00 CAM::PDF wrapper to also allow editing of checkboxes (ie. for IRS Tax forms).
CBOR-PP FELIPE 0.01 CBOR in pure Perl
Catalyst-Model-Curio BLUEFEET 0.01 Curio Model for Catalyst.
Code-Style-Kit DAKKAR 1.0.0 build composable bulk exporters
Curio BLUEFEET 0.01 Procurer of fine resources and services.
Curio-Role-CHI BLUEFEET 0.01 Build Curio classes around CHI.
Curio-Role-GitLab-API-v4 BLUEFEET 0.01 Build Curio classes around GitLab::API::v4.
DBIx-Class-ResultDDL NERDVANA 0.01 Result class declaration syntactic-sugar that looks like DDL
Dancer-Plugin-RPC-RESTISH ABELTJE 0.99_01 Simple plugin to implement a restish interface.
Data-Dumper-Compact MSTROUT 0.001000 Vertically compact width-limited data formatter
Data-Promise AKALINUX 0.001 simple promise like interface
Data-Unique FDULAU 0.02 Module to check for duplicate item with time expiration and disk persistence.
Data-Unixish-DNS PERLANCAR 0.001 dux functions related to DNS
Devel-KYTProf-Profiler-Fluent-Logger FUJIWARA 0.01 KYTProf profiler for Fluent::Logger
Devel-KYTProf-Profiler-Redis-Fast FUJIWARA 0.01 KYTProf profiler for Redis::Fast
Dist-Zilla-PluginBundle-WCS WCS 0.001 WCS distribution build
FASTX-Abi PROCH 0.01 Read Sanger trace file (chromatograms) in FASTQ format
FASTX-Parser PROCH 0.01 A lightweight FASTA and FASTQ parser
FASTX-Reader PROCH 0.01 A lightweight FASTA and FASTQ parser
File-Open-NoCache-ReadOnly NHORNE 0.01 Open a file and clear the cache afterward
File-Open-ReadOnly-NoCache NHORNE 0.01 Open a file and clear the cache afterward
File-Record FREEDOG 0.01 Read file by record!
GRNOC-Config BMERUGUR v1.0.9 The GRNOC Default Config parser
GRNOC-WebService-Client BMERUGUR v1.5.1 a GRNOC webservice testing utility.
HTTP-Tiny-NewestFirefox PERLANCAR 0.001 HTTP::Tiny + set User-Agent to newest Firefox
LWP-UserAgent-Patch-SetUserAgent PERLANCAR 0.001 Set User-Agent
Language-FormulaEngine NERDVANA 0.01 Evaluator for spreadsheet-style function expressions
Linux-PacketFilter FELIPE 0.01_1 Simple interface to Linux packet filtering
Log-Log4perl-Layout-JSON-Readable DAKKAR 1.0.0 JSON layout, but some fields always come first
Log-Timer DAKKAR 1.0.0 track nested timing information
MPV-Simple PERLMAX 0.6 Perl extension for the MPV audio and video player using libmpv
Mail-URLFor CORION 0.01 Create deep links into mail clients
Math-LOESS SLOYD 0.0000_01 Perl wrapper of the Locally-Weighted Regression package originally written by Cleveland, et al.
Mediafire-Api VRAG 0.01 Upload and Download files from file sharing
Mojolicious-Plugin-AutoRoutePm EBRUNI 0.10 A plugin to automatically add routes by *.pm modules which are a Mojolicious::Controller
PackageManager-Virtual DOUBLED 0.191250 A moose role interface for package managers.
Perl-Snippets PERLANCAR 0.001 A collection of Perl idioms or short pieces of Perl code
PowerManagement-Any PERLANCAR 0.001 Common interface to some power management tasks
Range-HandleIter PERLANCAR 0.001 Generate a tied-handle iterator for range
Range-HashIter PERLANCAR 0.001 Generate a tied-hash iterator for range
Range-ScalarIter PERLANCAR 0.001 Generate a tied-scalar iterator for range
SVG-Barcode TEKKI 0.01 Base class for SVG 1D and 2D codes
SVG-Barcode-Code128 TEKKI 0.01 Generator for SVG based Code 128 barcodes
SVG-Barcode-DataMatrix TEKKI 0.10 Generator for SVG based QR Codes
SVG-Barcode-QRCode TEKKI 0.01 Generator for SVG based QR Codes
SVG-QRCode TEKKI 0.01 Generate SVG based QR Code.
Sah-Schemas-Unix PERLANCAR 0.001 Various Sah schemas for Unix
Sort-Sub-filevercmp PERLANCAR 0.001 Sort using filevercmp
Spreadsheet-Open PERLANCAR 0.001 Open spreadsheet in a spreadsheet program
Systemd-Util PERLANCAR 0.001 Some utility routines related to Systemd
Test-DBChanges DAKKAR 1.0.0 track changes to database tables
Test-NiceDump DAKKAR 1.0.0 let's have a nice and human readable dump of our objects!
Test2-Harness-Renderer-JUnit TODDR 0.001077 Captures Test2::Harness results and emits a junit xml file.
Text-CSV_XS-TSV PERLANCAR 0.001 Set Text::CSV_XS default options to parse TSV
Tie-FileHandle-Log PERLANCAR 0.001 Tied filehandle that logs operations
Tie-Handle-Log PERLANCAR 0.001 Tied filehandle that just logs operations
Tie-Hash-Log PERLANCAR 0.001 Tied hash that behaves like a regular hash, but logs operations
Travel-Status-DE-DBWagenreihung DERF 0.01 Interface to Deutsche Bahn Wagon Order API.
XML-Sig-OO AKALINUX 0.001 Modern XML Signatured validation

List of new CPAN distributions – Apr 2019

dist author version abstract
Acme-CPANModules-PERLANCAR-RsyncEnhancements PERLANCAR 0.001 List of my enhancements for rsync
Acme-CPANModules-VersionNumber-Perl PERLANCAR 0.001 Working with Perl version numbers (or version strings)
Algorithm-Backoff PERLANCAR 0.003 Various backoff strategies for retry
Algorithm-MinPerfHashTwoLevel YVES 0.01 construct a "two level" minimal perfect hash
Algorithm-Retry PERLANCAR 0.001 Various retry/backoff strategies
Alien-Build-Plugin-Decode-Mojo PLICEASE 0.01 Plugin to extract links from HTML using Mojo::DOM or Mojo::DOM58
Alien-Build-Plugin-Download-GitHub PLICEASE 0.01 Alien::Build plugin to download from GitHub
Alien-Plotly-Orca SLOYD 0.0000_01 Finds or installs plotly-orca
Alien-Proj4 ETJ 2.019103 Give install info for already-installed proj4
Alien-cmark DBOOK 0.001 Alien wrapper for cmark
Anansi-Script-JSON ANANSI 0.01 Defines the mechanisms specific to handling JSON-RPC.
Anansi-Script-XML ANANSI 0.01 Defines the mechanisms specific to handling XML-RPC.
Anansi-ScriptComponent ANANSI 0.01 A manager template for Perl script interface interactions.
AnyEvent-HTTPD-Router UFOBAT 1.0.0 Adding Routes to AnyEvent::HTTPD
App-FileCommonUtils PERLANCAR 0.001 CLIs for File::Common
App-FileCreateLayoutUtils PERLANCAR 0.001 CLIs for File::Create::Layout
App-HTTPUserAgentUtils PERLANCAR 0.001 CLI utilities related to HTTP User-Agent (string)
App-IniDiff SQUIRESJM 0.16 App::IniDiff, scripts to diff and patch INI files
App-IniDiff-IniFile SQUIRESJM 0.16 App::IniDiff, scripts to diff and patch INI files
App-LWPUtils PERLANCAR 0.001 Command-line utilities related to LWP
App-PTP MATHIAS 1.00 An expressive Pipelining Text Processor
App-Spoor RORYMCK 0.01 A CPanel client for the Spoor service
App-TSVUtils PERLANCAR 0.001 CLI utilities related to TSV
App-Task DMUEY 0.01 Nest tasks w/ indented output and pre/post headers
App-optex-textconv UTASHIRO 0.01 module to replace document file by its text contents
App-pcorelist TINITA 0.001 Wrapper around corelist with subcommands and tab completion
Arango-Tango AMBS 0.007 A simple interface to ArangoDB REST API
Bencher-Scenario-CSVParsingModules PERLANCAR 0.001 Benchmark CSV parsing modules
Bencher-Scenario-CallStack PERLANCAR 0.001 Benchmark different methods to produce call stack
Bencher-Scenario-Caller PERLANCAR 0.001 Benchmark some variations of caller()
Bencher-Scenario-INIParsingModules PERLANCAR 0.001 Benchmark INI parsing modules
Bencher-Scenario-TSVParsingModules PERLANCAR 0.001 Benchmark TSV parsing modules
Bencher-Scenarios-RangeIterators PERLANCAR 0.001 Benchmark various range iterators
CBOR-Free FELIPE 0.01 Fast CBOR for everyone
CSV-Examples PERLANCAR 0.001 Example CSV files
Catalyst-View-TT-Progressive LNATION 0.01 Control the wrapper
Convert-BER-XS MLEHMANN 0.0 very low level BER decoding
DBIx-Class-Events GSG 0.9.1 Store Events for your DBIC Results
DBIx-Class-Helper-SimpleStats RRWO v0.1.0 Simple grouping and aggregate functions for DBIx::Class
Database-Async-Engine-PostgreSQL TEAM 0.001 PostgreSQL support for Database::Async
Devel-Cover-Report-SonarGeneric TOMK 0.1 SonarQube generic backend for Devel::Cover
Devel-Optic BTYLER 0.001 JSON::Pointer meets PadWalker
Device-RAID-Poller VVELOX v0.0.0 Runs various RAID checks for polling purposes.
Dita-GB-Standard PRBRENAN 20190429 The Gearhart-Brenan Dita Topic Content Naming Convention..
FSM-Mouse POTATOGIM 0.1 Finite-State Machine with Mouse
File-Common PERLANCAR 0.001 List files that are found in {all,more than one} directories
File-TVShow-Info BANS v0.01.0.0 Perl meta data extractor from file name for TV Show file.
File-TVShow-Organize BANS 0.32 Perl module to move TVShow Files into their matching Show Folder on a media server.
Furl-PSGI MHOWARD 0.01 Furl, but wired to a PSGI app
Future-IO PEVANS 0.01 Future-returning IO methods
Geo-Index AKH v0.0.7 Geographic indexer
HTTP-Tiny-Cache_CustomRetry PERLANCAR 0.001 Cache response + retry failed request
HTTP-Tiny-CustomRetry PERLANCAR 0.001 Retry failed HTTP::Tiny requests
HTTP-Tiny-Patch-Delay PERLANCAR 0.001 Add sleep() between requests to slow down
HTTP-Tiny-Patch-Plugin PERLANCAR 0.001 Change use of HTTP::Tiny to that of HTTP::Tiny::Plugin
HTTP-Tiny-Patch-SetUserAgent PERLANCAR 0.001 Set User-Agent header
HTTP-Tiny-Plugin PERLANCAR 0.001 HTTP::Tiny with plugins
HTTP-Tiny-Plugin-Cache PERLANCAR 0.001 Cache HTTP::Tiny responses
HTTP-Tiny-Plugin-CustomRetry PERLANCAR 0.001 Retry failed request
HTTP-Tiny-Plugin-Delay PERLANCAR 0.001 Delay/sleep between requests
HTTP-Tiny-Plugin-Retry PERLANCAR 0.001 Retry failed request
HTTP-UserAgentStr-Util-ByNickname PERLANCAR 0.001 Get popular HTTP User-Agent string by nickname
INI-Examples PERLANCAR 0.001 Example INI configuration files
IO-Async-Process-GracefulShutdown PEVANS 0.01 controlled shutdown of a process
IPC-ReadpipeX DBOOK 0.001 List form of readpipe/qx/backticks for capturing output
IPC-Run-Patch-Setuid PERLANCAR 0.001 Set EUID
Inline-Pdlapp ETJ 2.019105 a simple PDLA module containing inlined Pdlapp code
LWP-UserAgent-Patch-Delay PERLANCAR 0.001 Sleep() between requests
LWP-UserAgent-Patch-Plugin PERLANCAR 0.001 Change use of LWP::UserAgent to that of LWP::UserAgent::Plugin
LWP-UserAgent-Plugin PERLANCAR 0.001 LWP::UserAgent with plugins
LWP-UserAgent-Plugin-Cache PERLANCAR 0.001 Cache LWP::UserAgent responses
LWP-UserAgent-Plugin-Delay PERLANCAR 0.001 Delay/sleep between requests
List-AutoNumbered CXW 0.000001 Add line numbers to lists while creating them
Log-Dispatch-Email-Siffra LUIZBENE 0.01 Module abstract (<= 44 characters) goes here
Math-Lapack RUISTEVE 0.001 Perl interface to LAPACK
Matrix-Simple OXJGOUO 1.04 Some simple matrix operations
Mojo-Graphite-Writer JBERGER 0.01 A non-blocking Graphite metric writer using the Mojo stack
Mojo-Redfish-Client JBERGER 0.01 A Redfish client with a Mojo flair
Mojolicious-Plugin-Statsd MHOWARD 0.03 Emit to Statsd, easy!
Mojolicious-Plugin-Syslog JHTHORSEN 0.01 A plugin for enabling a Mojolicious app to log to syslog
Mojolicious-Static-Role-Compressed SRCHULO 0.01 Role for Mojolicious::Static that serves pre-compressed versions of static assets
Net-Checkpoint-Management-v1 ABRAXXA 0.001001 Checkpoint Management API version 1.x client library
OpenStack-MetaAPI ATOOMIC 0.001 Perl5 OpenStack API abstraction on top of OpenStack::Client
PDLA-GIS ETJ 2.019104 Perl Data Language
PDLA-Rest ETJ 2.013004 Perl Data Language
PDLA-Transform ETJ 2.019106 Perl Data Language
Paubox_Email_SDK VIGHNESH 1.0 Perl wrapper for the Paubox Transactional Email API (
PerlIO-normalize COFFEE 0.001 PerlIO layer to normalize unicode strings on input and output
PerlX-ifor PERLANCAR 0.001 A version of for() that accepts iterator instead of list
Proch-Cmd PROCH 0.001 Execute shell commands controlling inputs and outputs
Proch-N50 PROCH 0.01 Calculate N50 from a FASTA or FASTQ file
QuadPres SHLOMIF 0.28.0 a presentation / slides manager.
Range-ArrayIter PERLANCAR 0.001 Generate a tied-array iterator for range
Range-Iter PERLANCAR 0.001 Generate a coderef iterator for range
Range-Iterator PERLANCAR 0.001 Generate an iterator object for range
SMS-Send-BudgetSMS TASKULA 0.01 SMS::Send driver to send messages via BudgetSMS (ttps://
SQL-Abstract-Prefetch ETJ 0.001 implement "prefetch" for DBI RDBMS
Serge-Sync-Plugin-TranslationService-locize DRAGOSV 0.900.0 Locize ( synchronization plugin for Serge
Serge-Sync-Plugin-TranslationService-lokalise DRAGOSV 0.900.0 Lokalise ( synchronization plugin for Serge
Software-Catalog-SW-filezilla PERLANCAR 0.001 FileZilla
Software-Catalog-SW-phpmyadmin PERLANCAR 0.001 phpMyAdmin
Starwoman ASHLEYW 0.001 because Starman does the same thing over and over again expecting different results
TSV-Examples PERLANCAR 0.001 Example TSV files
Telugu-Keyword RAJ 0.03 Perl extension to provide Telugu keywords
Telugu-TGC RAJ 0.03 Perl extension for tailored grapheme clusters for Telugu script.
Test-FITesque-RDF KJETILK 0.001 Formulate Test::FITesque fixture tables in RDF
Test2-Harness-UI EXODIST 0.000001 Web interface for viewing and inspecting yath test logs
Text-CSV-FromAOH PERLANCAR 0.001 Convert an AoH (array of hashes) to CSV
Tie-Array-File-LazyRead PERLANCAR 0.001 Read a file record by record using tied array and for()
Tie-Array-Log PERLANCAR 0.001 Tied array that behaves like a regular array, but logs operations
URI-s3 KARUPA v0.01 s3 URI scheme
WordList-HTTP-UserAgentString-PERLANCAR PERLANCAR 0.001 A selection of some HTTP User-Agent strings
Yancy-Backend-Static PREACTION 0.001 Build a Yancy site from static Markdown files
cluster MDEHOON 1.58 Perl interface to the C Clustering Library.
p6-RandomColor CBWOOD 0
tap MHOWARD 0.01 add a tap method everywhere
version-dev PERLANCAR 0.001 Set $VERSION based on version from git tags

Maintaining Address Book In Org 01: Introduction

About this series: A collection of short blog posts about my experience maintaining addressbook (contactbook) in Org format. I keep each post short so I need to spend only ~30 minutes creating each.

Despite having used Emacs since 2004, I didn't discover org-mode until late 2010. As with many others, I was first drawn to org-mode because I was searching for a better Todo list system, having tried, among others:

Not one, but a few personally-made-up formats and conventions over plaintext.

Some CGI application which I access from the desktop as well as phone browser.

Some kind of Wiki system.


Physical notebook.

Various text editors and todo applications, on various platforms.


Gadget apps, from Nokia, BlackBerry, to the various Androids.

Even YAML at one point, when I was obsessed to some degree with it.

I've always hated, and still hate typing on a smartphone, so even though now I use a combination of smartphones and PC/laptop and paper/notebook, my main mode of entry is still through a proper keyboard using Emacs on a Linux. When I tried org-mode for the first time, the outline feature was enough to draw me in and make me start creating some notes. Soon, more and more things got (re)written in Org format, including my master addressbook.

If you're anything like me, you'll right away feel that the addressbook or contacts app on the smartphone is too restrictive. It's just a linear list of contacts, where each contact is given the standard fields of mobile number, work number, work fax, home number, and a few others. Adding note is sometimes not even possible, let alone structured notes. So I soon decided to have my master addressbook on a computer in Org format. I fill and sync my phone contacts using the phone-provided apps, and most of the time enter each contact manually and separately into my Org addressbook, but the most detailed and complete data will be in my Org addressbook. When I get tired of my phone or Google account, I just ditched it and buy another phone or create a new Google account with its blank contacts database to start over, but I keep maintaining the same master addressbook in Org.

The next posts of this series will share how I ended up with the current layout/system for my Org addressbook. Stay tuned.

List of new CPAN distributions – Mar 2019

dist author version abstract
AWS-Lambda SHOGO 0.0.1 It's Perl support for AWS Lambda Custom Runtime.
Acme-CPANModules-ModernPreambles PERLANCAR 0.001 Modules that offer modern preambles
Acme-CPANModules-Parse-UnixCommands PERLANCAR 0.001 Modules that parse output of Unix commands
Acme-CPANModules-Parse-UnixConfigs PERLANCAR 0.001 Modules that parse Unix config (or related) files
Acme-CXW-vars-i CXW 1.02 Perl pragma to declare and simultaneously initialize global variables.
Acme-Cow ELIZABETH 0.1 Talking barnyard animals (or ASCII art in general)
Acme-KemonoFriends-Color YUKINEA 0.01 Colorfull output.
Acme-Text-Viceversa WORTHMINE 0.06 ÉÂsɹÇÂʌÇÂɔᴉΛ::ʇxÇÂ⊥::ÇÂɯɔ∀
Alt-Data-Frame-ButMore SLOYD 0.0041 Alternative implementation of Data::Frame with more features
Alt-NewRelic-Agent-FFI-Empty PLICEASE 0.02 NewRelic::Agent::FFI interface that doesn't do anything
Alt-Template-Plugin-JSON-Moo JWRIGHT 0.01 Adds a .json vmethod for all TT values.
App-CSV2Chart SHLOMIF 0.0.1 generate charts on the command line.
App-PhotoDB JGAZELEY 0.00 App to manage a collection of film cameras & lenses
App-Prove-Plugin-PassEnv HURRICUP 0.001 a prove plugin to pass environment variables
App-Qmail-DMARC FANY 0.42 verify using DMARC and queue a mail message for delivery
App-SpreadRevolutionaryDate GIBUS 0.02 Spread date and time from Revolutionary (Republican) Calendar on Twitter, Mastodon and Freenode.
App-ValidateBankAccount MANWAR 0.01 App to validate bank account number.
App-ValidateSortCode MANWAR 0.01 App to validate bank sort code.
App-linerange PERLANCAR 0.001 Retrieve line ranges from a filehandle
App-perlutils WOLDRICH 0.024 utils for perl development
App-ppll BIFFEN v0.0.0 Command runner
App-rshasum SHLOMIF 0.0.1 recursive shasum.
App-rsync-retry PERLANCAR 0.001 Rsync wrapper to retry on transfer errrors
App-term-hr WOLDRICH 0.01 define a thematic change in the content of a terminal session
App-ucpan KPEE 1.00 improved CPAN modules updater
App-wget-retry PERLANCAR 0.001 Wget wrapper to retry harder
Arango-DB AMBS 0.001 A simple interface to ArangoDB REST API
Arrays-Same TOBYINK 0.001 Test if two arrays are identical
Avolution-Emoji CHOIBOI v0.1.1
Bencher-Scenario-ComparingArrays PERLANCAR 0.001 Modules that compare arrays
Bencher-Scenario-preloadable PERLANCAR 0.001 Benchmark
Bio-DB-EMBL CJFIELDS 1.7.3 Database object interface for EMBL entry retrieval
Bio-DB-NCBIHelper CJFIELDS 1.7.3 A collection of routines useful for queries to NCBI databases.
Bio-MUST-Apps-FortyTwo DBAURAIN 0.190820 Main class for forty-two tool
Bio-Sketch LSKATZ 0.1
Bio-Sketch-Mash LSKATZ 0.8
Bundle-Camelcade HURRICUP 0.001 Bundle of modules used by Perl5 plugin for IntelliJ IDEs
Business-Tax-Withholding-JP WORTHMINE 0.01 auto calculation for Japanese tax and withholding
CatalystX-Action-Negotiate DORIAN 0.01 ActionRole for content negotiation
Chart-GGPlot SLOYD 0.0000_01 ggplot2 port in Perl
Class-Tiny-ConstrainedAccessor CXW 0.000001 Generate Class::Tiny accessors that apply type constraints
DNS-Unbound FELIPE 0.01 A Perl interface to NLNetLabs’s Unbound recursive DNS resolver
Data-Faker-Country TEAM 0.001 Provides country and ISO country code generation
Devel-vscode BJOERN 0.01 Debug with perl-debug in Visual Studio Code
Device-Firewall-PaloAlto PUGLET 0.1.1 new module
Device-NTCChip-GPIO MQTECH 0.100 Control the GPIO pins on the original NTC Chip
Device-Yeelight JBAIER 0.10 Controller for Yeelight smart devices
Dist-Zilla-PluginBundle-Author-GSG GSG 0.0.3 Grant Street Group CPAN dists
Dotenv BOOK 0.001 Support for dotenv in Perl
ExtUtils-ModuleMaker-Siffra LUIZBENE 0.01 Module abstract (<= 44 characters) goes here
Function-Interface KFLY 0.01 specify type constraints of subroutines
GIS-Distance-GeoEllipsoid BLUEFEET 0.10 Geo::Ellipsoid distance calculations.
Geo-Location NHORNE 0.01 Location information
Geo-Location-Point NHORNE 0.01 Location information
Giblog KIMOTO 0.01 HTML Generator
Graph-Traverse WLINDLEY 0.01 A traverse() method for the Graph module.
HTTP-Simple DBOOK 0.001 Simple procedural interface to HTTP::Tiny
JSON-Feed GUGOD 0.001 Syndication with JSON.
Log-ger-Layout-Pattern-Multiline PERLANCAR 0.001 Pattern layout (with multiline message split)
MIDI-Util GENE 0.0100 MIDI Utilities
Mail-Qmail-DMARC FANY 0.11 verify using DMARC and queue a mail message for delivery
Mash LSKATZ 0.1
Module-Lazy KHEDIN 0.01 postpone loading a module until it's actually used
Mojolicious-Plugin-CascadingConfig SRCHULO 0.01 Perl-ish configuration plugin that loads and merges config files in order
Mojolicious-Plugin-GitConfig BYTERAZOR 1.0 Mojolicious Plugin for using Config::GitLike as the main configuration provider
Mojolicious-Plugin-Gzip SRCHULO 0.01 Plugin to Gzip Mojolicious responses
Mojolicious-Plugin-NoServerHeader SRCHULO 0.01 Removes the Server header from every Mojolicious response
Mojolicious-Plugin-TextExceptions MRAMBERG 0.01 Render exceptions as text in command line user agents
Mojolicious-Plugin-Web-Auth-Site-DropboxV2 OALDERS 0.000001 Dropbox OAuth2 Plugin for Mojolicious::Plugin::Web::Auth
Mojolicious-Plugin-Wordpress JHTHORSEN 0.01 Use WordPress as a headless CMS
MooX-Attribute-ENV ETJ 0.01 Allow Moo attributes to get their values from %ENV
MooX-StrictHas ETJ 0.01 Allow Moo attributes to get their values from %ENV
Perl-Critic-Policy-Catalyst-ProhibitUnreachableCode BLUEFEET 0.01 Don't write code after an unconditional Catalyst detach.
Perl-Metrics-Halstead GENE 0.0100 Compute Halstead complexity metrics
Proc-Stat MIKER 0.01
Protocol-Database-PostgreSQL TEAM 1.000 PostgreSQL wire protocol implementation
Protocol-Redis-Faster DBOOK 0.001 Optimized pure-perl Redis protocol parser/encoder
RogersMine GFR 0.1.0 Query or change configuration of Perl modules
SMS-Net-Send KIANMENG 0.01 SMS::Send driver to send messages via Mocean,
SMS-Send-Mocean KIANMENG 0.02 SMS::Send driver to send messages via Mocean,
SQL-Simple PETDANCE 0.01 A very simple SQL-building library
SQL-Tiny PETDANCE 0.01 A very simple SQL-building library
Sah-Schemas-FileHandle PERLANCAR 0.001 Sah schemas for flilehandle
Siffra-Base LUIZBENE 0.01 Siffra Base Module
Siffra-Logger LUIZBENE 0.01 Siffra config for Log::Any
Siffra-Transfers LUIZBENE 0.01 File transfers module
Signal-Pipe LEONT 0.001 Self pipes for signal handling
Slack-WebHook ATOOMIC 0.001 Slack WebHook with preset layout & colors for sending slack notifications
TAP-Formatter-Camelcade HURRICUP 0.001 Converts test events from TAP::Harness to the TeamCity format
TMO MEMOWE 0.02 A role to extend Test::Mojo to make mojo command output tests easy.
Test-AutoMock HIRATARA 0.01 A mock that can be used with a minimum setup
Test-Mojo-CommandOutputRole MEMOWE 0.02 A role to extend Test::Mojo to make mojo command output tests easy.
Test-Starch BLUEFEET 0.12 Test core features of starch.
Tk-JThumbnail TURNERJW 2.0 Present a list of files in a directory as a grid of icons with or without text.
WWW-FCM-HTTP-V1 OMOHAYUI 0.01 Client for Firebase Cloud Messaging HTTP v1 API
WWW-Speakerdeck-Download RENEEB 0.01 Download a deck from
WebService-Pixela ANATOFUZ 0.01 It's API client for Perl.
WebService-ValidSign WATERKIP 0.001 A REST API client for ValidSign
mojo-calendar CRLCU v0.0.1 Extended DateTime manipulator
preloadable PERLANCAR 0.001 Require a module during run-time (or compile-time)
rogers-mine GFR 0.1.0 Query or change configuration of Perl modules
winja KPEE 1.0.1 dirty patch for handling pathname on MSWin32::Ja_JP.cp932

List of new CPAN distributions – Feb 2019

dist author version abstract
Acme-Backwards LNATION 0.01 One line fi, esle, fisle, sselnu
Acme-CPANModules-ConvertingFromRegex PERLANCAR 0.001 Convert a regular expression to various stuffs
Acme-CPANModules-ConvertingToRegex PERLANCAR 0.001 Convert various stuffs to regular expression
Acme-CPANModulesUtil-Bencher PERLANCAR 0.001 Generate/extract Bencher scenario from information in an Acme::CPANModules::* list
Acme-DependOnEverything WOLDRICH 0.02 depend on everything
Alien-SNMP OLIVER 2.000000 Build and install Net-SNMP
Alien-libtickit PEVANS 0.01 Alien wrapping for libtickit
Alien-unzip PLICEASE 0.01 Find or build Info-ZIP unzip
Alt-FFI-Raw-Platypus PLICEASE 0.02 Alternate FFI::Raw implementation powered by FFI::Platypus
AnyEvent-XSPromises TVDW 0.001 Another Promises library, this time implemented in XS for performance
App-AVR-Fuses PEVANS 0.01 a commandline fuse value calculator for AVR microcontrollers
App-CalendarDatesUtils PERLANCAR 0.001 Utilities related to Calendar::Dates
App-DTWMIC ILUX 0.001 disable touchpad when a mouse is connected
App-calx PERLANCAR 0.001 Display a calendar
App-hopen CXW 0.000009 hopen build system command-line interface
App-id3shit WOLDRICH 2.54 less sucky cli id3 tag editor
App-inplace PERLANCAR 0.001 Replace a file with command output
App-mycnfdiff PAVELSR 1.00 compare MySQL server configs.
App-rmcd WOLDRICH 0.278 remotely control a daemonized mplayer process
App-rmshit WOLDRICH v0.6.4 Keep a directory structure clean at all times
App-termpub MDOM 1.00 read epubs in the terminal
App-whichdll PLICEASE 0.02 Find dynamic libraries
Banal-Dist-Util TABULO 0.004 General purpose utility collection mainly used by <Dist::Zilla::*::Author::TABULO>
Banal-Mini-Utils TABULO 0.002 Provide several MUNGER functions that may be use in conjunction with MooseX::MungeHas.
Banal-Moosy-Mungers TABULO 0.001 Provide several MUNGER functions that may be use in conjunction with MooseX::MungeHas.
Banal-Role-Fallback TABULO 0.001 A Moo/Moose compatible incarnation of Banal::Role::Fallback::Tiny
Banal-Util-Mini TABULO 0.001 Provide several utility functions with minimal dependencies.
Bencher-Scenarios-DateTimeOfDay PERLANCAR 0.001 Scenarios to benchmark Date::TimeOfDay
Bencher-Scenarios-LoggingModules PERLANCAR 0.001 Benchmark logging modules
Bio-DB-BioFetch CDIESH 1.7.3 Database object interface to BioFetch retrieval
Bio-DB-GFF CDIESH 1.7.3 Storage and retrieval of sequence annotation data
Bio-DB-SeqFeature CDIESH 1.7.3 Normalized feature for use with Bio::DB::SeqFeature::Store
C-Mlock SORBS 1.11 A locked in RAM memory region
CPP-catch SYBER v1.0.2 Catch test library
CPP-geos SYBER v3.7.0 geos C++ library (alien, without perl-adapters).
Cache-SimpleDir MPOURASG 2.0.5 Cache, time consuming subroutines or paid api calls
Calendar-Dates PERLANCAR 0.1.0 Modules that contain calendar dates
Calendar-Dates-Academic-ID-UT-PPs PERLANCAR 0.001 Academic calendar of Universitas Terbuka (postgraduate programs, program pascasarjana)
Calendar-Dates-CFA PERLANCAR 0.001 CFA exam calendar
Calendar-Dates-FRM PERLANCAR 0.001 FRM exam calendar
Calendar-Dates-ID-Holiday PERLANCAR 0.001 Indonesian holiday calendar
Calendar-DatesRoles-DataPreparer-CalendarVar-FromData PERLANCAR 0.001 Populate $CALENDAR from data in __DATA__
Calendar-DatesRoles-DataUser-CalendarVar PERLANCAR 0.001 Provide Calendar::Dates interface from consumer's $CALENDAR
Calendar-DatesRoles-FromData PERLANCAR 0.001 Provide Calendar::Dates interface to consumer which has @ENTRIES
Calendar-DatesRoles-FromEntriesVar PERLANCAR 0.002 Provide Calendar::Dates interface to consumer which has @ENTRIES
Catalyst-Action-Serialize-SimpleXLSX MBAAS 0.002 Serialize to Microsoft Excel 2007 .xlsx files
Cfn JLMARTIN 0.01 An object model for CloudFormation documents
Chess-Opening GUIDO 0.1 Read chess opening books in polyglot format
Class-Tiny-Immutable DBOOK 0.001 Minimalist class construction, with read-only attributes
Convert-Base81 JGAMBLE 1.00 Encoding to and decoding from Base 81 strings
Convert-Base85 JGAMBLE 1.00 Encoding to and decoding from Base 85 strings
Crypt-LibSCEP MRSCOTTY 0.04 Perl extension for blah blah blah
DTA-CAB MOOCOW 1.106 "Cascaded Analysis Broker" for robust linguistic analysis
Data-Hopen CXW 0.000009 A build generator with first-class edges and explicit dependencies
Data-MethodProxy BLUEFEET 0.03 Inject dynamic data into static data.
Data-SSHPubkey JMATES 0.01 utility function to parse SSH public keys with
DataStruct-Flat JLMARTIN 0.01 Convert a data structure into a one level list of keys and values
Date-Names-Perl6 TBROWDER v1.0.0
Dist-Zilla-Plugin-Calendar-Dates PERLANCAR 0.054 Plugin to use when building Calendar::Dates::* distribution
Dist-Zilla-Plugin-Prereqs-SetMinimumVersion-FromPmVersions PERLANCAR 0.001 Set minimum version of prereqs from pmversions.ini
Eval-Quosure SLOYD 0.0000_01 Evaluate within a caller environment
FFI-Platypus-Legacy-Raw PLICEASE 0.02 Perl bindings to the portable FFI library (libffi)
FP PFLANZE 0.71 functional programming on Perl
File-Find-Rule-UnixPermissions VVELOX v0.0.0 Use unix permissions for searching for files with File::Find.
Foreign-Sort MOB 0.01 subroutine attribute to allow call to sort routine from other package
Geo-Coder-DataScienceToolkit NHORNE 0.01 Provides a geocoding functionality using
GermaNet-Flat MOOCOW 0.03 Flat relational access to GermaNet data
Imager-File-HEIF TONYC 0.001 HEIF image file support for Imager
Imager-Filter-Binarization GUGOD 0.001 A collection of image binarization algorthims as image filter.
Lingua-TT MOOCOW 0.11 TnT-style I/O utilities
Log-Mini DFE 0.0.1 It's a very simple logger which can log your messages to a file or STDERR.
Log-MixedColor MQTECH 1.000 Outputs messages in multiple colors
Logic-Minimizer JGAMBLE 1.00 Parent class for Logic minimizers like Quine-McCluskey
Logic-TruthTable JGAMBLE 1.00 Create a Boolean Truth Table
Math-MatrixLUP TRIZEN 0.01 Matrix operations and LUP decomposition.
Module-Build-Using-PkgConfig PEVANS 0.01 extend Module::Build to more easily use platform libraries provided by pkg-config
Module-CoreList-List PERLANCAR 0.001 List of core modules by perl version
MooX-Purple LNATION 0.01 purple
Music-FretboardDiagram GENE 0.0100 Draw fretboard chord diagrams
Music-GuitarChordDiagram GENE 0.0100 Draw Guitar Chord Diagrams
MySQL-Compress CMANLEY 1.01 This module provides MySQL COMPRESS() and UNCOMPRESS() compatible Perl functions
Net-AS2-PSGI AJM 0.9 AS2 Protocol Plack application
Net-SharePoint-Basic ROMM 0.1 Basic interface to Microsoft SharePoint REST API
PERLANCAR-YAML-Any PERLANCAR 0.001 Pick a YAML implementation and use it
Parse-CommandLine-Regexp PERLANCAR 0.001 Parsing string like command line
Parse-IPCommand PERLANCAR 0.001 List network interfaces from "ip addr show" output
Parse-Netstat-Colorizer VVELOX v0.0.0 a netstat like utility that supports color and searching
Parse-Netstat-Search VVELOX v0.0.0 Searches the connection list in the results returned by Parse::Netstat
Parse-Netstat-Search-Sort VVELOX v0.0.0 Sorts the returned array from Parse::Netstat::Search.
PerlX-Let RRWO v0.0.1 Syntactic sugar for lexical constants
Plack-Middleware-Matomo VPEIL 0.01 a middleware to track usage information with Matomo
Pod-Weaver-Plugin-Calendar-Dates PERLANCAR 0.001 Plugin to use when building Calendar::Dates::* distribution
Promise-ES6 FELIPE 0.01 ES6-style promises in Perl
RT-Extension-ElapsedBusinessTime PUCK 0.01 RT-Extension-ElapsedBusinessTime Extension
RightScale-Query MQTECH 0.200 Query RightScale for server instances
Role-Cache-LRU KIANMENG 0.01 Add LRU caching to any Moo classes.
Shorthand PERLANCAR 0.001 Shorthand
Shorthand-Perinci-CmdLine-Any-main-app PERLANCAR 0.001 Load Perinci::CmdLine::Any and run main's app
Siffra-Bootstrap LUIZBENE 0.01 Module abstract (<= 44 characters) goes here
Siffra-Tools LUIZBENE 0.01 Siffra Tools
Spreadsheet-Read-Ingester STEVIED 0.001 ingest spreadsheets to Perl data structure for faster, repeated processing
String-ShortHostname MQTECH 0.006 extracts the first field from an FQDN
Sys-Sendfile-OSX LTRIANT 0.01 Exposing sendfile() for OS X
Task-Tmp-spanel PERLANCAR 0.001 Perl modules for Spanel
Template-LiquidX-Tidy ANEI 0.01 Indentation for Liquid template documents
Term-Table2 JSF v1.0.0 Provides formatted output of tables supplied as a combination of header and rows. Among other things supports both horizontal and vertical splitting (paging), in other words can cope with tables wider and / or higher than the size of page you intend to use.
Test-Catch SYBER v1.0.0 Run C++ catch tests from perl test file
Test-TCM-Role-API CHESNOKOV 0.01 Role to test PSGI-based JSON API using Test::Class::Moose.
Test-TempFile RJH 0.90 Helper library for testing code that uses temp files
Test2-Tools-FFI PLICEASE 0.04 Tools for testing FFI
Text-JSCalendar BRONG 0.01 autogenerated timezone data for ME::CalDAVTalk
Types-Mojo RENEEB 0.01 Types related to Mojo
Unix-Sudo DCANTRELL 1 run a block as root
VideoLAN-LibVLC NERDVANA 0.01 Decode audio/video files using LibVLC
Weasel-Driver-Mock EHUELS 0.01 Weasel driver to mock a real driver for testing purposes
WebService-GeoIPify KIANMENG 0.01 Perl library for ipify's Geolocation API,
WebService-IPAPI KIANMENG 0.01 Perl library for using IPAPI,
WebService-IPStack KIANMENG 0.01 Perl library for using IPStack,
WebService-TaxJar COLINK 0.0001 A simple client to TaxJar's REST API.
X11-PngViewer DDICK 0.09 Png Viewer in X11
XS-Install SYBER v1.0.0 ExtUtils::MakeMaker based module installer for XS modules.
YottaDB OESI 0.24 Perl extension for accessing YottaDB
dta-tokwrap MOOCOW 0.86-pre1 Wrapper modules & scripts for DTA XML corpus tokenization
magic CHOHAG 1
next-XS SYBER v0.1.3 Replacement for next::method, performing very fast, and super::method (next-by-mro), with Perl and C++ interface.

List of new CPAN distributions – Jan 2019

dist author version abstract
AES128 JEFFZHANG 0.01 AES128 CTR mode encryption algorithms
Acme-AtIncPolice YTURTLE 0.01 The police that opponents to @INC contamination
Acme-CM-Get PERLANCAR 0.001 Shortcut to retrieve Acme::CPANModules list
Acme-CPANModules-API-Domain-Registrar PERLANCAR 0.001 API to domain registrars
Acme-CPANModules-AliasingModuleName PERLANCAR 0.001 Aliasing a (long) module name to another (shorter) name
Acme-CPANModules-ArrayClassBuilder PERLANCAR 0.001 Class builders for array-backed classes
Acme-CPANModules-Assert PERLANCAR 0.001 Assertion
Acme-CPANModules-CLIWithUndo PERLANCAR 0.001 CLI utilities with undo feature
Acme-CPANModules-CheckingModuleInstalledLoadable PERLANCAR 0.001 Checking if a module is installed or loadable
Acme-CPANModules-CustomCPAN PERLANCAR 0.001 Creating your own CPAN-like repository
Acme-CPANModules-GettingTempDir PERLANCAR 0.001 Getting system-wide temporary directory in a portable way
Acme-CPANModules-HidingModules PERLANCAR 0.001 Simulate the unavailability of modules
Acme-CPANModules-LocalCPANIndex PERLANCAR 0.001 Creating an index against local CPAN mirror
Acme-CPANModules-LocalCPANMirror PERLANCAR 0.001 Creating a local CPAN mirror
Acme-CPANModules-MagicVariableTechnique PERLANCAR 0.001 Modules which employ magic variable technique to do stuffs
Acme-CPANModules-MooseStyleClassBuilder PERLANCAR 0.001 Moose-style (Perl 6-style) class builders
Acme-CPANModules-NonMooseStyleClassBuilder PERLANCAR 0.001 Non-Moose-style class builders
Acme-CPANModules-OneLetter PERLANCAR 0.001 One-letter CPAN modules
Acme-CPANModules-Org PERLANCAR 0.001 Modules related to Org format
Acme-CPANModules-PickingRandomLinesFromFile PERLANCAR 0.001 Picking random lines from a file
Acme-CPANModules-StructuredDATA PERLANCAR 0.001 Modules that give some structure to DATA
Acme-CPANModules-TextTable PERLANCAR 0.001 Modules that generate text tables
Acme-CPANModules-Unbless PERLANCAR 0.001 Unblessing a reference
Acme-CPANModules-UpsideDownTextWithUnicode PERLANCAR 0.001 Modules that can flip Latin text (make your text look upside down) using Unicode characters
Acme-CPANModules-WorkingWithTree PERLANCAR 0.001 Working with tree data structure in Perl
Acme-CPANModules-XSVersions PERLANCAR 0.001 XS versions of Perl modules
Acme-CPANModulesUtil-FeatureMatrix PERLANCAR 0.001 Draw features matrix of modules in an Acme::CPANModules::* list
Acme-PERLANCAR-DumpImportArgs PERLANCAR 0.001 Dump import arguments
Acme-PERLANCAR-Test-MetaCPAN-HTML PERLANCAR 0.001 Test HTML rendering on MetaCPAN
Alien-hiredis DBOOK 0.001 Alien wrapper for hiredis
App-BinPackUtils PERLANCAR 0.001 Collection of CLI utilities related to packing items into bins
App-CPANCoverBadge RENEEB 0.01 Get badge for cpancover
App-Dothe YANICK 0.0.1 YAML-based task runner
App-GetoptLongExamples PERLANCAR 0.001 Collection of CLI examples related to Getopt::Long
App-ImageInfoUtils PERLANCAR 0.001 Get information about image files
App-IncrementUtils PERLANCAR 0.001 Utilities related to increment/autoincrement
App-NumberUtilRangeUtils PERLANCAR 0.001 CLIs for Number::Util::Range
App-Perlambda MOZNION 0.01 A CLI tool for managing Lambda functions with Lambda Perl layer.
App-RenameUtils PERLANCAR 0.001 Utilities related to renaming files
App-Spanel-TailWeblog PERLANCAR 0.001 Tail -f spanel HTTP and/or HTTPS access log
App-StringUtilRangeUtils PERLANCAR 0.001 CLIs for String::Util::Range
App-clipbored WOLDRICH v1.2.6 Daemon that continuously collects all selections in Xorg's clipboard buffers
App-html2text PERLANCAR 0.001 Render HTML as text using one of multiple backends
App-iperlmoddir PAVELSR 1.0 quick print info about modules in directory at CSV file
App-lcpan-Bootstrap PERLANCAR 20190107.0.0 Bootstrap database for lcpan
App-lsplusplus WOLDRICH 0.38 ls on steroids
App-pimpd WOLDRICH 0.312 Perl Interface for the Music Player Daemon 2
App-rel WOLDRICH 2.24 pretty-print flexget downloads
App-rgbterm WOLDRICH 0.022 show rgb values of defined terminal colors
App-tmclean SONGMU v0.0.1 backend class of tmclean
Bencher-Scenarios-ManipulatingSymbolTable PERLANCAR 0.001 Benchmark symbol table manipulation actions
Broadworks-OCIP NIGELM 0.08 API for communication with Broadworks OCI-P Interface
Build-Hopen CXW 0.000002 A build generator with first-class edges and explicit dependencies
Class-Data-Lite SONGMU 0.0010 a minimalistic class accessors
Code-TidyAll-Plugin-ClangFormat SHLOMIF 0.0.1 run clang-format using Code::TidyAll
Code-TidyAll-Plugin-TestCount SHLOMIF 0.0.1 ascertain that the test plan agrees with the Test::Count annotations
Complete-Spanel PERLANCAR 0.001 Completion routines related to Spanel
Data-Decrement PERLANCAR 0.001 Provide extra magic for auto-decrement
Data-TableReader-Decoder-HTML NERDVANA 0.009 HTML support for Data::TableReader
Date-Cutoff-JP WORTHMINE 0.01 Get the day cutoff and payday for in Japanese timezone
DateTime-Format-Text NHORNE 0.01 Find a Date in Text
Devel-CallTrace-PP PAVELSR 0.01 Main module of dctpp
Devel-MojoProf JHTHORSEN 0.01 Profile blocking, non-blocking a promise based Mojolicious APIs
Devel-Probe GONZUS 0.000003 Quick & dirty code probes for Perl
Devel-TRay PAVELSR 0.1 See what your code's doing
Dir-Manifest SHLOMIF 0.0.1 treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs
Dist-Zilla-PluginBundle-Author-TEAM TEAM 0.001 Defines common dist.ini config for distributions by TEAM
Enterprise-Licence LNATION 0.01 The great new Enterprise::Licence!
HTML-FormatText-Any PERLANCAR 0.001 Render HTML as text using one of multiple backends
KubeBuilder JLMARTIN 0.02 Module to help build the Perl Kubernetes client
Kubernetes-REST JLMARTIN 0.01 A Perl REST Client for the Kubernetes API
LCFG-Utils-Perl SJQUINNEY v1.13.4 Perl API for LCFG utilities
Locked-Storage SORBS 1.00 A locked in RAM memory region
Mac-OSA-Dialog-Tiny LNATION 0.01 The great new Mac::OSA::Dialog::Tiny!
MicroECC JEFFZHANG 0.01 Perl extension for the micro-ecc library
Module-List-Patch-Hide PERLANCAR 0.001 Hide some modules from Module::List
Mojolicious-Plugin-Minion-Workers MCHE 0.0907 does extend base Mojolicious::Plugin::Minion on manage Minion workers.
Mus SRCHULO 0.01 Mu but with slightly more typing and strict constructors
Music-KNRadio-NowPlaying WOLDRICH 0.002 Now playing metadata for Karlstad Rock 92.2
Number-Util-Range PERLANCAR 0.001 Find sequences in number arrays & convert to range (e.g. 100,2,3,4,5,101 -> 100,"2..5",101)
PERLANCAR-Module-List-Patch-Hide PERLANCAR 0.001 Hide some modules from PERLANCAR::Module::List
PMLTQ-CGI MATY 0.0.1 [DEPRECATED] This is html fronted for SQLEvaluator and is currently being replaced by PMLTQ::Server
PMLTQ-Commands MATY 0.0.1 PMLTQ command line interface
PMLTQ-PML2BASE MATY 3.0.1 Convert from PML to SQL
Package-Util-Lite PERLANCAR 0.001 Package-related utilities
Perinci-Sub-XCompletionBundle-DBI PERLANCAR 0.001 Completion routines related to DBI
Perinci-Sub-XCompletionBundle-lcpan PERLANCAR 0.001 Completion stuffs using local CPAN database
Quiq FSEITZ 1.129 Class library
Regexp-Pattern-Net PERLANCAR 0.001 Regexp patterns related to network
Sah-Schemas-DBI PERLANCAR 0.001 Schemas related to DBI
Sah-Schemas-DataSizeSpeed PERLANCAR 0.001 Sah schemas related to data sizes & speeds (filesize, transfer speed, etc)
Short-URL SRCHULO 0.014 Encodes and Decodes short urls by using Bijection
String-Util-Range PERLANCAR 0.001 Find sequences in arrays & convert to range (e.g. "a","b","c","d","x",1,2,3,4,"x" -> "a..d","x","1..4","x")
Swagger-Schema-Kubernetes JLMARTIN 0.01 Object model to Kubernetes Swagger / OpenAPI schema files
Sys-RunAlone-Flexible PERLANCAR 0.001 make sure only one invocation of a script is active at a time
Teng-Plugin-TmpSuppressRowObjects EGAWATA 0.01 add methods with temporary use of suppress_row_objects
Term-ExtendedColor-Dzen WOLDRICH 0.001 Color input and add dzen compatible attributes
Term-ExtendedColor-Xresources-Colorscheme WOLDRICH 0.010 Colorschemes for the terminal
Test-Mojo-Role-StopOnFail FVOX 0.01 Stop Mojolicious tests after first failure.
Test-NaiveStubs GENE 0.0100 Generate test stubs for methods
Types-RENEEB RENEEB 0.01 Several predefined Type::Tiny types
URI-ws_Punix AKALINUX 0.001 URI for ws+unix
WWW-CPAN-SQLite STRO 1.001 generate and provide precompiled CPAN::SQLite database
WWW-Google-Cloud-Auth-ServiceAccount LARION 1.000002 Service account based OAuth authentication for Google Cloud APIs
WebService-Auth0 JJNAPIORK 0.001 A Perl SDK for Auth0
WebService-DailyConnect PLICEASE 0.02 Web client to download events from Daily Connect
Win32-Backup-Robocopy LORENZO 7 a simple backup solution using robocopy
lcfg-build-pkgspec SJQUINNEY v0.2.5 Object-oriented interface to LCFG build metadata
lib-rabs RANDIR 0.01 lib that makes relative path absolute to caller, backwards.
voiceIt2 HASSANIS 3.12 Perl extension for blah blah blah
xprop2i3 ECARROLL 0.01 Easy display of i3 attributes

lcpan tips 022: Testing all dependents

About this series: A collection of short blog posts about lcpan tips/recipes. Some posts will also end up in the upcoming App::lcpan::Manual::Cookbook POD to be included in the App::lcpan distribution. First article is here. See the whole series.

About lcpan: an application to download and index a mini CPAN mirror on your local filesystem, so in effect you will have something like your own CPAN with a command-line tool (or perl API) to query and extract information from your mirror.

When you release a new version of a module, CPAN Testers will test your module on a variety of platforms. Sometimes, when they happen to test other modules that depend on your module, they will also uncover problems that is caused by your new version breaking your dependents. However, this is not done systematically or completely. If you want to make sure your changes do not break your dependents, you can test for yourself.

Suppose I’m making some changes to Regexp::Pattern. Let’s see who depends on this module:

% lcpan rdeps Regexp::Pattern -R --phase runtime --rel requires
| dist                             | author    | dist_version | req_version |
| App-Licensecheck                 | JONASS    | v3.0.36      | 0           |
| App-RegexpPatternUtils           | PERLANCAR | 0.003        | 0           |
| Bencher-Scenarios-RegexpPattern  | PERLANCAR | 0.003        | 0           |
| Regexp-Common-RegexpPattern      | PERLANCAR | 0.001        | 0           |
|   Bencher-Scenarios-RegexpCommon | PERLANCAR | 0.02         | 0           |
| Test-Regexp-Pattern              | PERLANCAR | 0.004        | v0.2.7      |

Force reinstalling all dependents

One way to run tests for all dependents is by force-(re)installing all those distributions. One way to do that:

% for mod in `lcpan rdeps Regexp::Pattern -R | td select dist | perl -pe's/^\s+//' | dist2mod`; do
    echo "Installing $mod ..."
    lcpanm --force $mod

dist2mod is provided by App::DistUtils.

Extracting tarballs

Another way to test all dependents is to extract them to a temporary directory then run prove on each. lcpan provides the handy subcommand extract-dist to do this. But you might want to install the dependents all first to pull their dependencies.

% mkdir test-deps
% cd test-deps
% for dist in `lcpan rdeps Regexp::Pattern -R | td select dist`; do
    mkdir $dist && cd $dist && lcpan extract-dist $dist && cd ..

We can now test each dependent distro one by one, or all in one go:

% for dist in *; do
    echo "Testing $dist ..."
    cd $dist/*; prove -lr; cd ../..