PPA(1)
ppa π β the Launchpad PPA bestie manual
okay so you found the ppa page from the PPA Dev Tools Manual, section 1. pull up a chair, grab a boba, we're doing this. π§
β¨ NAME β¨
ppa β the way you talk to Launchpad's Personal Package Archive (PPA) service. yes, that PPA. the one with all your builds. π
πΈ 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 literally a whole collection of commands for hanging out with Launchpad's Personal Package Archive (PPA) service. and the vibe is: every single one of these commands is meant to be useful and usable independently, on any PPA, no matter your usage style or your config. no gatekeeping. π«Ά
one little family of commands is basically "the Launchpad website but make it terminal" β creating PPAs, deleting PPAs, listing them, configuring them, and querying various properties about them. iconic behavior.
then there's the ppa wait command, which is giving something the website literally cannot do: it polls and blocks until the PPA build system has finished and published your uploaded packages. like, it waits for you. bestie behavior fr fr. π
third capability: running autopkgtest(1) on one or more packages in the PPA, and then checking the results. slay.
and here's the thing β ppa-dev-tools does not impose a workflow on you. it gives you building blocks so you can craft your own workflows for your own use cases. you're the main character, the tools are just the supporting cast. π
β OPTIONS β
these ones are common to all ppa sub-commands, so memorize them, they're free.
-h,--helpβ prints the synopsis and a list of the most commonly used commands. the "help me bestie" button. π-A,--credentials <credentials_filename>β where your oauth credentials file lives. this lets you manage Launchpad access without logging in through a web browser, which is highkey a lifesaver for automation, or if you're runningppa-dev-toolson a host that just cannot run a browser because of graphical or other limitations. peek atppa credentials(1)for how to create this file and the alternative ways of managing it. π¦-C,--config <config_filename>β where theppa-dev-toolsconfig file lives. optional, but you can use it to change defaults or to specify values that should always be used when running its commands, like credentials. scroll to FILES (below) for the details on the file and a few parameters worth setting. π-D,--debugβ turns on general debugging. ngl this is more for development purposes than for figuring out your usage problems, and the output may vary significantly from release to release. π-V,--versionβ version information. the receipts. π--dry-runβ simulate the command without modifying anything. > heads up bestie: be aware not all commands support this yet. π-q,--quietβ minimize output during processing. shhh. π€«-v,--verboseβ makesppaverbose. useful for debugging usage problems and for seeing what underlying commands are actually being run. the tea. β
π PPA DEV TOOLS COMMANDS π
ppa-create(1)
registers a brand new PPA in Launchpad. most of the settings you can configure on the Launchpad website can be passed as arguments to this command, because the whole intent is to make creating and customizing PPAs straightforward in a single command line. periodt. those configured parameters can totally be changed later via the website or the ppa set command (below), whenever you feel like it.
the command will then display some information on using the PPA. and if you're not in the mood for it, that info display can be suppressed via the --quiet argument. π
ppa-credentials(1)
credentials can be created using the ppa credentials create command. it'll open a browser to an authorization page, and upon completion the credentials get written to the file credentials.oauth by default. then you can use that credentials file with all your other commands. β¨
ppa-desc(1)
sets the PPA's publicly visible description text. this is effectively the same as ppa set --description <text>, but plot twist β it also accepts description text from STDIN, which unlocks stuff like this:
apt-cache show figlet | grep -E "^Package|^Description-en|^ " |
ppa desc my-figlet-ppa
ppa-destroy(1)
deletes the given PPA from Launchpad. it removes the record from Launchpad and all source and binary packages contained in it. gone. π
typically the PPA's name will stay unavailable for some minutes or (sometimes) hours until Launchpad has finished processing things β but once it has, you can create a fresh new PPA with the same name. rebirth era. π¦
ppa-list(1)
lists the canonical addresses of PPAs belonging to user. short, sweet, iconic.
ppa-show(1)
displays config info about a PPA. the info includes a link to the PPA, its sources and binaries, and the total number of downloads. the full vibe check. π
ppa-tests(1)
provides clickable links (or URLs) for triggering DEP8 autopkgtest runs for package(s) in the PPA. it 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 if that's not you, you'll need to print the URLs (via the --show-urls argument) and then ask a core dev or another uploader to trigger them for you. teamwork makes the dream work. π«Ά
π EXIT STATUS π
ppa exits with status 0 if a command completes successfully, and nonzero on errors. that's it, that's the rule.
π 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. and don't worry β these settings can still be overridden via the command line options. your config isn't holding you hostage. π
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 overrides that 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. lowkey a glow-up for your build times.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 gets inferred from the currently logged-in Launchpad user. setting this value in the config file overrides 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. team player energy. π«Άpocket=<release|security|updates|proposed|backports>β this configuration value corresponds to the--pocketargument, allowing the default for the 'Ubuntu dependencies' form to be changed. by default new PPAs are set to"updates", which excludes the-proposedand-backportspocket. by specifying it in the config file rather than on the commandline it makes this the default for allppacommands β notably including bothppa createandppa 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, theppa 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 overrides that default and results in the URLs always being displayed. no cap.wait_seconds=<N>β the time between polling by theppa wait(1)command can be changed from its default value of10seconds, to customize the granularity or to minimize the load on the Launchpad service. be kind to the servers bestie. πΈ
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 . we wanna know. fr fr. π
π 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. absolute legends, all of them. π
π¦ SEE ALSO π¦
π PPA π
part of the ppa-dev-tools(1) suite.
and that's the whole page bestie β Ppa-Dev-Tools 0.7, dated 2024-05-23. now go build something iconic. mwah. π β¨π
π¦ where this page comes from
- ubuntu resolute: ppa-dev-tools 0.7.0-1 Β· GPL-2.0-or-later
- ubuntu stonking: ppa-dev-tools 0.7.0-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms