> You can alter <auth> to whatever (it just needs to be a string...

Larry may comment, but in case not, or, if he does, to save him
some time and give him something to correct, here's my take on
what he specified^H^H^H^H^Hulated.

@Larry defined the auth to be a URI.

Quoting https://en.wikipedia.org/wiki/Uniform_Resource_Identifier:

> A Uniform Resource Identifier (URI) is a string of characters that
> unambiguously identifies a particular resource.
...
> The most common form of URI is the Uniform Resource Locator (URL)
...
> More rarely seen in usage is the Uniform Resource Name (URN) ..
>.for the identification of resources in particular namespaces.

So, rarely, but sometimes, a URI is an URN.

Larry didn't specify a URN but rather a URI. So I think he was allowing
us to go either the URL or URN route. If so, then this perhaps "strangely"
mirrors his choice of auth as being ambiguously either author or authority.

But I think, in general, he tilted URN in his examples.

Continuing with Wikipedia:

> [G]eneric syntax consists of a hierarchical sequence of five components:
> URI = scheme:[//authority]path[?query][#fragment]

So, at its simplest, scheme:path.

Larry's examples were things like cpan:JRANDOM and github:raiph.

The Wikipedia page has a section on URI resolution including:

> Resolving a URI reference against a base URI results in a target URI.
> The base URI can be obtained, in order of precedence, from:
...
> the context of the application.

So I think the idea here is that our toolchain determines how the
string is interpreted.

So, yes, you can type any string, but that string has a specific
meaning determined by the toolchain.

And toolchain tools "should" be sensible, and follow @Larry's
guidance. Which is to start with, and perhaps stick with, `foo:bar`,
where:

* `foo` is one of whatever "schemes" we adopt; which we can for
  now assume correspond repo domain names -- cpan, github, ...

* `bar` is a username that's unique within the given scheme.

--
love, raiph

Reply via email to