From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 928DB6DE0BB9 for ; Wed, 15 Jan 2020 01:59:10 -0800 (PST) Authentication-Results: arlo.cworth.org; dkim=pass (1024-bit key; secure) header.d=kth.se header.i=@kth.se header.b="daDS3LK6"; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -2.696 X-Spam-Level: X-Spam-Status: No, score=-2.696 tagged_above=-999 required=5 tests=[AWL=-0.194, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pAROTIt86ANl for ; Wed, 15 Jan 2020 01:59:06 -0800 (PST) Received: from smtp-4.sys.kth.se (smtp-4.sys.kth.se [130.237.48.193]) by arlo.cworth.org (Postfix) with ESMTPS id 345BF6DE0AAB for ; Wed, 15 Jan 2020 01:59:03 -0800 (PST) Received: from smtp-4.sys.kth.se (localhost.localdomain [127.0.0.1]) by smtp-4.sys.kth.se (Postfix) with ESMTP id 8568A3249; Wed, 15 Jan 2020 10:59:00 +0100 (CET) X-Virus-Scanned: by amavisd-new at kth.se Received: from smtp-4.sys.kth.se ([127.0.0.1]) by smtp-4.sys.kth.se (smtp-4.sys.kth.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id AoerSjs6lJZ3; Wed, 15 Jan 2020 10:58:59 +0100 (CET) X-KTH-Auth: ekeberg [85.229.200.172] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kth.se; s=default; t=1579082339; bh=cQFMxJ2Zl75ZcVHM5/4/PwNduPcS9OBomQ45eVILUm0=; h=From:To:Subject:In-Reply-To:References:Date; b=daDS3LK6BXIglJfyKAVW2NX0FH/IUL4Egf3XR3sh/OseuN/Z6RAstlfR4/fksdLcc W5Tm9E4B12i0OqpI2fDZetTxiCZurJEJZFE09UMJ/4jZziZvIpvNcrDvk345aXIBD0 CrB0RKwRUXYMXixnTfVIqxgNz8skXKsP4t5asoPk= X-KTH-mail-from: ekeberg@kth.se Received: from swing (c-acc8e555.09-723-73746f39.bbcust.telenor.se [85.229.200.172]) by smtp-4.sys.kth.se (Postfix) with ESMTPSA id 38A3744B; Wed, 15 Jan 2020 10:58:56 +0100 (CET) From: =?utf-8?Q?=C3=96rjan?= Ekeberg To: Teemu Likonen , Daniel Kahn Gillmor , Notmuch Mail Subject: Re: proposing "notmuch purge" In-Reply-To: <87lfq9z3gc.fsf@iki.fi> References: <87wo9vhtyh.fsf@fifthhorseman.net> <87d0bm1vjf.fsf@iki.fi> <87r201j0zr.fsf@fifthhorseman.net> <87wo9tdd8n.fsf@caltech.edu> <87lfq9z3gc.fsf@iki.fi> Date: Wed, 15 Jan 2020 10:58:56 +0100 Message-ID: <877e1tm467.fsf@swing.csc.kth.se> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jan 2020 09:59:10 -0000 While I like the idea of making it easy to prune away old junk messages from the mail store, I find it dangerously disruptive to suddenly change the semantics of the deleted tag. To me, the deleted tag has always meant something like "I do not want to see this message again; unless it reappears in a thread or I explicitly search for it". The possibility to undelete also means that deleting messages is not such a big deal. What do you think about introducing a new tag, e.g. purge, and let "notmuch purge" destructively remove the messages with this tag set? Hopefully, nobody is using that particular tag for a different purpose. Purging would then become a two-stage process; first tagging which messages should be purged, before doing the actual non-reversible removal. This makes it simpler to check what would be purged before actually doing it. A dangerous but flexible way of configuration would be to have a pre-purge-hook which could, for example, do things like: notmuch tag +purge "(" tag:deleted OR tag:spam ")" AND date:..30days The downside of this is of course that hooks are not that easy to set up and can easily backfire and possibly remove your entire mail collection. /=C3=96rjan