The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

distmgr - Create, integrate, release a Perl distribution to the CPAN, and prepare for the next development cycle.

Coverage Status

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.

USAGE

    distmgr <command> [OPTIONS]

COMMANDS

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)
    -x | --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