Re: [VOTE] Where is version in UIR Syntax

2003-11-14 Thread Nick Chalko
Tim Anderson wrote:
I have a few comments on the content of that page:
1. Not sure why the discussion and the proposals are 
  separate, given the partial duplication of pros 
  and cons for each.
  Would prefer to see these merged.

Good point,  feel free to merge them.
and add your pro cons. 
We will need this for later, when people ask us Why, we can point them 
to the wiki summary.

2. Version be a mandatory component of artifact filename
 Pros:
 . Artifacts become identifiable when *downloaded* from the repository.
 . This is not compatible with the current ASF scheme.
   Neither maven, nor dist require version in the artifact filename.
 Cons:
 . Presumes to know requirements of other repository users,
   for which we have no requirements.
3. Version in directory
 Cons:
 . I don't see how the need for a 'latest' symbolic link is a
   con. There is no uniform way at ASF at the moment to indicate
   the latest version.
 . Scheme not currently used by ASF.
4. There has been no discussion on how to cope with nightly or snapshot
  builds, which could change the version syntax. E.g:
  1. Subdir per build:
 http://repo.apache.org/apache/commons-cli/nightly/20031112/...
 http://repo.apache.org/apache/commons-cli/nightly/20031113/...
  2. Embedded in version:
 http://repo.apache.org/apache/commons-cli/nightly-20031112/...
 http://repo.apache.org/apache/commons-cli/nightly-20031113/...
  I'm leaning towards the former, as browsing is simpler.
  OTOH, this then leads to the possibility of nightly,
  snapshot, release etc being mandatory in product-specifier:
  
  product-specifier = organisation / project / rtype / version
  rtype = nightly | snapshot | release | ...

-Tim
 

