What is ubuntu-lint?
This is a new tool I have been working on recently in an effort to improve Ubuntu upload quality and developer experience, and help create consistency around existing conventions.
It is similar but supplemental to lintian. In particular, it is intended to focus on Ubuntu-specific packaging convention and processes. Since it is written in Python, it is intended to be more approachable for developers in the Ubuntu community to contribute to.
How do I use ubuntu-lint?
On Ubuntu 26.10:
apt install ubuntu-lint
On Ubuntu 24.04 LTS:
# We will eventually SRU to 24.04 LTS
apt-add-repository ppa:enr0n/ubuntu-lint
apt install ubuntu-lint
There are a few ways to use ubuntu-lint.
First, there is the CLI tool ubuntu-lint which can be used interactively. This is useful for reviewing your work, or someone else’s. For example, the SRU team can use this to run some quick checks on uploads from the unapproved queue. See man ubuntu-lint(1) for usage.
Second, there is integration with dput-ng through dput-ng hooks. This is heavily inspired by @paelzer’s great set of hooks, and is an easy way to run additional checks at upload time. If you already have dput-ng installed, then installing ubuntu-lint will give you new hooks right away (note: if you have your own ~/.dput.d configuration, this might override ubuntu-lint’s configuration).
Finally, the ubuntu_lint Python module can be used to integrate directly into new or existing tools, and is provided by the python3-ubuntu-lint package.
Call for testing
Please consider installing and using ubuntu-lint in your workflow! Feedback, bug reports, feature requests, and pull requests are all welcome on GitHub. Thanks in advance!