summaryrefslogtreecommitdiffstats
path: root/2026/talks/bone.md
blob: 06e675450804475ebd49a85caedfd65415c26def (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[[!meta title="BONE and gnaw.el: tracking what matters"]]
[[!meta copyright="Copyright © 2026 Bastien Guerry"]]
[[!inline pages="internal(2026/info/bone-nav)" raw="yes"]]

<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# BONE and gnaw.el: tracking what matters
Bastien Guerry (he) - IRC: bzg, <https://bzg.fr>, <mailto:bzg@bzg.fr>

[[!inline pages="internal(2026/info/bone-before)" raw="yes"]]

Most free software projects use three communication channels: one for
general feedback, one for bug reports, and one for contributions.
Projects that use patches instead of pull/merge requests (e.g. Emacs)
can reduce this to two channels: a discussion list and a bug tracker.
Some opinionated projects (e.g. Org mode) use only one channel: a
mailing list for general discussions, bug reports and patches. This
makes it easy for everyone to track everything. However, this requires
a tool to help filter all the input. The Org mode tracker uses BONE
for this filtering, and Org mode contributors can use gnaw.el as a
BONE client.

BONE (Backlog Of Notable Emails) is a bug tracker written in Clojure
that watches a project's mailing list. An email whose subject starts
with [BUG], [PATCH] or [FR] becomes a report. Replies update it with a
small, fixed vocabulary: "Confirmed.", "Acked.", "Owned.", "Closed.",
plus the usual review trailers like Reviewed-by:. Nobody creates an
account, nobody fills a form, nobody leaves their mail client. The
mailbox stays the single source of truth: the tracker database can be
rebuilt from the archive at any time. BONE then exports the reports as
static HTML, RSS, Org and, most importantly, plain reports.json files
that anyone can fetch and reuse.

gnaw.el is the Emacs client for BONE. M-x gnaw opens a report browser
listing the bugs, patches and feature requests of the sources you
follow, across projects. From that buffer you can search reports, read
the underlying emails in Gnus, notmuch or mu4e, view and apply patches
directly into a local git repository, open attachments, and organize
your own work with local sticky and dismiss marks.

The talk will:

-   show BONE in action on a real mailing list, from the tagged email to
    the exported reports;
-   demo gnaw.el: browsing, searching, reading, applying a patch, all
    from Emacs;
-   discuss the pros and cons of using this tool for Org mode.

The audience is anyone who maintains or contributes to a project
through a mailing list, anyone who is tired of forge accounts, and
anyone curious about what a tracker looks like when it is derived from
the conversation instead of replacing it.

Links:

-   [BONE - Reports - Org mode ML](https://tracker.orgmode.org)
-   BONE: <https://codeberg.org/bzg/bone>
-   gnaw.el: <https://codeberg.org/bzg/gnaw.el>
-   The essay behind the idea:
    <https://bzg.fr/en/notes/the-issue-with-issue-trackers/>

About the speaker:

Bastien Guerry has been maintaining Org mode from 2011 until 2025.



[[!inline pages="internal(2026/info/bone-after)" raw="yes"]]

[[!inline pages="internal(2026/info/bone-nav)" raw="yes"]]