The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dist::Zilla::Plugin::Pinto::Add - Ship your dist to a Pinto repository

VERSION

version 0.083

SYNOPSIS

  # In your dist.ini
  [Pinto::Add]
  root          = http://pinto.my-host      ; at lease one root is required
  author        = YOU                       ; optional. defaults to username
  stack         = stack_name                ; optional. defaults to undef
  no_recurse    = 1                         ; optional. defaults to 0
  authenticate  = 1                         ; optional. defaults to 0
  username      = you                       ; optional. will prompt if needed
  password      = secret                    ; optional. will prompt if needed

  # Then run the release command
  dzil release

DESCRIPTION

Dist::Zilla::Plugin::Pinto::Add is a release-stage plugin that will add your distribution to a local or remote Pinto repository.

IMPORTANT: You will need to install Pinto to make this plugin work. It ships separately so you can decide how you want to install it. I recommend installing Pinto as a stand-alone application as described in Pinto::Manual::Installing and then setting the PINTO_HOME environment variable. Or you can install Pinto from CPAN using the usual tools. Either way, this plugin should just do the right thing to load the necessary modules.

Before releasing, Dist::Zilla::Plugin::Pinto::Add will check if the repository is responding. If not, you'll be prompted whether to abort the rest of the release.

If the authenticate configuration option is enabled, and either the username or password options are not configured, you will be prompted you to enter your username and password during the BeforeRelease phase. Entering a blank username or password will abort the release.

CONFIGURATION

The following parameters can be set in the dist.ini file for your distribution:

root = REPOSITORY

This identifies the root of the Pinto repository you want to release to. If REPOSITORY looks like a remote URL (i.e. it starts with "http://") then your distribution will be shipped with Pinto::Remote. Otherwise, the REPOSITORY is assumed to be a path to a local repository directory and your distribution will be shipped with Pinto.

At least one root is required. You can release to multiple repositories by specifying the root attribute multiple times. If any of the repositories are not responding, we will still try to release to the rest of them (unless you decide to abort the release altogether). If none of the repositories are responding, then the entire release will be aborted. Any errors returned by one of the repositories will also cause the rest of the release to be aborted.

author = NAME

This specifies your identity as a module author. It must be alphanumeric characters (no spaces) and will be forced to UPPERCASE. If you do not specify one, it defaults to either your PAUSE ID (if you have one configured in ~/.pause) or your current username.

stack = NAME

This specifies which stack in the repository to put the released packages into. Defaults to undef, which means to use whatever stack is currently defined as the default by the repository.

no_recurse = 0|1

If true, prevents Pinto from recursively importing all the distributions required to satisfy the prerequisites for the distribution you are adding. Default is 0.

authenticate = 0|1

Indicates that authentication credentials are required for communicating with the server (these will be prompted for, if not provided in the dist.ini file as described below). Defaults is false.

username = NAME

Specifies the username to use for server authentication.

password = PASS

Specifies the password to use for server authentication.

ENVIRONMENT VARIABLES

The following environment variables can be used to influence the default values used for some of the parameters above.

PINTO_AUTHOR_ID

Sets the default author identity, if the author parameter is not set.

PINTO_USERNAME

Sets the default username, if the username parameter is not set.

RELEASING TO MULTIPLE REPOSITORIES

You can release your distribution to multiple repositories by specifying multiple values for the root attribute in your dist.ini file. In that case, the remaining attributes (e.g. stack, author, authenticate) will apply to all the repositories.

However, the recommended way to release to multiple repositories is to have multiple [Pinto::Add] blocks in your dist.ini file. This allows you to set attributes for each repository independently (at the expense of possibly having to duplicating some information).

SUPPORT

Perldoc

You can find documentation for this module with the perldoc command.

  perldoc Dist::Zilla::Plugin::Pinto::Add

Websites

The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.

Internet Relay Chat

You can get live help by using IRC ( Internet Relay Chat ). If you don't know what IRC is, please read this excellent guide: http://en.wikipedia.org/wiki/Internet_Relay_Chat. Please be courteous and patient when talking to us, as we might be busy or sleeping! You can join those networks/channels and get help:

  • irc.perl.org

    You can connect to the server at 'irc.perl.org' and join this channel: #pinto then talk to this person for help: thaljef.

Bugs / Feature Requests

https://github.com/thaljef/Dist-Zilla-Plugin-Pinto-Add/issues

Source Code

The code is open to the world, and available for you to hack on. Please feel free to browse it and play with it, or whatever. If you want to contribute patches, please send me a diff or prod me to pull from your repository :)

https://github.com/thaljef/Dist-Zilla-Plugin-Pinto-Add

  git clone git://github.com/thaljef/Dist-Zilla-Plugin-Pinto-Add.git

AUTHOR

Jeffrey Ryan Thalhammer <jeff@stratopan.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Jeffrey Ryan Thalhammer.

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