Wednesday, 10 September 2025

ppa-dev-tools 0.7.0 release

Ppa Dev Tools Release 0.7.0
---------------------------

Two major areas of development in this release focused on documentation
and the introduction of a SourcePublication class.

Man pages are now provided for all of the subcommands, and the help text
for each is now correct. Process documentation for releasing,
maintaining, and developing the application are more filled in as well.

The SourcePublication class provides tracking of the three data
"coordinates" (Package, Version, Series) that fully define a source
package's release state in place and time. Several subcommands have
been internally refactored to use this class for better code clarity,
with some command line options added to allow their use in filtering
what is displayed in output.


Additionally:

* The powerpc architecture is demoted to legacy, and the riscv64 has
been promoted to a default architecture when creating a new PPA.

* The pocket for newly created PPAs can now be specified via the --pocket
option, and can be set as the default in the ppa-dev-tools config file.
This is handy when enabling the '-proposed' pocket for a new PPA.
Thanks to Simon Chopin for this new feature.

* Some refinement has been made to handle temporary inconsistencies in the
Launchpad-reported "devel series" after one -devel series has frozen but
the next has opened. This had caused some confusion in the ppa tool's
behavior during this period of the development cycle.

* The show command received a number of enhancements. As part of the
aforementioned SourcePackage refactor, it now filters the list of source
package publications more concisely by default, and allows better
control via some new command line options. The command also now
prints a handy direction on installing the PPA, thanks to a suggestion
by Christian Ehrhardt.

* Emoji support is improved for better behavior with the Alacritty
terminal emulator. Thanks to Florent 'Skia' Jacquet for this
enhancement.

* The test suite has received heavy attention through fixes, expanded
coverage to 58%, and correction of lint/flake/tox issues.


This release is also serving as a pre-release of an upcoming version
1.0 hopefully within the next few weeks, after wish maintainership of
the software will be taken up by Renan Rodrigo Barbosa going forward.


About Ppa Dev Tools
-------------------
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 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

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

[NOTE: Snap build for 0.7 is not available yet, due to some problems
with the snapcraft machinery, but hopefully should be available over
the coming days.]


Shortlog of Changes From 0.6 to 0.7
-----------------------------------

Bryce Harrington (67):
Include test-related materials in the dist tarball
d/control: Reduce debhelper-compat to 12 for focal backporting
Fix typing for old python
RELEASING: Update version number example
RELEASING: Generate changelog and shortlog
RELEASING: Sign and verify the tarball
RELEASING: Also CC ubuntu-devel@
trigger: Use local referencing for text module
tests: Update test_get_triggers() to adjust for emoticon spacing
ppa: Fill in command help text
man: Add man page for ppa-dev-tools
man: Document recently added 'pocket' config setting
Fix configuration of boolean settings
man: Document how to specify command-specific settings
ppa: Fix incorrect help text for --default-architectures
man: Add man pages for the create and set commands
man: Add man pages for remaining commands
ppa: Drop get_das()
Add a SourcePublication class
Refactor use of SourcePublication into Trigger objects
Fix yaml's safe_load_all deprecation
Add security policy required by Canonical
tox: Reorder tool execution
tox: Update pytest configuration
tox: Skip tests dependent on apt_pkg
tox: Improve flake8 behavior
tox: Run pylint on requested files
tox: Switch from pep8 to pycodestyle
tox: Also include scripts for flake and pylint
tox: Improve pylint behavior
source_publication: Fix pylint
tox: Explain rationale for flake8 skips
ppa show: Display command to install the PPA
Demote powerpc to legacy
constants: Promote riscv64 to the "all architectures" list
tests: Remove unnecessary return from test (pylint)
ppa: Drop 'UNIMPLEMENTED' command
ppa: Fix formatting of options
ppa: Fix usage text for subcommands to show the subcommand
ppa: Improve display of subcommands for ppa --help
text: Compare types with is, not ==
ppa: Fix config issue with the credentials command
lp: Add support for readonly mode
pkg-updates: Lookup devel milestones from Launchpad
lp: Handle devel series when frozen
tests: Improve ppa script's test cases
tests: Add top level module doc for all tests [pylint/flake]
text: Prefer isinstance() over type() == [pylint/flake]
ppa: Parameter docs cleanup [pylint/flake]
ppa: Typing for get_source_publications()
source_publication: Track status of the SourcePublication
result: Fix __repr__ to show full constructor parameters
ppa: Implement get_source_publications()
ppa: Fix unpacking comma separated lists
ppa: Move config/arg processing into create_config()
ppa: Refactor unpack_config() more concisely
ppa: Drop architecture from get_source_publications()
ppa command_show: Convert to using publications
RELEASING: Document building for multiple releases
RELEASING: Use the version to assist in preparing release notes
LICENSE: Rename to remove disallowed character
pyproject: Lock down setuptools version
NEWS: Add entry for 0.7.0
Releasing 0.7.0
- d/s/format: Switch back to native format
- Restore setup.py, still required for jammy backport
changelog

Florent 'Skia' Jacquet (1):
triggers: make URL clickable in more terminals

Hook25 (1):
Add missing dependency on python3-keyring

Jonas Jelten (1):
show distro series name for source triggers

Olivier Gayot (2):
ppa-show: print the name of the series
ppa-show: parse the series link instead of querying launchpad

Simon Chopin (5):
tests: enhance LP mocking to better model archive dependencies
Implement pocket support for PPA creation
Ppa: invalidate cached `dependencies` property when changing them
config: allow command-specific knobs in the config file
Paper over ruaml vs PyYaml API incompatibilities

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel