From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id MEwrNef+oGCn8QAAgWs5BA (envelope-from ) for ; Sun, 16 May 2021 13:15:51 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id WOvbMOf+oGAkPAAA1q6Kng (envelope-from ) for ; Sun, 16 May 2021 11:15:51 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [IPv6:2607:5300:201:3100::1657]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2F3CB1000E for ; Sun, 16 May 2021 13:15:51 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id C142B271E0; Sun, 16 May 2021 07:15:46 -0400 (EDT) Received: from mailproxy02.manitu.net (mailproxy02.manitu.net [217.11.48.66]) by mail.notmuchmail.org (Postfix) with ESMTPS id A36D11FAC2 for ; Sun, 16 May 2021 07:15:44 -0400 (EDT) Received: from localhost (200116b86062a90081abd5b5f16a2a33.dip.versatel-1u1.de [IPv6:2001:16b8:6062:a900:81ab:d5b5:f16a:2a33]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: michael@grubix.eu) by mailproxy02.manitu.net (Postfix) with ESMTPSA id 10ACFC0014; Sun, 16 May 2021 13:15:29 +0200 (CEST) MIME-Version: 1.0 In-Reply-To: <162116038546.29687.12722695687857643272@lain.red.khirnov.net> References: <162116038546.29687.12722695687857643272@lain.red.khirnov.net> Subject: Re: announce: my fork of alot To: Anton Khirnov , notmuch@notmuchmail.org From: Michael J Gruber Message-ID: <162116372803.55588.12574083715280154635.git@grubix.eu> Date: Sun, 16 May 2021 13:15:28 +0200 User-Agent: alot/0.9.1 Message-ID-Hash: NR44SJUNO35PMTXVXUXNL6XVV2JYEWIV X-Message-ID-Hash: NR44SJUNO35PMTXVXUXNL6XVV2JYEWIV X-MailFrom: michael@grubix.eu X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1621163751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=izT0xKPisopLvtyKawcmtbD0pDiGEJmH65xzCfqty0Y=; b=us2xG0PoXULjbHAIYHXHLX+ncgrXhQLvPhVl45rrMgv2eo/Lru61SFZG0M6XjYddewva2V HsJ4UPRXjPeP1Vj0poE8shz7Boj4TFSPRfREvIt2XZfNVOlbAUDNgKrqMNcnnJvQ3BI2Sn n7ZU1IJze7wOOsZ037q1c6t2VdmJMXwUYQ7lB3ImHqQkcLRnBNa9HTUQDPcyszbiUIuWyz BcDv+wlsq9A1ir9klYSggfJi3+1njFbl7IOgL2phTZC2guXoP9iygVYRxiupGEH1uvpbvS utmyAMIcyDQBbAZE6kmsJ96J22cXaAtqrSA+uEOmFgx1BjHzmoPWvSm69VLh/A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1621163751; a=rsa-sha256; cv=none; b=d6W9+5Essp/olEJRaOKObd+r18ulHtCLJJ6aBfQ2lHXEG0nKxECczwSHp/WgOsORm0l8vq TImdkqFx8e+FQ++NAPjD6NorSZjIcs12bzHcKq8dZYPzVx9zfMtwqki2scbGnfcPj+DEgM dQuPXjkIyzFuxo+rYgbYzLqyRjt8d827G0Pw54XyeKftwS5i4gkHVt0JZpd7VC//aQr10m oiHV28QbtBTMYwJUugnniC+VdQN3j2xCiQyAjVaUM3MmCYr9pxcUeM6+KXzsp3Uo6++dsU xl9cwepI8SAtE3Aq2u27Zffqx0Kq8FZrhmeY63mRswYUzYfX/GIkuG8YgKsLYw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: 0.45 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 2F3CB1000E X-Spam-Score: 0.45 X-Migadu-Scanner: scn0.migadu.com X-TUID: BDtL9YfBLHoO Anton Khirnov venit, vidit, dixit 2021-05-16 12:19:45: > 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. Thanks for sharing! > The code can be found at git://git.khirnov.net/alot. Any particular reason why this is not a fork where upstream is (GitHub)? > 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) This all sounds like getting closer to mutt's view, which is not a bad thing at all! > 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 have to question this strategy. alot (upstream) suffers from a lack of tests already. There is really no point writing tests after the fact or once you discover bugs by chance. Especially if you go for "disruptive" changes it's important to get the new architecture correct right from the beginning. > 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. I have a similar impression about the project status. I'm curious: What are the architectural changes that you made? >From any notmuch-based MUA I expect a clear correspondence with underlying notmuch concepts, such as "notmuch search results" being a set of messages (not threads) and therefore command acting on that set by default. alot always confuses me in this regard. > 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. Have you tried raising these concerns with upstream before your fork? Have you tried gathering a team around an idea and starting something new together? Frankly, upstream is borderline small already, and the way you started your fork probably will not attract a team of people who want to make that new fork their (common) own or are looking for a stronger team. Incidentally, just yesterday I looked at neomutt's status, in search of a substitute for alot with good notmuch support and a stronger devel community. I suggest you read the most recent posts on their devel list to see how much the deviating fork has burned out a small team. Cheers Michael