ppa-dev-tools 0.6.0 release

Bryce Harrington bryce.harrington at canonical.com
Wed Jun 5 03:26:15 UTC 2024


The `ppa tests` command received a bunch of bug fixes to autopkgtest
trigger URL generation and test result processing, along with some
noteworthy packaging advancements in this 0.6 release.

ppa-dev-tools is a Launchpad API client that lets you create and manage
Personal Package Archives (PPAs) from the command-line, run autopkgtests
against them, and check results.  E.g.:

  $ ppa create my-ppa
  $ dput *.changes ppa:<lpuser>/my-ppa
  $ ppa wait my-ppa
  $ ppa tests my-ppa
  $ ppa destroy my-ppa

There's multiple ways to install:

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

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.5 to 0.6
-------------------------------

With this release comes some significant improvements in packaging of
ppa-dev-tools, including completion of the transition to modern Python
build packaging and dropping of the old setup.py approach.  Of even more
note, ppa-dev-tools is now included in Debian testing, so can now be
installed directly on that operating system; hopefully soon it will be
available from Ubuntu oracular as well.

Meanwhile, the snap packaging has been significantly improved, including
snapshot builds, builds for all supported architectures, better handling
of Launchpad credentials, and a registered alias for the 'ppa' command.

Several irregularities were found in various corner cases with the
parsing, processing, and display of test results for the `ppa tests`
command.  These are fixed and the testsuite expanded to cover a wider
variety of test (mis-)behaviors.  The --package argument now filters the
results as well as the triggers, which will be helpful for users of PPA
containing many packages.

As well, the `ppa tests` command's handling of triggers has received
some fixes that were causing them to not be displayed in some
circumstances, or to be improperly encoded for some package version
numbers.

Thanks to all the contributors to this release: Alberto Contreras,
Alexandre Detiste, Heinrich Schuchardt, Mitchell Dzurick, Nathan Pratta
Teodosio, Simon Chopin and Benjamin Drung.


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


Issues fixed in this release
----------------------------

* DeprecationWarning: pkg_resources is deprecated as an API. The 'ppa-dev-tools==0.5.0' distribution was not found
  (LP: #2055636)
* ppa tests --packages still shows test result from other packages
  (LP: #2025483)
* Tests result duplicated
  (LP: #2038649)
* ppa-dev-tools shows failing tests even though they are passing in the log
  (LP: #2043505)
* Duplicated test URLs and no all-proposed URLs
  (LP: #2044608)
* ppa put invalid subcommand
  (LP: #2066884)
* ppa wait waits on cancelled builds
  (LP: #2067268)
* Incomplete packages listing - bionic not included
  (LP: #2038651)
* Try to get results from a serie not available in the ppa
  (LP: #2043595)
* ppa suggests status is a possible argument command
  (LP: #2067271)
* Consider adopting build, poetry or hatch as packaging system
  (LP: #1989617)
* Support subtest status 'FLAKY'
  (LP: #1989650)
* "ppa-dev-tools.ppa tests" fails to trigger build
  (LP: #2049105)
* small help for comfort until --credentials isn't needed anymore
  (LP: #2051235)
* The following error shows as passed: ERROR: testbed failure: unexpected eof from the testbed
  (LP: #2065754)


Shortlog of changes since 0.5.1
-------------------------------

Alberto Contreras (1):
      doc: remove invalid ppa put example

Alexandre Detiste (1):
      replace mock by unittest.mock from standard library

Bryce Harrington (46):
      Include ESM releases in allowed list of triggers.
      results: Add test case for show_results()
      results: Avoid printing excessive duplicate results
      NEWS: Set version
      ppa: Fix the all-proposed link
      ppa: Fix f-string for how to add the ppa
      processes: Include output when raising ReturnCode
      trigger: Refactor object generation into new get_triggers()
      trigger: Refactor trigger display logic to new show_triggers()
      trigger: Rename series_codename to just series
      trigger: Improve Trigger class docs
      tests: Implement test_get_results()
      results: Fix invalid url generation for get_results()
      Rename exception to PpaNotFoundError
      ppa: Use standard error codes for exit conditions
      ppa: Catch exceptions for issues when reading config files
      tests: Expand test cases for test_to_dict()
      tests: Add test case for to_bullet_tree()
      test_result: Add subtest cases to test_to_bullet_tree()
      result: Display status line for failed subtests
      result: Reorder to_bullet_tree()
      tests: Fix whitespace in trigger tests (flake8)
      job: Fix whitespace in jobs code (flake8)
      ppa: Locally define EX_NOTFOUND which is not present on all *nix
      tests: Implement tests for Results status and status_icon
      tests: Improve test cases for identifying triggers from results logs
      tests: Extend test_show_triggers() with more detailed cases
      trigger: Fix omission of all-proposed URLS when -L specified
      snap: Expand list of architectures to build
      tests: Don't use local paths in test cases
      io: Quell error messages for non-existing results and jobs
      Add functionality to filter test results by package
      packaging: Exclude snap directory for source package build
      packaging: Install the script when building
      packaging: Drop deprecated setup.py in favor of 'build' pkg system
      TESTING: document test dependencies
      tox: Add dependencies so tox will run
      ppa test: Don't lookup results twice
      result: Return triggers even for failed testbed setups
      result: Handle testbed setup failures, treating as 'BAD'
      Add support for subtests marked as 'FLAKY'
      snap: The ppa alias is now registered officially
      Sync debian/ packaging with the Debian package
      INSTALL: Mention installability via Debian
      NEWS: Summarize changes for 0.6.0 release
      Releasing 0.6.0

Heinrich Schuchardt (2):
      test_request_url: provide more test cases
      Job.request_url: urlencode parameter strings

Mitchell Dzurick (1):
      ppa: add --credentials to wait help (LP: #2051235)

Nathan Pratta Teodosio (2):
      ppa: Drop status command from argument parser.
      Disregard cancelled builds from pending publications.

Simon Chopin (1):
      snap: add missing plugs `desktop` and `password-manager-service`



More information about the ubuntu-devel mailing list