0.5.0 Release

Written for ppa-dev-tools by Bryce Harrington on 2023-09-19

This 0.5 release of ppa-dev-tools includes a number of usage
conveniences people have requested, and some important fixes.

There's multiple ways to install:

By Snap...
  $ sudo snap install ppa-dev-tools
  $ sudo snap alias ppa-dev-tools.ppa ppa

By PPA...
  $ sudo add-apt-repository -ys ppa:bryce/ppa-dev-tools
  $ sudo apt-get install ppa-dev-tools

By PIP...
  $ pip install ppa-dev-tools

By source...
  $ git clone https://git.launchpad.net/ppa-dev-tools
  $ cd ppa-dev-tools
  $ sudo python3 ./setup.py install

Notable changes from 0.4 to 0.5
-------------------------------

It is now possible to create PPAs under a different team's ownership via
the `--owner` option:

    $ ppa create --owner foobar my-ppa

As a convenience, this can also be specified in ppa address form, i.e.:

    $ ppa create ppa:foobar/my-ppa

Furthermore, most places that take a PPA address will also take a full
URL, including URLs ending with /+packages. For example, all of these
are accepted as valid PPA specifiers:

    $ ppa wait my-ppa
    $ ppa wait myself/my-ppa
    $ ppa wait ppa:myself/my-ppa
    $ ppa wait https://launchpad.net/~myself/+archive/ubuntu/my-ppa
    $ ppa wait https://launchpad.net/~myself/+archive/ubuntu/my-ppa/
    $ ppa wait https://launchpad.net/~myself/+archive/ubuntu/my-ppa/+packages

Private PPA support is now available via the `--private/--public`
arguments, allowing toggling a PPA's privacy, if allowed by Launchpad.
For example:

    $ ppa create --private ppa:myself/my-private-ppa

It is now possible to save and load Launchpad OAuth credentials, to
permit use of ppa-dev-tools in situations where you can't use
launchpadlib's automatic authentication mechanics. A new command is
added to dump the credentials from an authenticated session:

    $ ppa credentials
    Launchpad credentials written to credentials.oauth

You can then load them via a new `--credentials` global argument, for
example:

    $ ppa --credentials ./credentials.oauth create ppa:myteam/myppa

Credentials can also be supplied via an LP_CREDENTIALS environment
variable. Thanks to Massimiliano Girardi for this feature.

The `ppa wait` behavior has changed to display just a screenful of
status while waiting on builds. The old behavior, where status updates
are printed to stdout and scrolled, is still available via the --log
option.

Also, the `wait` command now supports a 'name' configuration parameter
that allows specifying a single source package to wait on. The
'wait_max_age_hours' parameter makes it consider only uploads within the
given timeframe. The 'exit_on_only_build_failure' parameter makes the
wait exit if the only jobs that it is monitoring are failed builds.
These options are aimed to facilitate CI/CD integration, but can also
improve performance of the waiting operation on larger PPAs.

This release provides an important bugfix, enabling the `ppa tests`
command to properly parse and handle newer format autopkgtests. The log
files for tests run on Ubuntu lunar and newer are prefixed with a
timestamp that caused `ppa tests` to misread the subtest name. The
timestamps are now recognized and subtest names parsed properly.
(LP: #2025484)

Other bugfixes have focused on improvements to input and error handling
for a variety of conditions that have come up in practice. This
includes some more robust handling of errors generated during Launchpad
outages or other glitches (LP: #1997122).

For more information about ppa-dev-tools, including reporting bugs and
proposing changes via git, please visit the Launchpad project page:

  https://launchpad.net/ppa-dev-tools

Bryce

Read more

Read all announcements