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

App::Pinto::Admin::Command::add - add local distributions to the repository

VERSION

version 0.036

SYNOPSIS

  pinto-admin --root=/some/dir add [OPTIONS] ARCHIVE_FILE_OR_URL ...
  pinto-admin --root=/some/dir add [OPTIONS] < LIST_OF_ARCHIVE_FILES_OR_URLS

DESCRIPTION

This command adds a local distribution archive and all its packages to the repository and recomputes the 'latest' version of the packages that were in that distribution.

When a distribution is first added to the repository, the author becomes the owner of the distribution (actually, the packages). Thereafter, only the same author can add new versions or remove those packages. However, this is not strongly enforced -- you can change your author identity at any time using the --author option.

By default, Pinto also recursively imports all the distributions that are required to provide the prerequisite packages for the newly added distribution. When searching for those prerequisite pakcages, Pinto first looks at the the packages that already exist in the local repository, then Pinto looks at the packages that are available available on the remote repositories. At present, Pinto takes the *first* package it can find that satisfies the prerequisite. In the future, you may be able to direct Pinto to instead choose the *latest* package that satisfies the prerequisite (NOT SURE THOSE LAST TWO STATEMENTS ARE TRUE).

Imported distributions will be assigned to their original author, not the author who added the distribution that triggered the import. Also, packages provided by imported distributions are still considered foreign, so locally added packages will always override ones that you imported, even if the imported package has a higher version.

COMMAND ARGUMENTS

Arguments to this command are paths to the distribution files that you wish to add. Each of these files must exist and must be readable. If a path looks like a URL, then the distribution first retrieved from that URL and stored in a temporary file, which is subsequently added.

You can also pipe arguments to this command over STDIN. In that case, blank lines and lines that look like comments (i.e. starting with "#" or ';') will be ignored.

COMMAND OPTIONS

    Sets your identity as a distribution author. The NAME must be alphanumeric characters (no spaces) and will be forced to uppercase. Defaults to the user specified in your ~/.pause configuration file (if such file exists). Otherwise, defaults to your current login username.

    --message=MESSAGE

    Prepends the MESSAGE to the VCS log message that Pinto generates. This is only relevant if you are using a VCS-based storage mechanism for Pinto.

    --nocommit

    Prevents Pinto from committing changes in the repository to the VCS after the operation. This is only relevant if you are using a VCS-based storage mechanism. Beware this will leave your working copy out of sync with the VCS. It is up to you to then commit or rollback the changes using your VCS tools directly. Pinto will not commit old changes that were left from a previous operation.

    --noinit

    Prevents Pinto from pulling/updating the repository from the VCS before the operation. This is only relevant if you are using a VCS-based storage mechanism. This can speed up operations considerably, but should only be used if you *know* that your working copy is up-to-date and you are going to be the only actor touching the Pinto repository within the VCS.

    --norecurse

    Prevents Pinto from recursively importing distribtuions required to satisfy the prerequisites of the added distribution. Imported distributions are pulled from whatever remote repositories are configured as the source for this local repository.

    --tag=NAME

    Instructs Pinto to tag the head revision of the repository at NAME. This is only relevant if you are using a VCS-based storage mechanism. The syntax of the NAME depends on the type of VCS you are using.

DISCUSSION

Using the 'add' command on a distribution you got from another repository (such as CPAN mirror) effectively makes that distribution local. So you become the owner of that distribution, even if the repository already contains a foreign distribution that was pulled from another repository by the mirror or import command.

Local packages are always considered 'later' then any foreign package with the same name, even if the foreign package has a higher version number. This allows you to mask a foreign package with your own locally patched version.

AUTHOR

Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Imaginative Software Systems.

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

1 POD Error

The following errors were encountered while parsing the POD:

Around line 133:

You can't have =items (as at line 141) unless the first thing after the =over is an =item