NAME¶
ppa - interact with Launchpad's Personal Package Archive (PPA)
service
SYNOPSIS¶
ppa [-h | --help] [-A | --credentials
<credentials_filename>] [-C | --config <config_filename>] [-D |
--debug] [-V | --version] [--dry-run] [-q | --quiet] [-v | --verbose]
<command> [<args>]
DESCRIPTION¶
Ppa-dev-tools is a collection of commands for interacting with
Launchpad's Personal Package Archive (PPA) service. Each of the
commands is intended to be useful and usable independently on any PPA
regardless of usage style or configuration.
One set of commands focus on providing command line alternatives
to functionality provided by the Launchpad website. This includes
creation, deletion, listing, and configuration of PPAs, and querying various
properties about them.
The "ppa wait" command provides a functionality
not available from the website: Polling and blocking until the PPA
build system has finished and published uploaded packages.
A third capability is running autopkgtest(1) on one or more
packages in the PPA, and then checking the results.
ppa-dev-tools does not impose a workflow, but rather
provides building blocks for users to craft their own workflows particular
to their own use cases.
OPTIONS¶
The following options are common to all ppa sub-commands.
-h, --help
Prints the synopsis and a list of the most commonly used
commands.
-A, --credentials <credentials_filename>
Location of oauth credentials file. This permits managing
Launchpad access without needing to log in via the web browser, which can be
helpful in automation or if ppa-dev-tools is used on a host that lacks
the ability to run a web browser due to graphical or other limitations. See
ppa credentials(1) for details on how to create this file, and
alternative ways of managing it.
-C, --config <config_filename>
Location of the ppa-dev-tools config file. This is
optional, but can be used to change defaults or to specify values that should
always be used when running its commands, such as credentials. See
FILES (below) for details on the file and a few parameters that may be
useful to set in it.
-D, --debug
Turn on general debugging. This is intended more for
development purposes than to discover usage problems. Output may vary
significantly from release to release.
-V, --version
Version information.
--dry-run
Simulate command without modifying anything. Be aware not
all commands support this yet.
-q, --quiet
Minimize output during processing.
-v, --verbose
Makes ppa verbose. Useful for debugging usage problems
and seeing what underlying commands are run.
ppa-create(1)
Registers a new PPA in Launchpad. Most of the settings
that are configurable from the Launchpad website can be specified as arguments
to this command, with the intent to make it straightforward to create and
customize PPAs with a single command line. These configured parameters can
later be changed via the website or the
ppa set command (below) as
desired.
The command will then display some information on using the PPA.
This information display can be suppressed via the --quiet
argument.
ppa-credentials(1)
Credentials can be created using the ppa credentials
create command. This command will open a browser to an authorization page.
Upon completion, the credentials will be written to the file credentials.oauth
by default. This credentials file can then be used with other commands.
ppa-desc(1)
Sets the PPA's publicly visible description text. This is
effectively the same as
ppa set --description <text>, however it
also will accept description text from STDIN, which permits usage such as for
example:
apt-cache show figlet | grep -E
"^Package|^Description-en|^ " | ppa desc my-figlet-ppa
ppa-destroy(1)
Deletes the given PPA from Launchpad. This removes the
record from Launchpad as well as all source and binary packages contained in
it. Typically, the PPA's name will remain unavailable for some minutes or
(sometimes) hours until Launchpad has completed processing things, but once it
has, a fresh new PPA can be created with the same name.
ppa-list(1)
Lists the canonical addresses of PPAs belonging to
user.
ppa-show(1)
Displays config info about a PPA. The information
includes a link to the PPA, its sources and binaries, and the total number of
downloads.
ppa-tests(1)
Provides clickable links (or URLs) for triggering DEP8
autopkgtest runs for package(s) in the PPA. Also shows currently in-process
tests, and summarizes the results once they've completed.
Note that running autopkgtests is restricted to those with package
upload capabilities, so those without will need to print the URLs (via the
--show-urls argument), and then request a core dev or other uploader to
trigger them.
EXIT STATUS¶
ppa exits with status 0 if a command completes
successfully, and nonzero on errors.
FILES¶
~/.config/ppa-dev-tools/config.yml
Many of the command line options can be listed in this
optional config file to make them apply globally as default values. These
settings can still be overridden via the command line options.
Some specific settings that may prove handy in certain cases:
architectures=<arch,...>
Several commands assume the user will wish to operate on
all available architectures if not otherwise specified. Specifying this
setting in the config file will override this default behavior with a given
comma-delimited list of desired architectures. This can be useful to avoid
provisioning new PPAs to include problematic or low performance architectures,
for example.
owner_name=<lp-username>
When a PPA is given by name rather than address, e.g.
"my-ppa" instead of "ppa:me/my-ppa", the owner name will
be inferred from the currently logged-in Launchpad user. Setting this value in
the config file will override that, which may be useful if the tools will be
used without a Launchpad login. Another use case is if the user typically
works with PPAs belonging to one of their teams, rather than to their own
user.
pocket=<release|security|updates|proposed|backports>
This configuration value corresponds to the --pocket
argument, allowing the default for the 'Ubuntu dependencies' form to be
changed. By default new PPAs are set to "updates" as the default,
which excludes the -proposed and -backports pocket. By specifying it in the
config file rather than on the commandline it makes this the default for all
ppa commands; notably including both
ppa create and
ppa
set, the latter of which may be undesirable, so it is recommended to
specify this as a command-specific configuration setting (see below).
See the --pocket options' documentation in ppa create for
more details about the values.
show_urls=<true|false>
By default, the ppa tests(1) command will display
triggers as clickable hyperlinks in the terminal window. Not all terminal
windows support ANSI links, and some users may just prefer seeing the full
URLs. Setting this parameter in the config file will override that default and
result in the URLs always being displayed.
wait_seconds=<N>
The time between polling by the ppa wait(1)
command can be changed from its default value of 10 seconds, to customize the
granularity or to minimize the load on the Launchpad service.
Command-specific Configuration¶
Some commands share the same arguments, most notably
ppa create(1) and
ppa set(1), however one may wish certain
custom values to apply by for calls to the former but not the latter. To
differentiate this, in the "config.yml" use the YAML dict-in-dict
style notation. For example:
### config.yaml ### credentials:
~/.config/ppa-dev-tools/credentials.oauth
create:
architectures: amd64,ppc64el,s390x
pocket: proposed
tests:
show_urls: True
wait:
wait_seconds: 60
AUTHORS¶
ppa-dev-tools was originally created by Bryce Harrington
for supporting X.org maintenance work on Canonical's Desktop Team, and later
revised and significantly expanded as part of Canonical's Server Team to
support Ubuntu distro maintenance more generally. Numerous contributions
have been made by other Canonical engineers and Ubuntu community members.
See the AUTHORS for their credits.