PPA(1)

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 DEV TOOLS COMMANDS

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

REPORTING BUGS
Report bugs at https://bugs.launchpad.net/ppa-dev-tools .

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.

SEE ALSO
git-ubuntu(1)

PPA
Part of the ppa-dev-tools(1) suite.