Hi gang!

should've written this earlier I guess. There's no pressing need to read this but I want it documented a little :-D

Versioning
----------
Observation: we have rather a lot of small seperately versioned artifacts. That's a pain to maintain.


Suggestion: make that a lot of small coarsely versioned artifacts. That's easier to maintain. excalibur-fortress gets a single version, our component libraries get a single version.

I've already put this in place in SVN a few days back, basically the version is kept in a few parent project.xml files which are <extend/>ed. I've had good experience only with this technique, and its real simple. In doing so I've bumped all the version numbers to 1 bigger than the greatest individual number.

Distributions
-------------
Observation: we have rather a lot of small artifacts. If the distribution layout is ever ****ed up (like it was for avalon) and inconsistent, that's a pain to maintain.


Suggestion: we try really well to be consistent and automated. We set this up correctly once, then avoid touching most of it for a long time to come.

I would like to see us not ever modify the distribution directory manually, but do it all using maven.

Distribution layout
-------------------
There's two popular options:

1) the ASF distribution layout rules [1]. For each seperately distributed product we have this structure:

--- /www/www.apache.org/dist/excalibur
 |--- KEYS
 |--- excalibur-fortress
      |--- source/
            |--- excalibur-fortress-2.0-src.tar.gz
            |--- excalibur-fortress-2.0-src.tar.gz.asc
            |--- excalibur-fortress-2.0-src.zip
            |--- excalibur-fortress-2.0-src.zip.asc
       |--- binaries/
            |--- excalibur-fortress-2.0.tar.gz
            |--- excalibur-fortress-2.0.tar.gz.asc
            |--- excalibur-fortress-2.0.zip
            |--- excalibur-fortress-2.0.zip.asc
       |--- jars/
            |--- excalibur-fortress-api-2.0.jar
            |--- excalibur-fortress-api-2.0.jar.asc
            |--- excalibur-fortress-impl-2.0.jar
            |--- excalibur-fortress-impl-2.0.jar.asc
                 (symlink to excalibur-fortress-2.0.tar.gz)
       |--- excalibur-fortress-current.tar.gz.asc
                 (symlink to excalibur-fortress-2.0.tar.gz.asc)
       |--- excalibur-fortress-current-src.tar.gz
                 (symlink to excalibur-fortress-2.0-src.tar.gz)
       |--- excalibur-fortress-current-src.tar.gz.asc
                 (symlink to excalibur-fortress-2.0-src.tar.gz.asc)

2) we follow the standard way maven sets up the distribution layout. We have a structure like this:

--- /www/www.apache.org/dist/excalibur
 |--- KEYS
 |--- excalibur-fortress
      |--- distributions/
            |--- excalibur-fortress-2.0-src.tar.gz
            |--- excalibur-fortress-2.0-src.tar.gz.asc
            |--- excalibur-fortress-2.0-src.zip
            |--- excalibur-fortress-2.0-src.zip.asc
            |--- excalibur-fortress-2.0.tar.gz
            |--- excalibur-fortress-2.0.tar.gz.asc
            |--- excalibur-fortress-2.0.zip
            |--- excalibur-fortress-2.0.zip.asc
       |--- jars/
            |--- excalibur-fortress-api-2.0.jar
            |--- excalibur-fortress-api-2.0.jar.asc
            |--- excalibur-fortress-impl-2.0.jar
            |--- excalibur-fortress-impl-2.0.jar.asc

#2 is what peter implemented. The old excalibur and fortress releases over at avalon follow option #1, and its what most apache projects do as well. I changed the script to do things that way (which was actually remarkably easy).

download.cgi
------------
We need to create http://excalibur.apache.org/download.cgi.

distribution docs
-----------------
Currently, thinks like checkstyle and linkcheck reports are included in the distributions. I don't like that; I think the only thing we should distribute are the apidocs. Not so sure how to cleanly set that up. Suggestions?


release everything
------------------
I think it would be nice to have www.apache.org/dist/excalibur/ contain at least the latest version of all the stuff we're maintaining. For the stuff that we're totally done with (like compatibility), we can simply symlink to the materials in the ../avalon/ directory. For the other stuff, it is probably easiest to create some new releases.


I'm not planning to copy over or symlink over all the old releases manually. We can simply point to the materials in the avalon distribution directory from our download page.

I'd like to make this happen as soon as possible.

thoughts?


- LSD

[1] http://www.apache.org/dev/mirrors.html

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Apache Excalibur Project -- URL: http://excalibur.apache.org/



Reply via email to