patchtrack sync

Fetch the authors’ mail from the archive, and the threads of their series.

One search per author and list, (f:ADDR OR tc:ADDR) AND rt:SINCE..: tc: finds other people’s replies, which nearly always copy the author. Then the whole thread of every series the search touched is fetched, because a reply that does not copy the author is only in the thread.

  • The first sync of an author covers --since ([sync] since, by default three months). Later syncs search from the last one, with a day’s overlap, and refetch only the threads new mail landed in, plus open series not fetched for --refresh-days. With nothing new, that is a single request. --full refetches everything in the window.

  • Searches run in windows of --window-days; a window with 1000 or more results is searched again in halves, so no export cap can truncate the result.

  • Timeouts and HTTP 429/5xx are retried with backoff, honouring Retry-After. A failed search records nothing, so the next sync covers the same window. A thread whose fetch failed (or that --no-threads skipped) stays owed until a sync fetches it; until then its series says “a fresher fetch is pending”. The exit status is non-zero when anything failed.

  • The mailboxes in [sources] are read first (see import). New local mail makes the archive fetch target its thread. --offline reads only them; --no-local skips them.

rt: is always sent as epoch seconds: lore misreads some date forms without complaint (rt:20261023.. matches far too much).

usage: patchtrack sync [-h] [-a AUTHOR] [-l LIST] [--since SINCE] [--full]
                       [--refresh-days REFRESH_DAYS] [--lore LORE]
                       [--delay DELAY] [--no-local] [--offline] [--no-threads]
                       [--window-days WINDOW_DAYS]

Named Arguments

-a, --author

email address (repeatable; default: [sync] authors in the config)

-l, --list

inbox to search, e.g. linux-usb (default: [sync] lists, or all)

--since

N.days.ago (hours, weeks, months, years) or an ISO date; default: since the last sync, or [sync] since (3.months.ago) for the first

--full

refetch every thread with mail in the window, not only what changed

Default: False

--refresh-days

incremental: also refetch open series not fetched for this long (default 7)

--lore

public-inbox base URL (default: [sync] lore, or https://lore.kernel.org)

--delay

seconds between requests

Default: 1.0

--no-local

do not read the [sources] mailboxes

Default: False

--offline

read the [sources] mailboxes only, not the archive

Default: False

--no-threads

search only; the threads it would fetch are left for the next sync

Default: False

--window-days

search this many days at a time (default 30); big windows are split further