-Original Message-
From: Nick Chalko [mailto:[EMAIL PROTECTED]
Sent: Friday, 14 November 2003 9:51 AM
To: [EMAIL PROTECTED]
Subject: Re: [VOTE] Where is version in UIR Syntax
Current count.
2 For version dir with optional version on artifact name.
3 for version dir and versioned artifact name.
Make sure you voice your opinion.
Nick Chalko wrote:
   

Lets see where we stand on the version.
Please go to 

 

http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/WhereIs
   

VersionInURISytnax 
 

and vote for the Proposal you prefer.
Add pro's and con's as you see fit.
Lets see how close we are to a consensus so wee can move on to other 
parts of the URISyntax.

R,
Nick
   


 




smime.p7s
Description: S/MIME Cryptographic Signature


Re: [VOTE] Where is version in UIR Syntax

2003-11-14 Thread Stephen McConnell
Just based on opinions registered so far - it seems that the notion of 
version in the path has concensus and that the real question and 
difference between the two position holding attention is if a version in 
the filename should be manadatory or not. 

Is that a reasonable conclusions?
Stephen.
Nick Chalko wrote:
Tim Anderson wrote:
I have a few comments on the content of that page:
1. Not sure why the discussion and the proposals are   separate, 
given the partial duplication of pros   and cons for each.
  Would prefer to see these merged.

Good point,  feel free to merge them.
and add your pro cons. We will need this for later, when people ask us 
Why, we can point them to the wiki summary.

2. Version be a mandatory component of artifact filename
 Pros:
 . Artifacts become identifiable when *downloaded* from the repository.
 . This is not compatible with the current ASF scheme.
   Neither maven, nor dist require version in the artifact filename.
 Cons:
 . Presumes to know requirements of other repository users,
   for which we have no requirements.
3. Version in directory
 Cons:
 . I don't see how the need for a 'latest' symbolic link is a
   con. There is no uniform way at ASF at the moment to indicate
   the latest version.
 . Scheme not currently used by ASF.
4. There has been no discussion on how to cope with nightly or snapshot
  builds, which could change the version syntax. E.g:
  1. Subdir per build:
 http://repo.apache.org/apache/commons-cli/nightly/20031112/...
 http://repo.apache.org/apache/commons-cli/nightly/20031113/...
  2. Embedded in version:
 http://repo.apache.org/apache/commons-cli/nightly-20031112/...
 http://repo.apache.org/apache/commons-cli/nightly-20031113/...
  I'm leaning towards the former, as browsing is simpler.
  OTOH, this then leads to the possibility of nightly,
  snapshot, release etc being mandatory in product-specifier:
product-specifier = organisation / project / rtype / version
  rtype = nightly | snapshot | release | ...
-Tim
 

-Original Message-
From: Nick Chalko [mailto:[EMAIL PROTECTED]
Sent: Friday, 14 November 2003 9:51 AM
To: [EMAIL PROTECTED]
Subject: Re: [VOTE] Where is version in UIR Syntax
Current count.
2 For version dir with optional version on artifact name.
3 for version dir and versioned artifact name.
Make sure you voice your opinion.
Nick Chalko wrote:
  

Lets see where we stand on the version.
Please go to

http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/WhereIs
  
VersionInURISytnax  

and vote for the Proposal you prefer.
Add pro's and con's as you see fit.
Lets see how close we are to a consensus so wee can move on to other 
parts of the URISyntax.

R,
Nick
  


 


--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]
||
| Magic by Merlin|
| Production by Avalon   |
||
| http://avalon.apache.org/merlin|
| http://dpml.net/   |
||




Re: [VOTE] Where is version in UIR Syntax

2003-11-14 Thread Nick Chalko
Stephen McConnell wrote:
Just based on opinions registered so far - it seems that the notion of 
version in the path has concensus and that the real question and 
difference between the two position holding attention is if a version 
in the filename should be manadatory or not.
Is that a reasonable conclusions?
Seems that is where we are at. 
To me I can live with either.

R,
Nick

Stephen.



smime.p7s
Description: S/MIME Cryptographic Signature


RE: [VOTE] Where is version in URI Syntax

2003-11-14 Thread Tim Anderson
I've restructured the wiki page at
http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/WhereIsVersionInU
RISytnax,
and removed the part about symbolic links.

-Tim

 -Original Message-
 From: Nick Chalko [mailto:[EMAIL PROTECTED]
 Sent: Friday, 14 November 2003 11:00 AM
 To: [EMAIL PROTECTED]
 Subject: Re: [VOTE] Where is version in UIR Syntax


 Tim Anderson wrote:

 I have a few comments on the content of that page:
 
 1. Not sure why the discussion and the proposals are
separate, given the partial duplication of pros
and cons for each.
Would prefer to see these merged.
 
 Good point,  feel free to merge them.
 and add your pro cons.
 We will need this for later, when people ask us Why, we can point them
 to the wiki summary.

 
 2. Version be a mandatory component of artifact filename
   Pros:
   . Artifacts become identifiable when *downloaded* from the repository.
   . This is not compatible with the current ASF scheme.
 Neither maven, nor dist require version in the artifact filename.
 
   Cons:
   . Presumes to know requirements of other repository users,
 for which we have no requirements.
 
 3. Version in directory
   Cons:
   . I don't see how the need for a 'latest' symbolic link is a
 con. There is no uniform way at ASF at the moment to indicate
 the latest version.
   . Scheme not currently used by ASF.
 
 4. There has been no discussion on how to cope with nightly or snapshot
builds, which could change the version syntax. E.g:
1. Subdir per build:
   http://repo.apache.org/apache/commons-cli/nightly/20031112/...
   http://repo.apache.org/apache/commons-cli/nightly/20031113/...
 
2. Embedded in version:
   http://repo.apache.org/apache/commons-cli/nightly-20031112/...
   http://repo.apache.org/apache/commons-cli/nightly-20031113/...
 
I'm leaning towards the former, as browsing is simpler.
OTOH, this then leads to the possibility of nightly,
snapshot, release etc being mandatory in product-specifier:
 
product-specifier = organisation / project / rtype / version
rtype = nightly | snapshot | release | ...
 
 -Tim
 
 
 
 -Original Message-
 From: Nick Chalko [mailto:[EMAIL PROTECTED]
 Sent: Friday, 14 November 2003 9:51 AM
 To: [EMAIL PROTECTED]
 Subject: Re: [VOTE] Where is version in UIR Syntax
 
 
 Current count.
 2 For version dir with optional version on artifact name.
 3 for version dir and versioned artifact name.
 
 Make sure you voice your opinion.
 
 
 Nick Chalko wrote:
 
 
 
 Lets see where we stand on the version.
 Please go to
 
 
 
 http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/WhereIs
 
 
 VersionInURISytnax
 
 
 and vote for the Proposal you prefer.
 Add pro's and con's as you see fit.
 
 Lets see how close we are to a consensus so wee can move on to other
 parts of the URISyntax.
 
 R,
 Nick
 
 
 
 
 
 
 






Re: [VOTE] Where is version in UIR Syntax

2003-11-14 Thread Stephen McConnell

Nick Chalko wrote:
Stephen McConnell wrote:
Just based on opinions registered so far - it seems that the notion 
of version in the path has concensus and that the real question and 
difference between the two position holding attention is if a version 
in the filename should be manadatory or not.
Is that a reasonable conclusions?

Seems that is where we are at. To me I can live with either. 

Hi Nick:
Just for reference - I use non-versioned artifact referenced rather 
frequently.  Typically I'll create a symlink to a versioned artifact.  
The main benefit is when end-users are deploying artifacts and your 
giving them a URL. From my point of view is simply more friendly to make 
this optional - and I think more practical in the long term.

Stephen.
p.s.
BTW - I've sorted out how he can deal with meta resolution without 
impacting the spec - thanks to Noel's links re. http which lead to some 
learning about content negotiation and with some assisstance from Erik 
Abele from infrastructure, I managed to get in place a test case that 
allows me to pull down artifact metadata by requesting a text/x-meta 
mime type.

SJM

R,
Nick

Stephen.

--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]
||
| Magic by Merlin|
| Production by Avalon   |
||
| http://avalon.apache.org/merlin|
| http://dpml.net/   |
||




URI Syntax: nightly and release builds

2003-11-14 Thread Tim Anderson
The URISyntax proposal is silent on how to handle
nightly, release, snapshot, and latest builds.
This should be formalised. 

The current proposal has:
  product-specifier = organisation / project / version
where: 
  version = *pchar

To support nightlies etc, this leads to the possibility of 
artifacts named:
  http://repo.apache.org/apache/commons-cli/1.0/...
  http://repo.apache.org/apache/commons-cli/1.1/...
  http://repo.apache.org/apache/commons-cli/latest/...
- link to ../1.1
  http://repo.apache.org/apache/commons-cli/nightly-20031112/...
  http://repo.apache.org/apache/commons-cli/nightly-20031113/...
  http://repo.apache.org/apache/commons-cli/nightly-latest/...
- link to ../nightly-latest

Where *latest is a symlink to the latest version, to aid navigation.

Option 1. Specify version format


To formalise the above, product-specifier could be changed to:
  product-specifier = organisation / project / [rtype -] version
  rtype = nightly | snapshot
  version = latest | MMDD [- HHMM [SS]] | *pchar

Cons:
. clutters the repository
. doesn't follow existing conventions, e.g:
  http://cvs.apache.org/builds/jakarta-commons/nightly/commons-cli/
. no facility to indicate snapshots or nightlies of a particular
  version, if two or more versions are being developed concurrently.

Option 2. Add build directory
-

To reduce clutter, a new directory could be introduced to separate
releases from nightly and snapshot builds i.e:

  product-specifier = organisation / project / rtype / version
  rtype = release | nightly | snapshot
  version = latest | MMDD [- HHMM [SS]] | *pchar

E.g:
  http://repo.apache.org/apache/commons-cli/release/l.0/...
  http://repo.apache.org/apache/commons-cli/release/l.1/...
  http://repo.apache.org/apache/commons-cli/release/latest/... 
- symlink to ../1.1
  http://repo.apache.org/apache/commons-cli/nightly/20031112/...
  http://repo.apache.org/apache/commons-cli/nightly/20031113/... 
- symlink to ../20031113
  http://repo.apache.org/apache/commons-cli/snapshot/20030901-1032/...
  http://repo.apache.org/apache/commons-cli/snapshot/latest/...
- symlink to ../20030901-1032

Cons:
. no facility to indicate snapshots or nightlies of a particular
  version, if two or more versions are being developed concurrently.

Option 3. Concurrent version nightly/snapshot builds


To allow nightlies and snapshots of multiple versions, product-specifier
could be changed to:
  product-specifier = organisation / project / build
  build = release-build | interim-build
  release-build = release / version
  interim-build = itype / version / MMDD [- HHMM [SS]]
  itype = nightly | snapshot
  version = latest | *pchar

E.g:
  http://repo.apache.org/apache/commons-cli/release/l.0/...
  http://repo.apache.org/apache/commons-cli/release/l.1/...
  http://repo.apache.org/apache/commons-cli/release/latest/... 
- symlink to ../1.1
  http://repo.apache.org/apache/commons-cli/nightly/1.0/20031112/...
  http://repo.apache.org/apache/commons-cli/nightly/1.0/20031113/...
  http://repo.apache.org/apache/commons-cli/nightly/1.0/latest/... 
- symlink to ../20031113
  http://repo.apache.org/apache/commons-cli/nightly/2.0/20031112/... 
  http://repo.apache.org/apache/commons-cli/nightly/2.0/20031113/... 
  http://repo.apache.org/apache/commons-cli/nightly/2.0/latest/... 
- symlink to ../20031113
  http://repo.apache.org/apache/commons-cli/snapshot/1.0/20030901-1032/...
  http://repo.apache.org/apache/commons-cli/snapshot/1.0/latest/...
- symlink to ../20030901-1032
  http://repo.apache.org/apache/commons-cli/snapshot/2.0/20031101-1452/...
  http://repo.apache.org/apache/commons-cli/snapshot/2.0/latest/...
- symlink to ../20031101-1452

Option 4. Concurrent version interim builds


An alternative to Option 3 would be to remove any  distinction 
from nightly and snapshot builds, as the difference 
IMO is only cosmetic:
  product-specifier = organisation / project / build
  build = release-build | interim-build
  release-build = release / version
  interim-build = interim / version / MMDD [- HHMM [SS]]
  version = latest | *pchar

E.g:
  http://repo.apache.org/apache/commons-cli/release/l.0/...
  http://repo.apache.org/apache/commons-cli/release/l.1/...
  http://repo.apache.org/apache/commons-cli/release/latest/... 
- symlink to ../1.1
  http://repo.apache.org/apache/commons-cli/interim/1.0/20031112/...
  http://repo.apache.org/apache/commons-cli/interim/1.0/20031113/...
  http://repo.apache.org/apache/commons-cli/interim/1.0/latest/... 
- symlink to ../20031113
  http://repo.apache.org/apache/commons-cli/interim/2.0/20031112/... 
  http://repo.apache.org/apache/commons-cli/interim/2.0/20031113/... 
  http://repo.apache.org/apache/commons-cli/interim/2.0/latest/... 
- symlink to ../20031113


Re: URI Syntax: nightly and release builds

2003-11-14 Thread Stephen McConnell

Tim Anderson wrote:
OK - so it should be at part of the java artifact specifier proposal [1],
or do you envision another layer?
I don't think this is java specific - its software development process 
specific.  My current thinking is that it is a langauge independent 
layer is sufficient (mainly because I think I have resolved how to do 
everything I want relative to java based on these two layers).

The URI Syntax proposal [2] that the above extends is becoming a little
thin.
That's fine. 
It just means we have a simple and specific specification dealing with a 
simple and specific abstaction.

Cheers, Stephen.
--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]
||
| Magic by Merlin|
| Production by Avalon   |
||
| http://avalon.apache.org/merlin|
| http://dpml.net/   |
||




Re: [proposal] java artifact specifier v0.1

2003-11-14 Thread Peter Donald
On Thu, 13 Nov 2003 09:04 pm, Michal Maczka wrote:
 Yes - you are right they don't differ in this purpose.
 But it doesn't mean that one of them is not need. I think that
 repository is easily navigated
 when both groupId and type directories co-exits.

I guess what I saying is why not collapse both of them into one given that 
there is no distinction in purpose or in implementation.

The only purpose of type in maven is to indicate how it is processed by the 
runtime. (ie plugins get installed, jars get added to classpath etc). It does 
not even specify that extension as there is a M-to-M between type and 
extension. ie.

X.jar -- jar, ejb 
distribution -- .tar.gz, .tar.bz2 

-- 
Cheers,

Peter Donald
Copy from one, it's plagiarism; copy 
from two, it's research. 
- Wilson Mizner (1876-1933) 



Re: [proposal] java artifact specifier v0.1

2003-11-14 Thread Michal Maczka
Peter Donald wrote:
On Thu, 13 Nov 2003 09:04 pm, Michal Maczka wrote:
 

Yes - you are right they don't differ in this purpose.
But it doesn't mean that one of them is not need. I think that
repository is easily navigated
when both groupId and type directories co-exits.
   

I guess what I saying is why not collapse both of them into one given that 
there is no distinction in purpose or in implementation.

The only purpose of type in maven is to indicate how it is processed by the 
runtime. (ie plugins get installed, jars get added to classpath etc). It does 
not even specify that extension as there is a M-to-M between type and 
extension. ie.

 

I don't agree that this is the only purpose of type.
I think it's reasonable to have type  directory as this can separate 
artifact produced by various tools.
For example Ant is not build with Maven (and never will be) but we can 
still add Maven's POM for Ant to the repository.
The POM can be also added for Struts, Xerces etc.  If some other tools 
like Gump need their own meta data
they should be free to add it to the repository.  But I question the 
fact if such files should be mixed with distributions.
I don't like an idea of putting everything into one huge bag.  If I were 
a Struts developer I would hate
if somebody puts some strange artifacts into the directory which I 
maintain. I would like to have an exclusivity
for adding artifacts to directories like (jars/sources/distribution). 
But I could accept if  somebody (some tool)
is keeping its files in sibling directories. Also some exotic 
artifacts are making the repository harder to navigate.
Why to mix them with importand artifacts?

Michal


Re: [proposal] URI Syntax - v0.2

2003-11-14 Thread Anou Manavalan
Digesting each section slowly,
Its great idea to make Artifact Specifier to be opaque to give way to 
different languages, but I am not sure about the Version Specifier.  Version 
Specifier can be considered as language independent and allowing different 
best practices in there would make the repository unordered and could 
confuse the users.

1.0, v0.9-beta, nightly/20031113, latest, release/1.5.4
URI examples:
 http://repo.apache.org/apache/commons-logging/1.0
 http://repo.apache.org/xorg/xyz/release/1.2
 http://repo.apache.org/yorg/abc/v0.9-beta/abc..
thoughts ?
regards,
-Anou

From: Tim Anderson [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [proposal] URI Syntax -  v0.2
Date: Fri, 14 Nov 2003 16:39:06 +1100
This version replaces v1.0:
http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]ms
gNo=308
Overview

The key aims of this proposal are:
. language and artifact neutrality.
  It should be possible to support multiple languages and
  their artifacts, not just java.
. it should be possible for users to easily navigate
  the repository and locate artifacts, including
  jars and release distributions.
  Compare this with the existing approach of separating
  release distributions (http://www.apache.org/dist/) and jars
  (http://www.ibiblio.org/maven).
. it should be possible for tools to construct a URI
  to locate an artifact using a set of known criteria
Artifacts
-
All files in the repository are artifacts. There is no distinction
between artifacts and meta-data. Any relationships between artifacts
is determined by supporting tools.
Repository URI Components
=
An absolute repository URI is written as follows:
  repository-uri = access-specifier / product-specifier /
   version-specifier / artifact-specifier
Access specifier

The access specifier determines the scheme, authority, and optional
repository directory prefix. There is currently no requirement for
ftp, scp or file based access - only http is supported:
  access-specifier = http-access-specifier
  http-access-specifier = http://; authority / [directory /]
  directory = path_segments
  (authority and path_segments are per 
http://www.ietf.org/rfc/rfc2396.txt)

directory is used when the repository cannot be located at
the root of an absolute URI.
URI examples:
  http://repo.apache.org/
  http://repo.apache.org/pub/repository
Product specifier
-
The product specifier specifies the organisation and project:
  product-specifier = organisation / project
  organisation = name-segments
  project = name-segment
  name-segments = name-segment *( / name_segment)
  name-segment = nchar+
  nchar = alphanum | escaped | _ | - | ! | ~ | @ | 
  (alphanum and escaped are per http://www.ietf.org/rfc/rfc2396.txt)
organisation is the organisation name. It is arbitrary,
but should be globally unique. It could be the domain name,
or reverse domain name, with . replaced by /, e.g:
  sun/com, org/apache
or simply the name of the organisation, e.g oracle.
project is the project name. It is unique within an organisation.
E.g, ldap, jndi, maven, commons-logging.
URI examples:
  http://repo.apache.org/org/apache/commons-logging
  http://repo.apache.org/sun/jndi
Version specifier
-
The version specifier specifies the version of the project:
   version-specifier = name-segments
For the purposes of this proposal, version-specifier is opaque -
its format is determined by language and deployment best practices.
Some possible examples include:
 1.0, v0.9-beta, nightly/20031113, latest, release/1.5.4
URI examples:
  http://repo.apache.org/apache/commons-logging/1.0
  http://repo.apache.org/apache/commons-logging/1.1
  http://repo.apache.org/apache/commons-logging/latest
  http://repo.apache.org/apache/ant/release/1.5.4
  http://repo.apache.org/apache/ant/nightly/20031113
  http://repo.apache.org/apache/commons-cli/nightly/1.0/20031113
  http://repo.apache.org/apache/commons-cli/nightly/2.0/20031113
Artifact specifier
--
The artifact specifier uniquely identifies an artifact within a
project version:
  artifact-specifier = name-segments
For the purposes of this proposal, artifact-specifier is opaque -
its format is determined by language and deployment best practices.
Some possible examples include:
 jars/commons-logging-1.1.jar
 binaries/linux/httpd-2.0.40-i686-pc-linux-gnu-rh73.tar.gz
URI examples:
http://repo.apache.org/apache/common-logging/1.1/jars/commons-logging-1.1.ja
r
  http://repo.apache.org/apache/httpd/2.0.48/docs/httpd-docs-2.0.48.en.zip
  http://repo.apache.org/apache/ant/1.5.4/KEYS
Rationale
=
Of the URI components:
. access-specifier and product-specifier are common accross
  all languages and deployments.
. version-specifier is subject to language or deployment
  best practices
. artifact-specifier is subject to language, deployment, artifact, or
  project best practices
It is envisioned that there 

Tooling (was Version Specifier in Re: [proposal] URI Syntax - v0.2)

2003-11-14 Thread Adam R. B. Jack

 Its great idea to make Artifact Specifier to be opaque to give way to
 different languages, but I am not sure about the Version Specifier.
Version
 Specifier can be considered as language independent and allowing different
 best practices in there would make the repository unordered and could
 confuse the users.

I know of opinions on both sides. Some say we can't dictate, so best
practices are the best we can expect  even they'll be loose. Others say, we
can't achieve conformity unless we try -- and that tools can't process
totally unstructured opaque data.

I think the questions become (building upon each other):

1) Ought the URI be uniquely (unambiguously) parsable [i.e. things such as
your '-' not '/' proposal.]
2) Ought the URI be considered 'metadata' itself  structured?
3) Is the goal for the repository to be tools processable [even without
metadata]?

I'll work something up in the Wiki TODOs section and transfer any pros/cons
there.

---

One last comment on tools-based verses human-based. We are discussing
version in filename so it's version is identifiable once download from the
repository. It occurred to me that we are likely assuming a dumb client (a
human w/ browser perhaps) in that thought. Nothing is to stop tools
downloading an unversioned filename and adding -[version] to the end as it
writes it to disk.

Since we can likely assume that many humans have bad habits of not doing
verification checks of the contents of repositories that they download with
a browser, ought we actually weight our cogitations towards tooling that can
browse/select/download/verify. Note: I'm not talking implementation, nor any
tool, and I'm definitely not saying disallow the human user use case, I'm
just saying focus on tooling.

IMHO tooling (built upon certain levels of repository consistency) make the
repository@ venture more than just a re-organization of file systems, and
allow us to scale this and save a lot of wasted human effort. It seems a
critical goal to me. Thoughts?

regards

Adam