From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id coW8DMRaoWBsFgAAgWs5BA (envelope-from ) for ; Sun, 16 May 2021 19:47:48 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id gA7YB8RaoWAuWQAA1q6Kng (envelope-from ) for ; Sun, 16 May 2021 17:47:48 +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 97F2A16C49 for ; Sun, 16 May 2021 19:47:47 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 2D16227E2C; Sun, 16 May 2021 13:47:39 -0400 (EDT) Received: from mail0.khirnov.net (mail0.khirnov.net [IPv6:2001:67c:1138:4304::3]) by mail.notmuchmail.org (Postfix) with ESMTPS id 10C19271EC for ; Sun, 16 May 2021 13:47:36 -0400 (EDT) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id C4C3A240476; Sun, 16 May 2021 19:47:26 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id UeY_xSA0pDe3; Sun, 16 May 2021 19:47:25 +0200 (CEST) Received: from lain.red.khirnov.net (lain.red.khirnov.net [IPv6:2001:67c:1138:4306::3]) (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 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "lain.red.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 6507D24042A; Sun, 16 May 2021 19:47:25 +0200 (CEST) Received: by lain.red.khirnov.net (Postfix, from userid 1000) id B7D9616019F; Sun, 16 May 2021 19:47:24 +0200 (CEST) In-Reply-To: <162117970935.470262.11733111308148672432@piu> References: <162116038546.29687.12722695687857643272@lain.red.khirnov.net> <162116372803.55588.12574083715280154635.git@grubix.eu> <162117970935.470262.11733111308148672432@piu> Subject: Re: announce: my fork of alot From: Anton Khirnov To: Patrick Totzke , Michael J Gruber , notmuch@notmuchmail.org Date: Sun, 16 May 2021 19:47:24 +0200 Message-ID: <162118724451.29687.13284058079630704324@lain.red.khirnov.net> User-Agent: alot/0.8.1 MIME-Version: 1.0 Message-ID-Hash: 3MAMV3XYUVL6522YFGAF5FYRFUPOQ4DZ X-Message-ID-Hash: 3MAMV3XYUVL6522YFGAF5FYRFUPOQ4DZ X-MailFrom: anton@khirnov.net 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=1621187267; 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=IRIsOuz7kb0HsniA+l2Sj96j0BgiwXuv2ds7C1TnR4s=; b=tuYOr4MPAbVyn1G6DpvQgcYtskx05WIqasy+bdMwctyRtMZADM8jDiMTsWzNEU84FdZDcu BnTQqfrxnawz5YGVv/RtyOTHXtv7RnmhL0Pc90u/BIZ6iy5CQr3cf+efIbVi8wTK63Kd87 vxqxq1J7DxMi0df2kGXaDkZyrxe0ZKou0zmDcWDPD18xj/+UGkhw4YCIPNGXb1cgsvyG+p 1I+TGptb9Juogxw2AvCL0uYFPtOBGzdFkfA5gmy5nVnsN/invPpIDx0Y++hE+Of71HDr00 I/SeCPkET02Fzwujp64CMiGL5Dk8LrMzT65o203DqaMjjRCL8BGLv4FLs+4JDQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1621187267; a=rsa-sha256; cv=none; b=pYswyh9SzRkDrNmbwEldcN/0DnOdqB1PHYcLeUIJuCjeeBY3jKP1maD4M46kSlj7+DVuJm cGSZQ/3V14tEZ60AexGrXw64QTepAl7FHU6KUq/hMvhoiNXlSqDjCQhfre1odJevNU0VPC D3Uarb+L2Jp5HNKNvtX3Np2FPfINeErZH1vSVUkYXAHKrn7pWcdZVMDU4m0jULue9GD5aX 7Ok8P2XDi3GwsdJoOn4RsQyry75I/QvpScWiSZHacBd91UaW5Wg8Vajg66fS0OHyKBCK3j Wh7q6SJEk6LCZgn1WlE15oesciVze7kNyGq/mq3vfSRg+2dmq4jtY5WQo/agWA== 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.55 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: 97F2A16C49 X-Spam-Score: -0.55 X-Migadu-Scanner: scn0.migadu.com X-TUID: 6bKSsAVg7+lx Quoting Patrick Totzke (2021-05-16 17:41:49) > Hi everyone, > > All this sounds very exciting and I'd be very happy to see these features in > (mainline) alot! > > I agree that some of alot's underlying code is ready for refactoring > and urwid in particular has been a big drag on quickly implementing things. > Also, I'd be interested in hearing your thoughts on deprecating some "unworthy" > features in order to reduce the maintenance effort! That is largely a matter of perspective and personal preference. E.g. among the things gone in my tree are: - removing messages - I dropped that because I considered that code potentially dangerous, had no use for it myself, and just didn't want to tiptoe around it; someone actually using RemoveCommand in their workflow would have a different opinion - switching to split-window layout for thread view made it simpler to implement quote folding, but also made sense to me since I never want to see more than one message at once; again, someone who prefers collapsing messages would see this as loss of functionality https://xkcd.com/1172/ is very much in effect > > > 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? > > > Yes, the speed at which alot progresses is borderline problematic. This is of > course down to the small number of core contributors and the fact that for all > of us life goes on an priorities change. > > One problem is that the project attracts many users interested in pushing what > I'd call "hotfixes" to address missing features: Often people would present > a (nicely working) proof-of concept that is not well documented, tested, and > doesn't adhere to common code conventions, only not to follow up on their > promises to "clean things up", for all too understandable reasons. > Still, I believe that just merging everything will quickly kill the project as > a) this leads to code that is very difficult and time-consuming to maintain and > b) broken features are very damaging to user's perception of the software, much > more so than missing ones. > > I am not accusing you of anything here, Anton. I just wish to point out > potential long term difficulties and clarify that I tried to err on the side of > cautiousness to keep alot afloat in a usable state for most (potential) users. You would be very correct to accuse me of taking various shortcuts. I would not call my changes "hotfixes", as I tried to keep continuous future improvements in mind (and in fact see many of my changes as cleanup and simplification). But I did make an explicit decision to prioritise rapidly adding new functionality, at the cost of potential regressions and loss of some features I did not need. And again, this is a matter of perspective. If alot does what you want it to do then of course you will value stability and consistency. But if the lack of certain features makes it barely usable, then it makes sense to be more radical. > > > 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. > > I share Michael's concerns about further splintering the small group of > developers and believe that this would be to the detriment of both projects. > > It's no secret that I am ready to give the helm to others. I have been > maintaining this project for a while now, mainly for personal usage and as > a fun distraction. I have tried to squeeze in time to review pull requests when > possible and am grateful for the many code contributions over the years, most > notably the big steps towards pgp/mime, python3 and notmuch2, all of which I'd > have never found the time to implement myself. > > It has so far been a successful, albeit slow, strategy to try and coordinate > efforts and I would very much like to see this going on, but without > sacrificing the quality of the code or the relative mature user experience. And here is precisely the crux of the problem. My changes are pretty drastic and 1) there WILL be bugs 2) someone WILL find them to degrade their user experience. You cannot always satisfy everyone. Combined with the fact that I also have a lot on my plate and don't see myself reshaping my tree into nicely packaged atomic changes with a ribbon on top (at least not any time soon). > > To be clear: I still do not consider alot "mature" in the sense that I'd oppose > radical refactoring. This is reflected in its version number :) If you can find the time for it, maybe try to look at the individual changes in my tree. Try it out, see what makes sense to you, what doesn't, etc. I would be happy to see it all merged into alot, just don't see how it can practically be done through the normal channels. E.g. one thing I expect to be contentious is the removal of urwidtrees use. I understand you are its author, so it may be unpleasant to hear, but I found it to be a major obstacle to implementing quote folding. -- Anton Khirnov