Dist::Z...adToCPAN(3)

πŸ’– NAME πŸ’–

Dist::Zilla::Plugin::UploadToCPAN β€” bestie, it uploads your dist to CPAN. That's the whole job. That's the assignment. ✨

So fun fact about this page, the manual name is Dist::Z...adToCPAN(3) (the perldoc gods chopped it all cute for the header) and it lives in the User Contributed Perl Documentation collection, which is exactly what it sounds like β€” the people's docs. 🫢

🌸 VERSION 🌸

version 6.040 β€” she's at 6.040, periodt.

πŸŽ€ SYNOPSIS πŸŽ€

If you load this plugin, it lets the release command do the thing where it uploads to CPAN. That's it. That's the synopsis. Load it and release gets wings. πŸ¦‹

πŸ’… DESCRIPTION πŸ’…

Okay so here's the tea, this plugin goes hunting for config in your dist.ini or (and let's be real, more likely) ~/.dzil/config.ini:

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

If that config isn't there? No worries, she'll also read from ~/.pause, in the exact same format that cpan-upload needs:

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

And if neither of those exist, she'll just straight up ask you for your username and password during the BeforeRelease phase. πŸ’¬ But heads up β€” if you type a blank username or a blank password, that aborts the release. Like, gone. Bye. πŸ™ˆ

And no, you literally cannot put your password in your dist.ini. C'mon now! Bestie. Please. 😭

🧚 PERL VERSION 🧚

This module should work on any version of perl that's still getting updates from the Perl 5 Porters. Translation: any perl released in the last two to three years. (So like, if the most recently released version is v5.40, then this module should work on both v5.40 and v5.38.) πŸ‘‘

And even though it may work on older perls, there is no guarantee that the minimum required version won't get raised. The version can be increased for literally any reason, and there is no promise that patches to lower the minimum required perl will be accepted. So don't come for her. πŸ’€


🌈 ATTRIBUTES 🌈

⭐ credentials_stash

This attribute holds the name of a PAUSE stash that's gonna contain the credentials used for the upload. By default, UploadToCPAN looks for a %PAUSE stash.

⭐ username

This option gives the user's PAUSE username. She'll look for it in the user's PAUSE configuration first; if it's not found, you get prompted. πŸ‘€

⭐ password

This option gives the user's PAUSE password. She cannot be provided via dist.ini. (We said what we said.) She'll look for it in the user's PAUSE configuration; if it's not found, you get prompted.

⭐ pause_cfg_file

This is the name of the file holding your pause credentials. Defaults to .pause. If you give a relative path, it gets taken as relative to pause_cfg_dir. πŸ—‚οΈ

⭐ pause_cfg_dir

This is the directory used 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 β€” and ngl, this attribute is subject to removal in future versions, because the config-loading behavior in CPAN::Uploader is getting improved. ⚠️ Future you has been warned.

⭐ 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 gets 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 gets passed to CPAN::Uploader. ⏳


πŸ‘‘ AUTHOR πŸ‘‘

Ricardo SIGNES 😏 <cpan@semiotic.systems>

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.


k that's the whole page, bestie, you ate πŸ’… This little bundle of joy is documented as Dist::Z...adToCPAN(3), shipped with perl v5.42.3, dated 2026-10-19. Go forth and release. πŸŽ€βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from