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: URI Syntax: nightly and release builds

2003-11-14 Thread Tim Anderson
OK - so it should be at part of the java artifact specifier proposal [1],
or do you envision another layer?
The URI Syntax proposal [2] that the above extends is becoming a little
thin.

i.e:
  repository-uri = access-specifier "/" product-specifier "/"
   artifact-specifier
  ...
  product-specifier = organisation "/" project "/" version
  organisation = *pchar
  project = *pchar
  version = *pchar
  (pchar is per http://www.ietf.org/rfc/rfc2396.txt)

becomes:
  ...
  product-specifier = organisation "/" project "/" version
  organisation = path_segments   [3]
  project = *pchar
  version = path_segments
  (path_segments is per http://www.ietf.org/rfc/rfc2396.txt)

organisation, version and artifact-specifier are therefore all
opaque, determined by best-practices.

-Tim

[1] http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/JavaArtifacts
[2] http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/URISyntax
[3] to allow for FQDN and reverse FQDN, separated by "/".

> -Original Message-
> From: Stephen McConnell [mailto:[EMAIL PROTECTED]
> Sent: Friday, 14 November 2003 12:55 PM
> To: [EMAIL PROTECTED]
> Subject: Re: URI Syntax: nightly and release builds
>
>
>
> Tim:
>
> My initial impression is that all the following could be expressed as
> part of a spec. one-level-up from the artifact spec.  Everything below
> is dealing with the notion of the usage of the repository for a
> particular purpose - namely the registration of artifacts arising from
> development processes.  It would be nice if we could draw a line between
> the repository in its role as "artifact retrieval" as distinct from the
> *usage* of the repository for a particular domain objective.
>
> Personally I figure this can be archived by layering on a usage specific
> set of rules/best-practices on top of the [version] element.
>
>
> Cheers, Steve.
>
>
>
> Tim Anderson wrote:
>
> >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/l

Re: URI Syntax: nightly and release builds

2003-11-14 Thread Nick Chalko
Stephen McConnell wrote:
Tim:
My initial impression is that all the following could be expressed as 
part of a spec. one-level-up from the artifact spec.  Everything below 
is dealing with the notion of the usage of the repository for a 
particular purpose - namely the registration of artifacts arising from 
development processes.  It would be nice if we could draw a line 
between the repository in its role as "artifact retrieval" as distinct 
from the *usage* of the repository for a particular domain objective.

Personally I figure this can be archived by layering on a usage 
specific set of rules/best-practices on top of the [version] element.

Yes I agree,
A repo usage of version best practice document.
Cheers, Steve.






smime.p7s
Description: S/MIME Cryptographic Signature


Re: URI Syntax: nightly and release builds

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

Very nicley thought out proposal. 
However first we should decide if we need to do anything with version. 

Why can't projects just all there versions whatever they want
Nightly, daily, latest, current, alpha, beta, final, rc, gold, foo, bar, ...
I don't think we need to specify anything about a version.
We can also consider using redirects instead of symlinks for latest etc.
R,
Nick


smime.p7s
Description: S/MIME Cryptographic Signature


Re: URI Syntax: nightly and release builds

2003-11-14 Thread Stephen McConnell
Tim:
My initial impression is that all the following could be expressed as 
part of a spec. one-level-up from the artifact spec.  Everything below 
is dealing with the notion of the usage of the repository for a 
particular purpose - namely the registration of artifacts arising from 
development processes.  It would be nice if we could draw a line between 
the repository in its role as "artifact retrieval" as distinct from the 
*usage* of the repository for a particular domain objective.

Personally I figure this can be archived by layering on a usage specific 
set of rules/best-practices on top of the [version] element.

Cheers, Steve.

Tim Anderson wrote:
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://rep