apache / apache/magpie

feat(tools/mail-source/mailman3): add Mailman 3 / Hyperkitty archive backend

Open
#306 0 comments 0 reactions 0 assignees View on GitHub
capability:platform enhancement family:tools good first issue
Dominant language
Python
Stars
92
Forks
92
Avg merge
1d 12h
Merged PRs (30d)
104

Description

Add a new `tools/mail-source/mailman3/` adapter implementing the [mail-source contract](../tree/main/tools/mail-source/contract.md) against a public Mailman 3 archive (the Hyperkitty UI + the underlying Mailman REST API).

**Operations to claim:**

- `list_recent_threads(list, since)` — Hyperkitty exposes `/list/@/latest` and per-month archives in machine-readable form
- `read_thread(thread_id)` — Hyperkitty thread page is keyed by thread root Message-ID
- `thread_url(thread_id)` — Hyperkitty URL by Message-ID hash
- `thread_id_kind`: `rfc5322-message-id` (matches IMAP + mbox)

Drafts / sent / write ops are **unsupported** — same shape as the PonyMail adapter (archive viewer only, no outbound).

**Why:** Hyperkitty is the **standard archive UI for Mailman 3**, which is what **Python** uses (mail.python.org), **Fedora** (lists.fedoraproject.org), **Mailman itself**, **NumPy/SciPy** mailing lists, the **GNU project**, **Plone**, and many smaller OSS projects. It's the non-ASF equivalent of PonyMail. Without it, every non-ASF adopter that lives on Mailman 3 is forced into Gmail-only territory.

**Reference:**

- Hyperkitty REST: https://docs.mailman3.org/projects/hyperkitty/en/latest/api.html
- Existing archive-viewer adapter shape: [`tools/ponymail/`](../tree/main/tools/ponymail/) — read-only, no drafts
- Contract: [`tools/mail-source/contract.md`](../tree/main/tools/mail-source/contract.md)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.