[neomutt-devel] New marching orders - reviving dead mailing list

Ihor Antonov ihor at antonovs.family
Fri Feb 5 07:10:31 CET 2021


Hello everyone!


This mailing list was dead for quite some time, and this is an attempt
to bring it back to life. Today (Friday 2021-02-05) there will be a new
release of NeoMutt and flatcap has announced on IRC a goal for the next
one: 

    de-globalise Index and Pager


This is a result of our discussions on IRC that uncovered somewhat
stagnant state of the project, caused by many factors, some of which
are:

- Large amount of technical debt that manifests itself in a web of
  interconnected problems, that form cyclic graphs. Analysing these
  chains of problems to find the best way to solve them all
  takes an enormous amount of time and often lead to analysis-paralysis.
  ( and is best described by this xkcd [1] comic )

- Significant mental overhead required to evaluate code changes, caused by
  the technical debt. Often even small code change have unexpected
  consequences, and so requires exhaustive knowledge of the codebase to be
  evaluated and implemented correctly. It takes a lot of time and focus
  away from team members who have this knowledge, and creates a
  significant challenge for those who want to become more proficient
  with the codebase. 

- Lack of contributors. Not only it is hard to find people interested
  writing C code, it is also hard to find self-contained "good first
  issue" due to issues described above.

Even these high level problems form a self-reinforcing loop. Technical debt
leads to mental overhead and low productivity, which creates entry barriers for
contributors, and so remaining team members have less time and resources
to deal with technical debt, and so they are often stuck dealing with
"low hanging fruit" problems that do not change the high level picture:

    NeoMutt is not mutt, but it is not something different either. 

A proposed strategy to break out of this loop is to gather and focus on
a high-risk, high-impact task, such as the one defined by flatcap above,
without trying to analyze if this is the best approach or not.

Refactoring of index and pager is  large chunk of work that aims to
reduce the amount of technical debt, improve application architecture
and open doors for future improvements. It can also introduce breaking
changes, or instabilities.  But given the state of the project it is
justified.

The purpose of this email is spark a discussion to:

- define what de-globalisation means, breaking the goal down into
  milestones and tasks

- define workflow, branch name, etc.

- answer questions like below, that can be summarized as "how much focus
  we divert away from the main goal?"
  - what is the level of support fort the current release (do we try to fix
    critical issues if reported?)
  - do we try following upstream, merging mutt patches into
    master/feature branch?
  - do we take time to update roadmap page [2] that is currently 3 years
    out of date
  - ...

- <your-item-here>


Sorry for long rant :)

[1] https://xkcd.com/1445/
[2] https://neomutt.org/dev/roadmap 

----------
ngortheone


More information about the neomutt-devel mailing list