distmgr - Create, integrate, release a Perl distribution to the CPAN, and prepare for the next development cycle.
Performs a full suite of automated creation, addition, pre-release, release and post release tasks for Perl distributions. It integrates with VCS, automates the configuration of Continuous Integration, manages version numbers and Changes files, amongst a slew of other tasks.
This distmgr application uses the Dist::Mgr library as its backend.
See the README for full details beyond this document.
distmgr <command> [OPTIONS]
Creates a full blown, brand new distribution with everything included.
-m | --module Mandatory: The module name (eg. Test::Module) -a | --author Mandatory: The name of the author (eg. "Steve Bertrand") -e | --email Mandatory: The email address of the author -u | --user Optional: The Github username (eg. stevieb9) -r | --repo Optional: The Github repository name (eg. test-module) -w | --wait Optional: Wait for CI test results (--nowait to disable) -V | --verbose Optional: Display verbose output for each process
Note: For Git integration, create an empty repository on Github, then supply the short name of the repository with
--repo and your Github username with
--user and we'll clone the new repo and use it as the top-level distribution directory.
Note: We will skip adding repository information, skip adding CI badge info, and skip adding repository and bugtracker information to
Makefile.PL file if
--repo are not present in the parameter list (see "install").
Creates a bare-bones distribution with just the basics. There will be no git integration, no CI integration etc. Pretty well nearly a stock Module::Starter distribution with a few small tweaks.
-m | --module Mandatory: The module name (eg. Test::Module) -a | --author Mandatory: The name of the author (eg. "Steve Bertrand") -e | --email Mandatory: The email address of the author -V | --verbose Optional: (Flag) Display verbose output for each process
Installs/adds various files or file sections into an existing distribution that you author.
All of the below options are flags, and don't take any arguments.
-g | --gitignore Install .gitignore file -c | --ci Install Github Actions CI configuration file -B | --badges Insert CI/Coverage badges links into the module's POD -b | --bugtracker Insert bugtracker information into Makefile.PL -R | --repository Insert repository information into Makefile.PL -A | --all Insert/Install all above options
Note: For badges, bugtracker and repository, the
--user (Github username) and
--repo (Github repository) arguments must be supplied.
Prepares for, tests, runs Continuous Integration testing, commits, tags, pushes and releases to the CPAN your distribution.
-i | --cpanid Optional: Your PAUSE userid -p | --cpanpw Optional: Your PAUSE userid's password -d | --dryrun Optional: (Flag) Don't actually upload to the CPAN
Note: No Git operations will be performed without
--user. If the
--cpanpw aren't available or the
CPAN_PASSWORD environment variables aren't set, we won't upload to the CPAN.
After "release", this command will bump version numbers in all of your modules, and prepare the Changes file for your next development cycle.
-V | --verbose Optional: Display verbose output for each process
config - Creates an initial default configuration file.
This file will be named
dist-mgr.json and will be placed in your
HOME directory on Unix systems, and in your
USERPROFILE directory on Windows.
=head1 AUTHOR Steve Bertrand, C<< <steveb at cpan.org> >> =head1 LICENSE AND COPYRIGHT Copyright 2020-2021 Steve Bertrand. This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at: L<http://www.perlfoundation.org/artistic_license_2_0>