RE: Comments on URI Syntax

2003-11-10 Thread Tim Anderson
 From: Stephen McConnell [mailto:[EMAIL PROTECTED]

 Tim Anderson wrote:

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]



From the requirements at
http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/Requirements:
ASF Repository shall ... allow browsing and downloading of artifacts by
humans via normal
web browser.
Requiring a version to be part of the artifact file name when the
artifact is only useful to end users (e.g README), reduces clarity.

But it does increase usability sometimes.

README for which version?


An example:
  http://repo.apache.org/apache/commons-dbcp/1.1/README

The README is for version 1.1 of commons-dbcp.


By implication - the README is not an artifact but a feature of a version.
Is that a reasonable conclusion?
Stephen.

Why make the distinction? I view everything a project deploys as an
artifact.
Some artifacts will only be useful to end users (e.g, README, LICENSE.txt
etc),
others will be useful to tools.

-Tim




Re: Comments on URI Syntax

2003-11-10 Thread Stephen McConnell

Tim Anderson wrote:
By implication - the README is not an artifact but a feature of a version.
Is that a reasonable conclusion?
Stephen.
   

Why make the distinction? I view everything a project deploys as an
artifact. Some artifacts will only be useful to end users (e.g, 
README, LICENSE.txt etc), others will be useful to tools.

Because there is difference between aggregation of files of a partiular 
type as distinct from files that describe a particular typed file 
instance.  I view the artifact as the principal file held in a 
directory qualifed by a type (e.g. the jar file in a jars directory), 
and that other resources such as READMEs, LICENSEs, MD5s, etc. are 
examples of data that describe features of specific things such as a 
group, version, artifact, etc.

Why make the distinction?  When I look at the available artifacts in a 
/jars/ directory I will present these as an list of artifacts.  A user 
may select to view the properties/features of one of these items.  Using 
the name of an artifact - I can locate additional information about the 
artifact such as the MD5 signature, maybe the license or some dependency 
information - providing there is a convention that is predictable.  I.e. 
I need a mechanism to locate information about a particular artifact - e.g.

  artifact-path.something
  artifact-path.something-else
  artifact-path.MD5
  artifact-path.README
Etc.
Stephen.

-Tim

 

--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]



Re: Comments on URI Syntax

2003-11-10 Thread Stephen McConnell
Woops - see small correction in line.
Stephen McConnell wrote:

Tim Anderson wrote:
By implication - the README is not an artifact but a feature of a 
version.
Is that a reasonable conclusion?
Stephen.
  

Why make the distinction? I view everything a project deploys as an
artifact. Some artifacts will only be useful to end users (e.g, 
README, LICENSE.txt etc), others will be useful to tools.

Because there is difference between aggregation of files of a 
partiular type as distinct from files that describe a particular typed 
file instance.  I view the artifact as the principal file held in a 
directory qualifed by a type (e.g. the jar file in a jars directory), 
and that other resources such as READMEs, LICENSEs, MD5s, etc. are 
examples of data that describe features of specific things such as a 
group, version, artifact, etc.

Why make the distinction?  When I look at the available artifacts in a 
/jars/ directory I will present these as an list of artifacts.  A user 
may select to view the properties/features of one of these items.  
Using the name of an artifact - I can locate additional information 
about the artifact such as the MD5 signature, maybe the license or 
some dependency information - providing there is a convention that is 
predictable.  I.e. I need a mechanism to locate information about a 
particular artifact - e.g. 

I left out the all important principal artifact.
 artifact-path.type- the principal artifact (e.g. 
jars/fred.jar)
 artifact-path.something  -- some metadata
 artifact-path.something-else -- more meta data
 artifact-path.MD5 --- artifact signature
 artifact-path.README  readme about the artifact

The important thing is the recognition of the difference between a file 
that *is* the artifact as distinct from a file that *describes* an artifact.

Stephen.

  artifact-path.something
  artifact-path.something-else
  artifact-path.MD5
  artifact-path.README
Etc.
Stephen.
--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]



RE: Comments on URI Syntax

2003-11-10 Thread dion
Tim Anderson [EMAIL PROTECTED] wrote on 10/11/2003 10:53:47 AM:

  From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
 
   From the requirements at
   
http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/Requirements:
   ASF Repository shall ... allow browsing and downloading of 
