BONE - Backlog Of Notable Emails
This website is generated by BONE 0.102.3.
BONE monitors a mailbox and turns incoming emails into reports. Replies in the same thread update each report through a small fixed vocabulary of commands. Maintainers can also write to the inbox directly to manage roles and receive periodic digests.
BONE comes with two companions to help contributors handle reports: a command line interface gnaw and a GNU Emacs library gnaw.el.
For maintainers, see the full BONE manual.
Subject labels
A subject label creates a report, optionally carrying a topic and/or version:
| Type | Subject labels |
|---|---|
| bug | [BUG <topic>] |
| patch | [PATCH <topic> <version> <n/m>] |
| request | [FR <topic>] [FP <topic>] [RFC <topic>] [POLL <topic>] [TASK <topic>] |
| announcement | [ANNOUNCEMENT <topic>] [ANN <topic>] [BLOG <topic>] [TIP <topic>] [EVENT <topic>] |
| release | [REL <topic> <version>] [RELEASE <topic> <version>] |
| change | [CHG <topic> <version>] [CHANGE <topic> <version>] |
All <…> parts are optional and positional.
Also accepted: [ANNOUNCEMENT], [RELEASE], [CHANGE] (long forms,
equivalent to their 3-letter counterparts).
For release and change, a single value is read as <version>: [REL 2.0]
sets version to "2.0". Use both for topic and version: =[REL parser
2.0]=.
Topics can also be set with colon prefixes after the label: =[BUG]
parser: crash on empty input= sets the topic to "parser", and =[BUG]
parser: input: crash= sets the two topics "parser" and "input". A topic
is a single word followed by : and a space; a sentence containing a
colon sets no topic.
Status & priority commands
Replies to a report update it with command keywords such as
Fixed. or Applied..
A command keyword goes at the beginning of a line, followed by
punctuation (. , ; : ? !), whitespace, or end of line.
Accepted keywords per action:
| Effect on report | Command keyword | Type |
|---|---|---|
| Mark as acked | Acked Confirmed Approved | Status |
| Mark as owned | Owned | Status |
| Mark as closed (canceled) | Canceled Cancelled | Status |
| Mark as closed (expired) | Expired | Status |
| Mark as closed (resolved) | Closed Resolved Applied Completed Fixed | Status |
| Mark as urgent | Urgent | Priority |
| Mark as important | Important | Priority |
To retract, reply with the matching Not form: Not acked.,
Not owned., Not closed. (also undoes canceled and expired),
Not urgent. or Not important..
Announcements, releases and changes cannot be acked or owned but can still be marked closed, urgent or important.
Priority is not set directly: it is the sum of important (+1) and urgent (+2).
Urgent. and Important. require a punctuation mark or end of line -- a
bare space is rejected (these words appear too often in ordinary
prose).
You can combine several commands in one email:
Confirmed. Owned. Urgent. Important.
Searching via the web page
The search box filters with key:value tokens: space is AND, | is OR
between clauses, a comma ORs values, a leading - negates a token, ="…"=
keeps a phrase literal and /re/ matches as a regexp. Keys (alias in
parens): from (f), subject (s), similar, topic (T), source (S),
type (t), priority (p), mid (m), acked (a), owned (o), closed (c), urgent
(u), important (i), flags (F), att (A), date (d), deadline (D),
expired (e). Durations are Nd/Nw/Nm; closed:true transiently includes
the closed reports.
Example: type:bug s:crash d:30d | topic:latex -- the bug reports of
the last 30 days whose subject matches "crash", plus every report with
a latex topic.
See the BONE manual for the full syntax, shared with gnaw.el.
Maintainers
- Ihor Radchenko (since 2020-01-01) (lead)
- Bastien Guerry (since 2020-01-01)
- Bastien (since 2020-01-01)
- Christian Moe (since 2020-01-01)
Configuration
To reproduce this dashboard on your own copy of the mail, run BONE with this config.edn (download). Replace :mailboxes with your own local source -- the operator's mailbox is private and not needed -- then run bb export.
;; Minimal config.edn to reproduce this dashboard on your own copy of
;; the mail. Replace :mailboxes with YOUR local source -- a Maildir of
;; your subscription, or your own IMAP account; the operator's mailbox
;; is private and not needed here. See "Deploying BONE" in the manual,
;; then validate with: bb test-config
{:mailboxes
[{:name "local",
:type :maildir,
:path "/path/to/your/Maildir",
:folder ""}],
:sources
[{:name "Org mode ML",
:list "emacs-orgmode.gnu.org",
:archive-format-string "https://list.orgmode.org/%s",
:maintainers
["yantar92@posteo.net"
"bzg@bzg.fr"
"bzg@gnu.org"
"mail@christianmoe.com"],
:labels
{:request ["FR" "FP" "RFC" "POLL" "TASK"],
:announcement ["ANNOUNCEMENT" "ANN" "BLOG" "TIP" "EVENT"]},
:restricted-types #{:release :change},
:expiry {:announcement {:inactive-after "100d"}},
:periods
[{:start "2020-01-01",
:end "2026-04-19",
:commands
{:owned {:words ["Owned" "Handled"]},
:closed
{:words
["Canceled"
"Cancelled"
"Closed"
"Expired"
"Resolved"
"Applied"
"Completed"
"Fixed"
"Done"]}}}
{:start "2026-04-19", :end "2026-07-14"}
{:start "2026-07-14", :restricted-types #{:release :change}}]}]}