[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

so umm, our namespace really isn't "flat"

I've been taking it for granted that message/package names form a hierarchy
and that whoever owns a given prefix ("janus-") needs to be consulted before
anyone can create what is effectively a sub-package ("janus-worm-"), that
such consultation would include the question of who actually uses which
message names and how (all kinds of possibilities here), and that the
possibility of such consultation not occurring is no more error-prone than
the possibility of two independent agencies with authority over a given
prefix creating distinct packages with the same name.

So I suppose I can be more extreme than Jay in that I'm not even sure that
anything is actually broken that needs fixing, i.e., apart from the core
problem of needing some kind of registry/administration, which I'm quite
happy to defer to MCP 3.0.

Then upon rereading what the spec actually says, I came across

    Package names are chosen from a flat namespace: the collection of valid
MCP identifiers

This sentence is contradicted almost immediately.  For one thing, the sample
package name, "mcp-edit", is *not* a valid MCP identifier, hyphen not being
a valid character in identifiers.  Slightly later on, there are references
to a "top-level namespace" which also contradicts the notion of the
namespace being "flat".  The description of the "dns-" naming subscheme is
also very hierarchical in spirit; why bother to reverse the order of the
domain names, otherwise?

I think what's going on here is that most people really *are* thinking of
the namespace in hierarchical terms but for the sake of avoiding the problem
of specifying an *administrative* structure in parallel with the namespace
structure, are afraid to SAY that the namespace itself IS hierarchical.
Never mind that, as the spec currently reads, Joe-random-implementer has no
business creating anything *other* than a DNS-named protocol, that is, for
anything that matters and that's not under the MCP- namespace, there IS
going to be an explicit administrative structure, namely that of DNS and the
good folks at NIC...

Since this is clearly a deep-and-still-unresolved argument and we're trying
to get this out the door, I'll propose a quick bandaid which you should feel
free to ignore but which may be sufficiently uncontroversial as to be
approvable on a silence-means-consent basis.  

    Package names are chosen from a flat namespace: the collection of
    valid MCP identifiers.  As such, package designers must exercise


    A package name is a hyphen-separated sequence of valid MCP
    identifiers.  While this name is interpreted hierarchically
    with the leftmost identifier being the most significant, the
    administration of package naming is, in general, currently
    <em>unspecified</em>.  Therefore, package designers must
    exercise caution...