Subject: #1021 USEFOR Newsgroups header - resolution proposed

From: Harald Tveit Alvestrand <[email-masked]>
Date: Wed, 29 Jun 2005 12:37:49 +0200

OK, here's my "proposed text" again, incorporating feedback.

---- restricting syntax; there are no changes to the ABNF -----

 A newsgroup component SHOULD NOT consist of digits only, and
 SHOULD NOT contain uppercase letters. Such components MAY be
 used only to refer to existing groups that do not conform to this
 naming scheme.

  NOTE: All-digit components conflict with one widely used storage
    scheme for articles. Mixed case groups cause confusion between
    systems with case sensitive matching and systems with case insensiteve
    matching of newsgroup names.

----- restricting use of specific characters ------------

 Components beginning with underline ("_") are reserved for use by
 future versions of this standard and MUST NOT be generated by
 posting agents (whether in Newsgroups headers or in newgroup control
 messages [USEPRO]). However, such names MUST be accepted by
 relaying and serving agents.

 Components beginning with "+" and "-" are reserved for private
 use and MUST NOT be generated by posting agents (whether in
 Newsgroups headers or in newgroup control
 messages [USEPRO]) without a private prior agreement to do so.
 However, such names MUST be accepted by
 relaying and serving agents.

---- restricting component names ----

 The following newsgroup names are reserved, and MUST NOT be used as
the name of a newsgroup:

 Groups starting with the component "example"
 The group "poster"

 The following newsgroup names have been used for specific purposes in
various implementations and protocols, and MUST therefore not be used
for the names of normal newsgroups. They MAY be used for their specific
purpose, or by local agreement.

 Groups starting with the component "junk"
 Groups starting with the component "to"
 Groups containing the component "all"
 Groups containing the component "ctl"
 The group "control"
 The group "junk"
 The group "to"

 NOTE: Some newsgroups violating these restrictions exist. It is not a
protocol violation to use these names to access those newsgroups.

---

From: "Forrest J. Cavalier III" <[email-masked]>
Date: Wed, 29 Jun 2005 08:04:35 -0400

>  used only to refer to existing groups that do not conform to this

[snip]

> protocol violation to use these names to access those newsgroups.

I don't think that permission belongs in a NOTE.  The permission to
use alt.2600 is not in a note in the first paragraph.

Why did you use different phrasing and place it in a note?

Can you change the "MUST therefore not" to "therefore MUST NOT", or
better yet put the explanation in a NOTE, like you did for digits
part.  I think there is a big improvement with more consistency in
grouping and splitting explanation and specification into body text
and NOTE, and putting the MUSTs ahead of the SHOULDs.

Can I suggest the following arrangement of text...

  The syntax of newsgroup names and components (specified in section []) are
  limited as follows.

  The group "poster" and groups starting with the component "example"
  are reserved, and MUST NOT be used for the name of a newsgroup.

  Components beginning with underline ("_") are reserved for
  future IETF specifications and otherwise MUST NOT be used by
  posting agents. Such names MUST be accepted by relaying and
  serving agents.

  Components beginning with "+" and "-" are reserved for private
  use and MUST NOT be used without a private prior agreement. Such
  names MUST be accepted by relaying and serving agents.

  Unless referring to pre-existing groups or for their specific pre-established
  purpose in implementation and protocols, names SHOULD NOT be "control",
  SHOULD NOT contain any component "all" or "ctl", and SHOULD NOT consist
  or start with the component "junk" or "to".

  Unless referring to pre-existing groups, a newsgroup component
  SHOULD NOT consist of digits only, and SHOULD NOT contain uppercase
  letters.

   NOTE: All-digit components conflict with one widely used storage
     scheme for articles. Mixed case components cause confusion because some
     systems distinguish case while others ignore it.

---

From: Frank Ellermann <[email-masked]>
Date: Wed, 29 Jun 2005 13:42:08 +0200

>  Groups containing the component "ctl"

How about adding...
   Groups starting with the component "control"
...for groups like control.cancel etc., and then combine the
three single groups in one line:

   Groups containing the component "all"
   Groups containing the component "ctl"
   Groups starting with the component "control"
   Groups starting with the component "junk"
   Groups starting with the component "to"
   The groups "control", "junk", and "to"

Anything else in this #1021 is fine from my POV, bye, Frank

---

From: Russ Allbery <[email-masked]>
Date: Wed, 29 Jun 2005 10:32:12 -0700

>  Groups starting with the component "junk"

This rule is not strictly necessary.  What do other people think about
allowing things like junk.foo?

You need to add:

as well; it's not just the group "control".

Other than that, I'm okay with this.  I'd still rather that the protocol
stuff be in USEPRO, but after thinking about it, I don't feel strongly
enough about it to argue it at any additional length, and I don't think it
really hurts much to put it into USEFOR.

I wouldn't object to the changes Forrest suggested either, though.

-- 
Russ Allbery ([email-masked])             <http://www.eyrie.org/~eagle/>

---

From: "Charles Lindsey" <[email-masked]>
Date: Thu, 30 Jun 2005 18:31:38 GMT

>Can I suggest the following arrangement of text...

No, I think I prefer the original arrangement. Start with the ones which
are simple restrictions on the syntax (all-digit and uppercase-names),
which should come immediately after the syntax, Deal next with the ones
that have systematic treatment ("_", "+", "-"). And finally the apparently
bizarre specific component-names.

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: [email-masked]      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5

---

From: "Charles Lindsey" <[email-masked]>
Date: Thu, 30 Jun 2005 18:26:15 GMT

> used only to refer to existing groups that do not conform to this
                                       ^
                          created prior to this standard

> relaying and serving agents.

s/by posting agents//

(I.e. MUST NOT be generated; period. And also removes any argument about
what injecting agents do if they see one).

s/by relaying and serving agents/all agents/

(Not so sure there, since it apparently restricts the right of injecting
agents to reject them. OTOH, all mentions, esp. normative ones, of the
various different kinds of agent are probaly best removed from USEFOR).

Also s/(Whether ...)//, since it does not actually add anything.

> relaying and serving agents.

Same suggestions as above, for the same reasons. So I would suggest:

   MUST NOT be generated without a private prior agreement with the
   intended recipients (such as between a news-server and its clients).

> Groups starting with the component "junk"

No, I think you can omit that one ("junk.foo is bizarre, but not harmful)

> The group "control"

But you can omit that, because it is already excluded because its first
(& only) component is excluded.

> The group "to"

And you can omit that, because it is already excluded as above.

OTOH, I am not sure your classification into two categories is the right
one. Surely the distinction should be between the things which will cause
things to break (poster, to, all, ctl) and the things which flout accepted
conventions (example, junk, control, and even single-component names,
though it now seems agreed not to mention these here).

Anyway, it is still necessary to give _reasons_ for all these exclusions,
probably in a NOTE, because that is how you handled the reasons for
all-digit groups, etc. Here are some texts that might be useful:

ctl:
because it formerly caused such articles to be interpreted as control
messages

all:
because it is used as a wildcard in some implementations

to:
because of its special meaning to route certain control messages on a
point-to-point basis [USEPRO]

poster:
because of its special meaning in the Followup-To header

control:
used by many serving agents for pseudo-newgroups to hold control
messages

junk:
used by many serving agents to store invalid articles

example:
reserved for examples in this and other standards