NAME
distmgr - Create, integrate, release a Perl distribution to the CPAN, and prepare for the next development cycle.
DESCRIPTION
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.
USAGE
distmgr <command> [OPTIONS]
COMMANDS
Command Process Flows
Notice: Be sure to read the Command Process Flows documentation in the README so you understand what is happening, why its happening, and when it happens.
create
Creates a full blown, brand new distribution with everything included.
Options:
-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 --user
or --repo
are not present in the parameter list (see "install").
dist
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.
Options:
-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
install
Installs/adds various files or file sections into an existing distribution that you author.
Options:
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.
release
Prepares for, tests, runs Continuous Integration testing, commits, tags, pushes and releases to the CPAN your distribution.
Options:
-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 --repo
and --user
. If the --cpanid
or --cpanpw
aren't available or the CPAN_USERNAME
or CPAN_PASSWORD
environment variables aren't set, we won't upload to the CPAN.
cycle
After "release", this command will bump version numbers in all of your modules, and prepare the Changes file for your next development cycle.
Options:
-V | --verbose Optional: Display verbose output for each process
config
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>