artifacts by
   humans via normal
   web browser.
   Requiring a version to be part of the artifact file name when the
  artifact
   is only useful
   to end users (e.g README), reduces clarity.
  But it does increase usability sometimes.
 
  README for which version?
 
 An example:
http://repo.apache.org/apache/commons-dbcp/1.1/README
 
 The README is for version 1.1 of commons-dbcp.

That's easy enough to work out from the URL, what happens after I've 
downloaded it?

In the case of a README, you'd hope it contained some version info 
anyways, but for other stuff?
--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/
Pub Key:http://blogs.codehaus.org/people/dion/public-key.asc





Re: Comments on URI Syntax

2003-11-10 Thread dion
Stephen McConnell [EMAIL PROTECTED] wrote on 10/11/2003 10:58:09 AM:

 By implication - the README is not an artifact but a feature of a 
version.
 Is that a reasonable conclusion?

I'd question the value of distributing a README as a single file.

In the maven world, we have a type called 'distribution', which contains a 
README, jar, source etc.
--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/
Pub Key:http://blogs.codehaus.org/people/dion/public-key.asc





Re: Comments on URI Syntax

2003-11-10 Thread Stephen McConnell

Tim Anderson wrote:
From: Stephen McConnell [mailto:[EMAIL PROTECTED]
Woops - see small correction in line.
Stephen McConnell wrote:
   

Tim Anderson wrote:
 

By implication - the README is not an artifact but a feature of a 
version.
Is that a reasonable conclusion?
Stephen.
 
 

Why make the distinction? I view everything a project deploys as an
artifact. Some artifacts will only be useful to end users (e.g, 
README, LICENSE.txt etc), others will be useful to tools.

   

Because there is difference between aggregation of files of a 
partiular type as distinct from files that describe a particular typed 
file instance.  I view the artifact as the principal file held in a 
directory qualifed by a type (e.g. the jar file in a jars directory), 
and that other resources such as READMEs, LICENSEs, MD5s, etc. are 
examples of data that describe features of specific things such as a 
group, version, artifact, etc.

Why make the distinction?  When I look at the available artifacts in a 
/jars/ directory I will present these as an list of artifacts.  A user 
may select to view the properties/features of one of these items.  
Using the name of an artifact - I can locate additional information 
about the artifact such as the MD5 signature, maybe the license or 
some dependency information - providing there is a convention that is 
predictable.  I.e. I need a mechanism to locate information about a 
particular artifact - e.g. 
 

I left out the all important principal artifact.
 artifact-path.type- the principal artifact (e.g. 
jars/fred.jar)
 artifact-path.something  -- some metadata
 artifact-path.something-else -- more meta data
 artifact-path.MD5 --- artifact signature
 artifact-path.README  readme about the artifact

The important thing is the recognition of the difference between a file 
that *is* the artifact as distinct from a file that *describes* 
an artifact.

Stephen.
   

 artifact-path.something
 artifact-path.something-else
 artifact-path.MD5
 artifact-path.README
Etc.
Stephen.
 

File aggregation is important to tools, less so for end-users.
The MD5 is just another artifact - its up to the tools
to determine its association with other artifacts.
If the MD5 is just another artifact then it would belong under
something like:
  http://www.ibiblio.org/maven/ant/md5s/some-artifact-name.md5
But that does not make sence (or types don't make sence).  The
fact is that there really is a differnce between path and
path.meta providing that there that is a recognition in the
base repository schema that these are two different things.
That recognition (as a part of the schema) is very important for
the attribution of information that would be used in the next
level up - i.e. that leyer on which meta data is accesses to
in order to manage an anttribute.
Stephen.
--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]



Re: Comments on URI Syntax

2003-11-09 Thread Jason van Zyl
On Sun, 2003-11-09 at 01:41, Tim Anderson wrote:
 I have a few comments on the proposed URI Syntax, from
 http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/URISyntax.
 
 quote
Compromise URI
 
http://host/project/version/artifact-[version;].ext
For example
http://repo.apache.org/org-apache-ant/1.5.1/ant-1.5.1.jar
http://repo.apache.org/org-apache-ant/1.5.1/ant-testutil-1.5.1.jar
http://repo.apache.org/org-apache-ant/1.5.1/LICENSE.txt
 /quote

Having the version in the path certainly doesn't hurt readability and
it definitely will make the structure more navigable as it keeps a
massive number of artifacts from piling up in one place. And of course
you have the by product of faster indexing and quicker hits by the file
system and if transfered to another storage mechanism the reduction of
the bit per bucket can only be a good thing. Simple ideas are good ones.
Good idea!

+1

 1. This should be written as:
  http://host/project/version/artifact[-version].ext
as the '-' is only required if the version is present.

I think the version should always be present. People will use the
repository directly and I think that's ok so you if you copy an artifact
somewhere by mistake it is always nice to have as much information as
possible so making the version optional I don't think is a great idea.

 2. Does '.ext' need to be mandatory?
I'm assuming that a project is free to deploy whatever it
likes into the repository, not all of which should be forced
to have extensions (e.g, Unix shell scripts, README files).

I don't think they need to be, but I haven't thought about that one
much. We have presumed so in Maven because artifacts have generally been
archives but there's no reason there has to be an extension.

 3. project is too limiting as it is required to be globally
unique, resulting in unwieldy names like:
   jakarta-commons-logging or org.apache.jakarta.commons.logging
 
I would prefer to see this split into:
  organisation/product
where:
. organisation is arbitrary, but globally unique.
  It could be the domain name, e.g sun.com, the reverse domain
  name e.g org.apache, or simply the name of the organisation, e.g
 oracle.
 
. project is the project name, unique within the organisation,
  e.g: jndi, ldap, commons-logging etc.

What we've discussed in Maven-land is using something like a groupId
which might look like: org.apache.maven and actually split on the dot to
make a directory. So basically organization by FQDN. Something which
would also make indexing easier in filesystems and I think makes it
easier to navigate by a person.

 4. artifact is too limiting as it groups all artifacts for one
project in a single directory. For projects producing large
no.s of artifacts, it becomes difficult for users to browse.
The httpd project for example produces multiple binaries, for
different platforms (see http://www.apache.org/dist/httpd/)
The requirement that -version is prepended to the artifact
name also doesn't support language specific requirements.
 
I would prefer to see this split into:
  [type/][platform/]artifact
 
where:
. type is optional and arbitrary, determined by the deployment tool.
  E.g: jars, binaries, docs etc.
. platform is optional and arbitrary, determined by the deployment
 tool.

Having the type I think is good and has worked for Maven.

+1

. artifact is determined by the deployment tool, and includes:
  . the artifact name
  . the version (optional)
  . the platform (optional)
  . the extension (optional)
  . the type (optional)
E.g, -src, -bin etc.
 
This allows the repository to cater for language-specific deployment
tools. For java, artifact could be:
  artifact-name[-version][-type][.ext]
E.g:
  . LICENSE.txt
  . ant-1.5.1.jar
  . ant-1.5.1-src.zip
 
For C binaries, artifact could be:
   artifact-name-version-platform.ext
E.g:
  . httpd-2.0.43-sparc-sun-solaris2.8.tar.gz
 
 In summary, I think the URI should be of the form:
 
 http://host/organisation/project/version/[type/][platform/]arti
 fact,

For organization I would suggest a groupId where most projects would
use their FQDN and split on the dot for directory structure. Also the
manditory use of a version in the artifact name as even in your example
below the LICENSE.txt could potentially change from one release to
another and you wouldn't want to copy one version over another by
mistake and distribute it. An Unlikely example yes, but possible if the
version is not in the artifact itself. I also think the type should be
required.

So my attempt for further refinement would be this:

http://host/groupId/project/version/type/[platform/]/artifact-version[.ext]

 with the format of artifact determined by the deployment tool.
 
 For example:
http://repo.apache.org/apache/ant/1.5.4/LICENSE.txt

RE: Comments on URI Syntax

2003-11-09 Thread dion
Where is Tim's Layout?
--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/
Pub Key:http://blogs.codehaus.org/people/dion/public-key.asc


Noel J. Bergman [EMAIL PROTECTED] wrote on 09/11/2003 06:22:51 PM:

 Jason,
 
 I think that Tim's ideas were pretty well-thought out and reflect a 
workable
 consensus.  The changes you are making to his ideas, if I read the
 correctly, are to mandate a couple of things that he did not rule out, 
but
 permitted to remain optional.  Having them as optional does not strike 
me as
 a problem.
 
 Best practices can always suggest that optional elements be used, and 
we'll
 discover in practice how broadly the rule(s) should apply.
 
 We should make sure that folks like William Rowe and others who have
 commented on the repository structure lately take a look at, and provide
 feedback on, Tim's layout.
 
--- Noel
 



RE: Comments on URI Syntax

2003-11-09 Thread Tim Anderson
http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]ms
gNo=266

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
 Sent: Sunday, 9 November 2003 7:28 PM
 To: [EMAIL PROTECTED]
 Subject: RE: Comments on URI Syntax


 Where is Tim's Layout?
 --
 dIon Gillard, Multitask Consulting
 Blog:  http://blogs.codehaus.org/people/dion/
 Pub Key:http://blogs.codehaus.org/people/dion/public-key.asc


 Noel J. Bergman [EMAIL PROTECTED] wrote on 09/11/2003 06:22:51 PM:

  Jason,
 
  I think that Tim's ideas were pretty well-thought out and reflect a
 workable
  consensus.  The changes you are making to his ideas, if I read the
  correctly, are to mandate a couple of things that he did not rule out,
 but
  permitted to remain optional.  Having them as optional does not strike
 me as
  a problem.
 
  Best practices can always suggest that optional elements be used, and
 we'll
  discover in practice how broadly the rule(s) should apply.
 
  We should make sure that folks like William Rowe and others who have
  commented on the repository structure lately take a look at, and provide
  feedback on, Tim's layout.
 
 --- Noel
 






RE: Comments on URI Syntax

2003-11-09 Thread Jason van Zyl
On Sun, 2003-11-09 at 02:22, Noel J. Bergman wrote:
 Jason,
 
 I think that Tim's ideas were pretty well-thought out and reflect a workable
 consensus.  The changes you are making to his ideas, if I read the
 correctly, are to mandate a couple of things that he did not rule out, but
 permitted to remain optional.  Having them as optional does not strike me as
 a problem.
 
 Best practices can always suggest that optional elements be used, and we'll
 discover in practice how broadly the rule(s) should apply.
 
 We should make sure that folks like William Rowe and others who have
 commented on the repository structure lately take a look at, and provide
 feedback on, Tim's layout.

If someone else wants to act as secretary that's cool but I wanted to
try and collect the ideas expressed so far in a small document. I'm not
a huge fan of the wiki. If someone else has started some coherent
documentation I won't step on anyone's toes but I'll help codify any
existing docs there are.

   --- Noel
-- 
jvz.

Jason van Zyl
[EMAIL PROTECTED]
http://tambora.zenplex.org

In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
  
  -- Jacques Ellul, The Technological Society



Re: Comments on URI Syntax

2003-11-09 Thread Stephen McConnell

[EMAIL PROTECTED] wrote:
From the requirements at
http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/Requirements:
ASF Repository shall ... allow browsing and downloading of artifacts by
humans via normal
web browser.
Requiring a version to be part of the artifact file name when the 
   

artifact
 

is only useful
to end users (e.g README), reduces clarity.
   

But it does increase usability sometimes.
README for which version?
Good point!
Is not a README a feature of an artifact?
Stephen.
--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]



RE: Comments on URI Syntax

2003-11-09 Thread Tim Anderson
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]

  From the requirements at
  http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/Requirements:
  ASF Repository shall ... allow browsing and downloading of artifacts by
  humans via normal
  web browser.
  Requiring a version to be part of the artifact file name when the
 artifact
  is only useful
  to end users (e.g README), reduces clarity.
 But it does increase usability sometimes.

 README for which version?

An example:
   http://repo.apache.org/apache/commons-dbcp/1.1/README

The README is for version 1.1 of commons-dbcp.

-Tim




Re: Comments on URI Syntax

2003-11-09 Thread Stephen McConnell

Tim Anderson wrote:
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
   

From the requirements at
http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/Requirements:
ASF Repository shall ... allow browsing and downloading of artifacts by
humans via normal
web browser.
Requiring a version to be part of the artifact file name when the
 

artifact
   

is only useful
to end users (e.g README), reduces clarity.
 

But it does increase usability sometimes.
README for which version?
   

An example:
  http://repo.apache.org/apache/commons-dbcp/1.1/README
The README is for version 1.1 of commons-dbcp.
By implication - the README is not an artifact but a feature of a version.
Is that a reasonable conclusion?
Stephen.
--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]