Conor,
At 11:02 15.03.2001 +1100, Conor MacNeill wrote:
>Ceki,
>
>I would like to give you some feedback on the common directory layout
>http://jakarta.apache.org/site/dirlayout.html
>
>This is mostly from my Ant perspective and somewhat from my impression of
>some other common practices in the Jakarta sub-projects. I do realize that
>these are just recommendations.
>
>docs directory
>=================
>I have noticed a trend to put the sub-project's web pages into this area. I
>wonder is that is a good thing since the web pages and the user
>documentation are two different things, IMHO. The web pages are potentially
>much more ephemeral than the product documentation that accompanies a
>release. When you build a release, it may not make much sense to include
>that ephemeral information (such as sub-project news) with the project docs.
>
>For Ant, I made a separate directory for the webpages (webpage). I had to do
>this anyway since there was already an index.html file in the Ant docs
>directory, although I have subsequently moved that.
As Jon pointed out earlier, I do not see the advantage for distinguishing between
documentation and the web pages. It is quite pleasant to be able to browse a project
web site locally on a file system without requiring a network connection.
>build directory
>================
>Many of the Jakarta projects put the build files in the project's root
>directory and use the build directory for build results, such as build
>classes which will be jarred up into the distribution
So by build/ you actually mean the dist/ directory of the dirlayout.html document. As
far as I can see there is nothing wrong with that except that if we make a choice
regardless of what it is we should stick to it, a bit like indentation I guess.
>build/lib
>==========
>If this is a non-binding recommendation, I don't see why it supports two
>locations to put the binary jars. It should either be lib or build/lib,
>IMHO.
Jon, explained that the build/lib is for building (compiling) and lib/ for runtime. I
confess that I don't really understand the difference... See also the last paragraph
of this note.
>dist
>=========
>I believe this should be a distribution "image" and it is therefore not
>really appropriate to place the distribution binaries (.zip, .gz files) in
>this location. For Ant, I create the distributions into a directory called
>distribution. It contains the source and binary distributions, the latter
>being equivalent to the dist directory.
Why are you making a distinction? What's wrong putting the distribution images, src,
birnary, documentation or otherwise in dist/ and the javac generated classes under
dist/classes?
>dist/classes
>=============
>I don't believe we want generally want raw classfiles in the dist directory.
>Many projects put this into build/classes and place just jars in the dist
>directory.
Why? What's the rationale? Moreover, in the classes directory there might be more
classes than in the jars.
>Other
>======
>
>I think that there should be a recommendation that any file/dir not under
>CVS control should go into the .cvsignore file.
There is no need to adding any files to .cvsignore if you add files to CVS control
individually as in
> cvs add x.java y.java
instead of
> cvs add *
or am I missing something?
>Do we want to make recommendations about the structure of the dist
>directory? This is what end-users will actually use and there may be
>benefits in a common approach here too. In Ant, for example, we create a
>dist/bin directory to contain scripts and executables useful for running
>Ant. we also place all generated jars in the dist/lib directory. Perhaps
>they are similar or the same as these recommendations.
Restricting the dist/ directory to the binaries that the end-users will actually use
is a nice abstraction imho.
How about:
dist/lib for generated jar files and extraneous libs
dist/bin/ for scripts (generated or not)
dist/image for actual project distributions (tar.gz or zip files)
The project distribution files are for those that actually make releases not for the
casual user Jon Doe.
As I understand it, there will be build/lib for libraries used only during build and
not during runtime, and dist/lib for libraries used in both build time or run time.
(dist/lib is perhaps what Jon meant by lib/)
Is that reasonable? Cheers, Ceki
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]