Hi,

Thought I'd share with the people here the fork of alot I've been
hacking on for the past ~1.5 years, see if there is any interest in it.
The code can be found at git://git.khirnov.net/alot.

There are many changes in various places, the most user-visible ones in
the thread view mode. Specifically
- quoted blocks in the email body can now be colored and folded (this
  was probably my main motivation for starting all this)
- in upstream the thread mode shows a tree of messages, each node in the
  tree is a rendered message, that can be collapsed into a single-line
  summary;
  in my fork the thread mode is split-window - upper window for the tree
  with the thread structure, lower window for the currently selected
  message; no collapsing of messages
- attachments can be rendered inline, possibly colored with pygments
- git patches are colored with pygments
- all the parts are rendered for multipart/mixed messages, as per the
  RFCs
- encrypted/signed parts are now wrapped in a frame that indicates which
  bits of the message are actually encrypted or signed
- various architectural restructurings which were needed for the above
  or to allow for future changes (I have a large TODO list left)

The code is currently alpha quality - I am using it as my main MUA and
it works for my workflow, but any features I don't use regularly may be
broken. There is a general lack of "UX" polish (appearance and
documentation). I didn't bother updating the test suite to keep up with
all the architectural changes (plan to get to that once I consider the
code more stable). I removed some features which I considered an
impediment to progress and not worth the maintenance effort - YMMV.

Why did I not submit all this as PRs to upstream alot? The main reasons
were my lack of time and disagreement with the upstream about project
status. From what I can tell, alot maintainers consider the project to
be mature, so they prioritize stability and small incremental changes.
>From my perspective, alot is lacking some critical features -- some
implemented in my fork already, some planned -- which makes it
borderline-unusable for me. As implementing those features required
large-scale architectural changes and my free time was quite limited, I
prioritized quickly implementing the things I cared about over
progressing in small incremental stable easily-reviewable steps.

At this point my tree has over 200 new commits and some ~4k changed
lines, so it's looking increasingly unlikely that I'll ever find the
free time and motivation to upstream it -- especially given alot's
glacial pace of development recently. If people are interested in using
this, I'll probably fork it "properly" under a new name.

Any comments or questions are very much welcome. I can also be reached
on IRC as elenril.

-- 
Anton Khirnov
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org

Reply via email to