Janne Jalkanen schrieb:
> Hi!
>
>   
>> But it appears that up to now the practice has been to check binary
>> dependencies in to the sjpwiki cvs repository. This makes the repository
>> *much much* larger than it would be without them. May I suggest that
>> this practice be reconsidered *before* the import into apache svn, ie
>> that *only* the source code be imported?
>>     
>
> I always figured that disk space is really cheap these days, and that
> the JAR files are not updated very often - the entire SVN repository
> including *all* the changes *ever* including all JAR updates seems to
> amount to a measly 84 megs when compressed (and JARs don't compress,
> as usual).
>
> We try to keep external libraries to a minimum anyway.
>   

The thing from the Apache point of view is that there are about 100
different java projects. And almost every single one of them uses
commons-logging for example. So that would be 100 copies of
commons-logging checked in to the subversion repository. When a new
release is made, and each project checks in the new version, there goes
another 100 copies (since binary diffs are not very efficient). It does
add up.

And when backups are made, all those bits need to be copied to the
backup medium. It's not just disk space, but time too.

And when somebody wants to download the source to browse it, they don't
need to wait for all the binary dependencies to download too. Probably
less important, but still nice for non-broadband users.

>   
>> In most apache java projects, the practice is to either use maven2
>> (which pulls libraries directly from the archives held at
>> repo1.maven.org, or ibiblio.org/maven2) or to use Ant tasks that fetch
>> the necessary libraries from exactly the same locations.
>>     
>
> You know, one of the things I asked my mentor when the question was
> posed whether JSPWiki would consider Apache was "will I be forced to
> use Maven, that dismal invention from hell?"  The answer was "no".
>
> Personally, I like it a lot when all I need to do is to say "cvs/svn
> update" in my repository and I know I will always get the latest
> source and dependencies, and that I don't have to run any new software
> in order to download any other stuff.  Especially Maven, the
> Horrendous Beast From Abyss With Tentacles For Eyes.  Or even ant,
> since that breaks the update-modify-checkin cycle.
>   
Here's one example of using Ant to get libs, without any special tools
required:

<target name="getlibs">
    <mkdir dir="lib"/>
    <get dest="lib/junit-3.8.1.jar" 
src="${getlibs.base}/junit/jars/junit-3.8.1.jar"/>
    <get dest="lib/logkit-1.0.1.jar" 
src="${getlibs.base}/logkit/jars/logkit-1.0.1.jar"/>
    <get dest="lib/avalon-framework-4.1.3.jar" 
src="${getlibs.base}/avalon-framework/jars/avalon-framework-4.1.3.jar"/>
    <get dest="lib/log4j-1.2.12.jar" 
src="${getlibs.base}/log4j/jars/log4j-1.2.12.jar"/>
    <get dest="lib/servletapi-2.3.jar" 
src="${getlibs.base}/servletapi/jars/servletapi-2.3.jar"/>
</target>

It's only a suggestion, for you to use or ignore as you wish. But it
still gives reproducable builds.
> (In addition, you will need to import the old jars anyway, or you will
> have snapshots of code in there which won't compile, which will make
> them kinda useless.)
>   

Are you talking here about being able to build pre-apache versions of
jspwiki using the contents of the apache svn repository? I'm not sure
that is necessary - or even a good idea. Having the full history of
source files is good. But for reproducing old builds, the jspwiki cvs
server will still exist, won't it?
> Frankly, if comes down to the disk space, I'd be happy to donate a
> shiny new 500 GB drive to ASF, if it means I don't have to touch
> Maven.
>
> But this is my personal opinion...
>   


Build tools are of course completely up to whoever is actually doing the
project. Your personal opinion counts for a lot :-)

Cheers,
Simon

Reply via email to