Dist::Zilla::Plugin::UploadToCPAN(3pm)

NAME
Dist::Zilla::Plugin::UploadToCPAN - upload the dist to CPAN

VERSION
version 6.037

SYNOPSIS
If loaded, this plugin will allow the release command to upload to the CPAN.

DESCRIPTION
This plugin looks for configuration in your "dist.ini" or (more likely) "~/.dzil/config.ini":

  [%PAUSE]
  username = YOUR-PAUSE-ID
  password = YOUR-PAUSE-PASSWORD

If this configuration does not exist, it can read the configuration from "~/.pause", in the same format that cpan-upload requires:

  user YOUR-PAUSE-ID
  password YOUR-PAUSE-PASSWORD

If neither configuration exists, it will prompt you to enter your username and password during the BeforeRelease phase. Entering a blank username or password will abort the release.

You can't put your password in your dist.ini. C'mon now!

PERL VERSION
This module should work on any version of perl still receiving updates from the Perl 5 Porters. This means it should work on any version of perl released in the last two to three years. (That is, if the most recently released version is v5.40, then this module should work on both v5.40 and v5.38.)

Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.

ATTRIBUTES

  credentials_stash
This attribute holds the name of a PAUSE stash that will contain the credentials to be used for the upload. By default, UploadToCPAN will look for a %PAUSE stash.

  username
This option supplies the user's PAUSE username. It will be looked for in the user's PAUSE configuration; if not found, the user will be prompted.

  password
This option supplies the user's PAUSE password. It cannot be provided via dist.ini. It will be looked for in the user's PAUSE configuration; if not found, the user will be prompted.

  pause_cfg_file
This is the name of the file containing your pause credentials. It defaults .pause. If you give a relative path, it is taken to be relative to "pause_cfg_dir".

  pause_cfg_dir
This is the directory for resolving a relative "pause_cfg_file". it defaults to the glob expansion of ~.

  pause_cfg
This is a hashref of defaults loaded from ~/.pause -- this attribute is subject to removal in future versions, as the config-loading behavior in CPAN::Uploader is improved.

  subdir
If given, this specifies a subdirectory under the user's home directory to which to upload. Using this option is not recommended.

  upload_uri
If given, this specifies an alternate URI for the PAUSE upload form. By default, the default supplied by CPAN::Uploader is used. Using this option is not recommended in most cases.

  retries
The number of retries to perform on upload failure (5xx response). The default is set to 3 by this plugin. This option will be passed to CPAN::Uploader.

  retry_delay
The number of seconds to wait between retries. The default is set to 5 seconds by this plugin. This option will be passed to CPAN::Uploader.

AUTHOR
Ricardo SIGNES 😏 <cpan@semiotic.systems>

COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Ricardo SIGNES.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.