9 Commits
Author SHA1 Message Date
vhaudiquet cbca729693 Force uv-managed Python in release build
The runner's system CPython 3.12.3 satisfies the '3.12' request, so uv
kept using it and PyInstaller failed: system python is built without
libpython3.x.so. Set UV_PYTHON_PREFERENCE=only-managed and install the
managed interpreter explicitly.
2026-08-25 20:45:27 +02:00
vhaudiquet b41f0f509e Pin uv-managed Python 3.12 in CI for PyInstaller
The runner's system CPython is built without a shared libpython3.x.so,
which PyInstaller --onefile requires. setup-uv's python-version input
makes uv provision its managed CPython, which ships the shared library.
2026-08-25 20:39:00 +02:00
vhaudiquet 8eadf64a2f Add build group to uv.lock
The pyinstaller build group was added to pyproject.toml without
regenerating uv.lock, so 'uv sync --frozen --group build' failed in CI
with: Group 'build' is not defined in the project's dependency-groups.
2026-08-25 20:36:54 +02:00
vhaudiquet 2e51e9c41f Add CI with checks and automated release builds
Gitea Actions workflow (.gitea/workflows/ci.yml):

- check job: ruff format --check, ruff check, ty check on pushes to main
- release job on v* tags: build a standalone Linux executable with
  PyInstaller (--onefile), smoke-test it, create a Gitea release via
  the API and upload the binary as an asset

Also add a pyinstaller build dependency group and bump to 0.3.0.
2026-08-25 20:07:58 +02:00
vhaudiquet 98eb6ab542 Add Debian BTS source for bugs filed and owned
New `bts` subcommand backed by python-debianbts (bugs.debian.org SOAP):

- Identify by email address: get_bugs(submitter=...) for bugs filed,
  get_bugs(owner=...) for bugs owned
- Filed filtered on creation date, owned on log_modified; status
  lookups capped at 500 bugs per collect
- Per-query failures degrade to warnings like other sources
2026-08-25 19:44:56 +02:00
vhaudiquet 5b89313c4a Add GitLab source for gitlab.com and self-hosted instances (Salsa) 2026-08-25 18:02:52 +02:00
vhaudiquet fadb15ccf7 Add README.md 2026-08-25 15:25:01 +02:00
vhaudiquet 3625229056 Restructure to multi-source architecture; fix GitHub repo timeline filter
- Rename package launchpad_weekly_activity -> weekly_activity
- Split into model.py (ActivityReport, Section), report.py (source-agnostic
  formatter), cli.py (subcommand dispatch), sources/ (per-source modules)
- Move Launchpad code to sources/launchpad.py implementing ActivitySource
- Add GitHub source (sources/github.py) using httpx: PRs, issues, repos, commits
- Fix GitHub 'Repositories modified' filtering on pushed_at not updated_at
  (metadata changes were showing stale repos with no recent code pushes)
- Add --credentials-file for Launchpad OAuth (bypass keyring for headless)
- Add keyring dep (launchpadlib optional dep; bare import crashes without it)
- Graceful per-query error handling: degraded sections + concise warnings
- Rolling 7-day window (was previous calendar week)
2026-08-25 15:24:10 +02:00
vhaudiquet bc451f9830 Initial commit 2026-08-21 14:55:45 +02:00