MBOX-Line: From mrc+uw at Panda.COM  Wed Dec 30 14:07:58 2009
To: imap-protocol@u.washington.edu
From: Mark Crispin <mrc+uw@Panda.COM>
Date: Fri Jun  8 12:34:43 2018
Subject: [Imap-protocol] Childless noselect mailboxes
In-Reply-To: <4C25BD1C-720E-46FC-B478-C4C2FEAB71FD@umn.edu>
References: <1262106049.26478.745.camel@timo-desktop>
	<alpine.OSX.2.00.0912290938230.18442@hsinghsing.panda.com>
	<1262111858.26478.842.camel@timo-desktop>
	<alpine.OSX.2.00.0912291042070.18442@hsinghsing.panda.com>
	<1262114250.26478.864.camel@timo-desktop>
	<alpine.DEB.2.00.0912300000110.22394@Higashi-Tomobiki>
	<Gophermail.2.0.0912300657280.23421@vs-w.tc.umn.edu>
	<4218.1262179770@succubus.panacea.null.org>
	<alpine.WNT.2.00.0912301053270.2128@Shimo-Tomobiki.Panda.COM>
	<4C25BD1C-720E-46FC-B478-C4C2FEAB71FD@umn.edu>
Message-ID: <alpine.WNT.2.00.0912301328510.2128@Shimo-Tomobiki.Panda.COM>

On Wed, 30 Dec 2009, Brian Hayden wrote:
> This is unfriendly; a user never expects a parent to disappear simply because 
> they deleted a child. Not only is it unexpected, but it's inconsistent; they 
> can create an empty container, but it's removed unilaterally if it happens to 
> become empty after it's had something in it?

You just destroyed your own argument.

The disappearing parent problem happens precisely because, and is an 
unavoidable consequence, of the attitude that there should not be such a 
thing as a \NoSelect name without children.

If you paid attention to what I was saying, you would not have fallen into 
that trap.

You could sink yourself in deeper, by saying that you want to prohibit 
\NoSelect names.  As soon as you do that, the unavoidable consequence is 
that you prohibit deleting any mailbox that has children, and you prohibit 
creating any mailbox unless you create the parent mailbox.

But, you say, you didn't mean that at all; rather, you claim that the 
parent simply does not exist at all.  Then you have stepped on yet another 
landmine.  I'll leave it as an exercise for you to figure out.  Hint: 
regardless of whether or not the parent exists in your implementation, 
certain operations in IMAP require that it must exist (or more accurately 
must not not-exist) in some form.

Before assuming that you are smarter than the old guy, you ought to make 
sure that you really understand the problem.

The entire problem was caused because I gave in to people who thought like 
you, and allowed this half-assed copy of netnews hierarchy to happen (over 
the better judgement of my co-workers).  I should have required explicit 
directories (which can not have messages) and prohibited mailboxes from 
having children.  "Dual-use" mailboxes are a mess precisely because it is 
ambiguous whether to view the messages or view the children when you 
"open" it.  I also should have insisted that "/" be the one, and only, 
hierarchy delimiter.

Done right, \NoSelect would have been \Directory, and it would be 
prohibited to delete a directory with children.

-- Mark --

http://panda.com/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.

