PPA-CREATE(1)

πŸ“¦ version 0.7.0, in ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

okay so hi bestie, welcome to PPA CREATE(1) β€” it lives in the PPA Dev Tools Manual and it's genuinely one of the most useful little gremlins in the whole suite 🫢

ppa create β€” registers a new PPA in Launchpad. that's the whole job. it does the job beautifully.


🌈 SYNOPSIS 🌈

ppa create [-h | --help] [--owner-name | --team-name <name>] [-a |
--architectures] [--all-arches | --all-architectures]
[--default-architectures] [--displayname] [--ppa-dependencies]
[--pocket] [-P | --private] [--public] [--publish] [--no-publish] <ppa-
name>

✨ DESCRIPTION ✨

so the ppa create command adds a new Personal Package Archive (PPA) to the Launchpad project management web application. that's the vibe. πŸŽ€

and here's the slay part: most of the settings you can configure from the Launchpad website can be specified as arguments to this command. the whole intent is to make it straightforward to create and customize PPAs with a single command line. one command, one PPA, no clicking around like it's 2009. πŸ’…

those configured parameters can later be changed via the website or the ppa set(1) command as desired β€” so nothing you do here is permanent, breathe.

The command will then display some information on using the PPA. if you don't want that little info dump, it can be suppressed via the global --quiet argument. πŸ™ˆ


πŸ‘‘ OPTIONS πŸ‘‘

The following options are used by the ppa create command.

  • --owner-name | --team-name <name> β€” instead of the currently logged in Launchpad user, create the new PPA under the given owner or team name. but heads up bestie: the current user must be a member or otherwise authorized to create PPAs within that namespace. no sneaking into other people's houses. 🚫
  • -a | --architectures β€” a comma-separated list of hardware architectures to use. you can use this to reduce the number of architectures in order to minimize build and/or test time (by excluding slower architectures), or to opt-in to special alternative architectures (which may require special authorization by Launchpad's administrators). so like, either "less waiting" or "the weird ones, with permission". ⭐

Note that this setting can be useful to place in the global config file (see the ppa-dev-tools(1) man page for details) with the desired set of architectures to always run against by default.

  • --all-arches | --all-architectures β€” enable all architectures generally available to Launchpad PPAs. plot twist: the ppa create command already enables all architectures if no other architectural parameters are specified, so this option is not generally needed. however, if the architectures setting is set in the global config file to a subset of architectures, this option can be used to override it. it's giving "undo my own config, respectfully". 😭
  • --default-architectures β€” enable only the standard architectures that the Launchpad website sets by default for new PPAs. generally this corresponds to a minimal set of the most common architecture(s). the low-key, no-thoughts-just-defaults option. 🌸
  • --displayname β€” a short title for the PPA's web page on Launchpad. it's the PPA's main character nameplate. ✨
  • --ppa-dependencies <ppa-1[,ppa-2[,...]]> β€” the set of other PPAs this PPA should use for satisfying build dependencies. the ppa names should be listed without the 'ppa:' prefix. for instance:
$ ppa create --ppa-dependencies ateam/ppa-1,ateam/ppa-2
ppa:me/myppa
  • --pocket β€” controls how the Launchpad builders satisfy dependencies from the Ubuntu primary archive when building packages uploaded to the PPA. those packages are placed into groupings called 'pockets'. pockets allow users to balance their risk exposure to software defects against the extent of updates they gain when updating their system, by individually selecting which pockets to allow. 🧚

For PPAs, this works a bit differently: rather than picking individual pockets, Launchpad allows PPAs to select between five different configuration levels, each defining a specific sets of pockets. the --pocket option allows specifying which level to use:

  • release β€” this allows taking build dependencies ONLY from the versions of packages in the given Ubuntu series release (up to its most recent point release). Corresponds to "Basic (only released packages)" in the Launchpad +edit-dependencies web page. the safe one. the boring one. the one that works. πŸ’€
  • security β€” package updates from both release and also the incremental critical fixes for security issues are used for build dependencies. Corresponds to "Security (basic dependencies and important security updates)" in the Launchpad +edit-dependencies web page.
  • updates β€” in addition to the security updates on top of the basic release packages, this also includes all the usual stability updates, including general bug fixes as well as selected backports of upstream microreleases where deemed adequately safe. This is the default update configuration for a standard Ubuntu installation, and thus is also the standard default configuration of PPAs. Corresponds to "Default (security dependencies and recommended updates)" in the Launchpad +edit-dependencies web page. it's the icon, it's the blueprint, it's the default for a reason. πŸŽ€
  • proposed β€” the -proposed pocket carries newly introduced fixes and improvements on top of the release + security + updates configuration. the package updates in this pocket are generally intended to move to the -updates pocket once they've been adequately reviewed and tested. Corresponds to "Proposed (default dependencies and proposed updates)" in the Launchpad +edit-dependencies web page.
Enabling this is strongly recommended for PPAs containing packages intended for being uploaded to the Ubuntu development series. like, genuinely, do it. πŸ”₯
  • backports β€” this enables the -backports pocket, which contains new major releases of software and the new features (and bugs!) that come with them, on top of the release + security + updates configuration. notably, this does not include the -proposed. Corresponds to "Backports (default dependencies and unsupported updates)" in the Launchpad +edit-dependencies web page.
This is not recommended to be enabled for primary archive distro packaging work, except for updates intended for inclusion in the -backports pocket. living dangerously has a time and a place, and it's not here. 😭
  • -P | --private β€” restrict access to the PPA to its owner and subscribers. this can only be changed if the archive has never had any sources published and the owner/group has permission to do so. so like, decide early. πŸ‘‘
Note that Autopkgtest cannot run against private PPAs, so the ppa tests command cannot be used with them. that's just how it is bestie, no cap. πŸ’€
  • --public β€” allow access to the PPA to anyone, thereby reversing the --private setting where Launchpad permits. This is the default for new PPAs. 🫢
  • --publish β€” allow built packages in the PPA to be made available for download. This is the default for new PPAs, and reverses the --no-publish setting. πŸ“¦
  • --no-publish β€” do not make packages in the PPA available for public download. they will still be built, however, but Autopkgtests will not be runnable against them. built but not shared. a private little build. πŸ“

πŸ¦‹ REPORTING BUGS πŸ¦‹

found a bug? report it at https://bugs.launchpad.net/ppa-dev-tools β€” the devs literally want to know, that's the whole point of the link. πŸ›


🌸 SEE ALSO 🌸

ppa-dev-tools(1), ppa-set(1), ppa-destroy(1).

go read them, they're all part of the same iconic friend group.


πŸ’œ PPA πŸ’œ

Part of the ppa-dev-tools(1) suite. one big happy family.


and that's the page, bestie ✨ β€” brought to you by Ppa-Dev-Tools 0.7, dated 2024-05-23. now go create something iconic. periodt. πŸ’…πŸŒˆ

πŸ“¦ where this page comes from