78 lines
2.1 KiB
Markdown
78 lines
2.1 KiB
Markdown
# debian-todo
|
|
|
|
A CLI tool for Debian maintainers to track packages with new upstream versions that need updating.
|
|
|
|
## Overview
|
|
|
|
This tool fetches TODO items from the [Debian UDD (Ultimate Debian Database)](https://udd.debian.org/) and displays packages where a new upstream version is available. It filters out pre-release versions and shows relevant metadata like team ownership and co-uploaders.
|
|
|
|
## Requirements
|
|
|
|
- Python 3.10+
|
|
- System packages: `python3-click`, `python3-debian`, `python3-rich`
|
|
|
|
Install dependencies on Debian/Ubuntu:
|
|
|
|
```bash
|
|
apt install python3-click python3-debian python3-rich
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# List packages needing updates (downloads todo.json if missing)
|
|
./todo list
|
|
|
|
# Include pre-release versions
|
|
./todo list --show-prerelease
|
|
|
|
# Fetch latest data and show changes
|
|
./todo update
|
|
```
|
|
|
|
Running `./todo` without arguments is equivalent to `./todo list`.
|
|
|
|
## Files
|
|
|
|
- `todo.json` - Cached TODO list from UDD (auto-downloaded)
|
|
- `notes` - Per-package notes (one package per line: `<source> <note>`)
|
|
- `.vcs_git_cache.json` - Cache of Vcs-Git and uploader info from APT sources
|
|
|
|
## Notes File Format
|
|
|
|
The `notes` file contains per-package annotations:
|
|
|
|
```
|
|
pysma needs uv_build backend
|
|
python-ftfy bad version
|
|
bleak needs new library, bumble - package uploaded
|
|
```
|
|
|
|
Each line starts with the source package name, followed by a note.
|
|
|
|
## Configuration
|
|
|
|
The tool fetches data for a specific maintainer email configured in the `TODO_URL` constant. Modify this URL to track packages for a different maintainer.
|
|
|
|
## Testing
|
|
|
|
Run tests with pytest:
|
|
|
|
```bash
|
|
apt install python3-pytest
|
|
PYTHONPATH=. pytest tests/ -v
|
|
```
|
|
|
|
## Features
|
|
|
|
- Filters new upstream notifications, hiding other TODO types
|
|
- Skips pre-release versions (alpha, beta, rc) by default
|
|
- Compares normalized versions to avoid false positives
|
|
- Shows team from Vcs-Git (e.g., `python-team`, `HA` for homeassistant-team)
|
|
- Displays uploaders when no team is set
|
|
- Responsive output: table view on wide terminals, compact view on narrow
|
|
- Caches APT source parsing for faster subsequent runs
|
|
|
|
## License
|
|
|
|
MIT License. See [LICENSE](LICENSE) for details.
|