From: Russ Allbery (rra@stanford.edu)
Date: Thu Mar 04 2004 - 12:26:11 CST
Charles Lindsey <chl@clerew.man.ac.uk> writes:
> A followup that fails to contain a References header is also a
> "compliant article". However, in neither case was the article created by
> "compliant" means.
That depends on whether the user intended that message to be a followup to
that thread. If they did, then the article does not correctly reflect the
intentions of the user, which would clearly indicate that the software is
broken.
You don't need to pull out the "compliant" stick to deal with this
problem. Software that creates articles with different semantics than the
user intended is clearly misfunctioning. Compliance is not the be-all and
end-all of whether software is correct.
The above is the root point of disagreement between people on this list
right now, I think. This is the same thing that Bruce has been trying to
explain in a different way for some time now. It's possible to clearly
explain what client authors should do and what well-behaved software does
without trying to declare all broken software to be non-compliant.
For example, consider a news client that simply discarded all followups
that a user posts. That news client is fully compliant with any standard
that we can reasonably write, but it's broken. No damage will be caused
by an inability to point to a portion of the standard that it's violating.
It's obviously broken and would be avoided.
A similar statement can be made about a news client that only starts new
threads and never posts followups. It generates compliant articles, and
as far as I'm concerned, in a well-written standard, this agent *should*
be compliant since it's way more trouble and complexity than it's worth to
try to find some convoluted way of declaring it non-compliant. It is,
however, broken for any user who wants to post to discussion groups, it's
obviously broken given a reasonable person's reading of the standard, and
the inability to declare it specifically non-compliant is really
irrelevant and uninteresting.
The important part is to clearly define the syntax and semantics of a
followup vs. a new post. Once that's done, the need for a user agent to
provide both functions is abundantly obvious, and there's no need to try
to declare user agents that don't to be non-compliant. (In fact, by so
doing one might inadvertantly rule out useful special-purpose user
agents.)
Adding "Re: " is a more subtle issue, so it's quite reasonable to add
language similar to RFC 2822 to explain to client authors how clients
normally handle this case. But again, this is a case where I believe
people are overestimating significantly the value of being able to
specifically declare clients non-compliant. The important part to me is
to make sure that all the information required to do the right thing is
present in the standard without contradicting either ourselves or the mail
standards, and I believe this is quite possible and, indeed, easy to do.
> Russ Allbery <rra@stanford.edu> writes:
>> Software which inserts such a string is poorly considered. I have no
>> problems with putting language into the standard which makes this clear
>> and specifies what the best course of action for an implementor is.
>> E-mail already has language that does this, and I think we should adopt
>> it.
> Part of the problem with the RFC 2822 language is that it does not make
> it clear whether it is speaking of a reply-Subject created automatically
> by a reply-agent, or a reply generated entirely manually by a user, or
> both.
> Whereas it _does_ make that distinction when discussing the From and
> Reply-To headers.
Those are structured headers, which raises different issues. They're also
integral to the proper functioning of a protocol function (replying to an
e-mail message), whereas Subject is used only for display.
That being said, if you want to say "ought by default" instead of "ought",
I'm not going to argue with that. If you would like to propose language
that you would prefer for USEFOR or for USAGE, please do so and I'll be
happy to comment specifically on it. Know in advance, though, that if it
contains the words SHOULD or MUST, or anything equivalent, in any area
contradicting the unstructured nature of Subject, I'll object to it.
>> People intentionally start new threads while quoting existing messages
>> all the time.
> People also continue existing threads by creating a new article with
> "Subject: Re: the old subject".
At least in the portions of Usenet that I read, this is exceedingly rare,
and I don't consider it to be a problem worth worrying about given the
degree to which it's self-correcting.
> Anyway, a thought that now occurs to me is that followup agents should
> observe a change of header by the user and ask "Do you intend to start a
> new thread" and, if the user said "yes", they would omit the References
> header (note that there could be valid circumstances for both answers,
> so 2nd guessing would not be a good idea). We might even promote that
> suggestion in USEAGE.
I think client authors are quite capable of figuring out this sort of
thing by themselves. We need to define what the headers mean and what
their syntax is; that's our primary goal. Outside of that, for the most
part this working group is not going to be capable of giving useful advice
to client authors. There aren't enough people participating, many of the
people who are participating have serious deficiencies in their
understanding of how Usenet works, few of the people participating have
ever actually written a news client, and some of the people participating
continue to treat ancient software as reference implementations.
>> If you're [John Moreno] honestly confused about my position, I would
>> like to clarify it until you understand it.
> And Vice Versa? :-(
Do you believe that I've misunderstood your position or put words in your
mouth? If so, please do be specific about where you feel that I'm not
understanding so that we can discuss it.
-- Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>