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

NAME

App::Pinto::Command::update - update packages to latest versions

VERSION

version 0.0997

SYNOPSIS

  pinto --root=REPOSITORY_ROOT update [OPTIONS] TARGET ...

DESCRIPTION

!! THIS COMMAND IS EXPERIMENTAL !!!

This command updates packages in your repository to the newer versions in an updstream repository. By default, Pinto takes the first newer version that it finds. If the --cascade option is used, then Pinto will take the newest version it finds among all the upstream repositories.

COMMAND ARGUMENTS

Arguments are the names of the pakcages you want to install. If using the --all or --roots options then arguments are not allowed.

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. If using the --all or --roots options, then input will not be read from STDIN.

COMMAND OPTIONS

--all

Update all distributions in the stack. We do not attempt to update locally added distributions unless --force is used. If this option is used, then package names cannot be given as command arguments. See also the --roots option.

--cascade

!! THIS OPTION IS EXPERIMENTAL !!

When searching for a package (or one of its prerequisites), always take the latest satisfactory version of the package found amongst all the upstream repositories, rather than just taking the first newer version that is found. Remember that Pinto only searches the upstream repositories when the local repository does not already contain a satisfactory version of the package.

--diff-style=STYLE

Controls the style of the diff reports. STYLE must be either concise or detailed. Concise reports show only one record for each distribution added or deleted. Detailed reports show one record for every package added or deleted.

The default style is concise. However, the default style can changed by setting the PINTO_DIFF_STYLE environment variable to your preferred STYLE. This variable affects the default style for diff reports generated by all other commands too.

--dry-run

Go through all the motions, but do not actually commit any changes to the repository. At the conclusion, a diff showing the changes that would have been made will be displayed. Use this option to see how upgrades would potentially impact the stack.

--force

Forcibly unpin any packages that require updating. The pins will not be restored after a succesful update.

--no-fail

!! THIS OPTION IS EXPERIMENTAL !!

Normally, failure to pull a target (or its prerequisites) causes the command to immediately abort and rollback the changes to the repository. But if C <--no-fail> is set, then only the changes caused by the failed target (and its prerequisites) will be rolled back and the command will continue processing the remaining targets.

This option is useful if you want to throw a list of targets into a repository and see which ones are problematic. Once you've fixed the broken ones, you can throw the whole list at the repository again.

--message=TEXT
-m TEXT

Use TEXT as the revision history log message. If you do not use the --message option or the --use-default-message option, then you will be prompted to enter the message via your text editor. Use the PINTO_EDITOR or EDITOR or VISUAL environment variables to control which editor is used. A log message is not required whenever the --dry-run option is set, or if the action did not yield any changes to the repository.

--pin

Pins the packages to the stack, so they cannot be changed until you unpin them. Only the packages in the requested targets will be pinned -- packages in prerequisites will not be pinned. However, you may pin them separately with the pin command if you so desire.

--recurse
--no-recurse

Recursively pull any distributions required to satisfy prerequisites for the targets. The default value for this option can be configured in the pinto.ini configuration file for the repository (it is usually set to 1). To disable recursion, use --no-recurse.

--roots

Updates the root distributions of the stack. We do not attempt to update locally added distributions unless --force is used. If this option is used, then package names cannot be given as command arguments. See also the --all option.

--skip-missing-prerequisite=PACKAGE
-k PACKAGE

!! THIS OPTION IS EXPERIMENTAL !!

Skip any prerequisite with name PACKAGE if a satisfactory version cannot be found. However, a warning will be given whenever this occurrs. This option only has effect when recursively fetching prerequisites for the targets (See also the --recurse option). This option can be repeated.

--skip-all-missing-prerequisites
-K

!! THIS OPTION IS EXPERIMENTAL !!

Skips all missing prerequisites if a satisfactory version cannot be found. However, a warning will be given whenever this occurrs. This option will silently override the --skip-missing-prerequisite option and only has effect when recursively fetching prerequisites for the targets (See also the --recurse option).

--stack=NAME
-s NAME

Puts all the packages onto the stack with the given NAME. Defaults to the name of whichever stack is currently marked as the default stack. Use the stacks command to see the stacks in the repository.

--use-default-message
-M

Use the default value for the revision history log message. Pinto will generate a semi-informative log message just based on the command and its arguments. If you set an explicit message with --message, the --use- default-message option will be silently ignored.

--with-development-prerequisites
--wd

Also pull development prerequisites so you'll have everything you need to work on those distributions, in the event that you need to patch them in the future. Be aware that most distributions do not actually declare their development prerequisites.

AUTHOR

Jeffrey Ryan Thalhammer <jeff@stratopan.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 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.