Re: RE: Barracuda jars in cvs

Jacob Kjome <[email protected]> Tue, 3 Feb 2004 16:36:27 +0000
Newsgroups gmane.comp.java.enhydra.barracuda.general
Message-ID <[email protected]>
Quoting Christian Cryder <[email protected]>:

> Darn it! I wasn't quite done! Stupid Outlook sent it before I was ready...
> ;-)
> 
> To complete my thought:
> 
> SO...that's the basic rundown. I'd be curious to hear what people
> think: should we remove the following jars from cvs:
> 
> WEB-INF/lib-cvs/admin.jar
> WEB-INF/lib-cvs/config.jar
> WEB-INF/lib-cvs/contrib.jar
> WEB-INF/lib-cvs/core.jar
> WEB-INF/lib-cvs/examples.jar
> WEB-INF/lib-cvs/testbed.jar
> WEB-INF/lib-cvs/tutorials.jar
> WEB-INF/lib-cvs/plankton.jar
> 
> The upshot of this will be that you can no longer simply type
> 
>     'ant install'
> 
> when updating from cvs, yout instead you will have to do
> 
>     'ant clean' (or 'ant superclean')
>     'ant jars' (or 'ant jars.master')
>     'ant install'
> 
> and this in turn means you will have to have all the proper 3rd party jar
> files / jdk stuff in place on your box in order to actually do the compile.
> 

continuing from my other email, I never suggested we remove all binaries from
Barracuda.  I do have a way to automatically download dependencies, though,
which would allow for this (kind of like how Maven works, but in an Ant build).
   Until that happens, I have no problem storing 3rd party jars in CVS.  I only
have a problem with storing generated jars.  And, again, I wouldn't do anything
until *after* the 1.2.6 release.

Jake

> Let me know what you think...
> Christian
> ----------------------------------------------
> Christian Cryder
> Internet Architect, ATMReports.com
> Project Chair, BarracudaMVC - http://barracudamvc.org
> ----------------------------------------------
> "Coffee? I could quit anytime, just not today"
> 
> 
> > -----Original Message-----
> > From: Christian Cryder [mailto:[email protected]]
> > Sent: Tuesday, February 03, 2004 10:39 AM
> > To: [email protected]
> > Subject: Barracuda jars in cvs
> >
> >
> > Hi Thelmo & Jake,
> >
> > Here's the history on this (complete details are in the
> > archives...this has been discussed in the past)
> >
> > Originally, the goal of the Barracuda project was that it would
> > install out of the box. This is why the whole project is
> > structured as a webapp. You simply unpack the project or update
> > it from cvs, point your appserver at it and bang! you're in
> > business. Pretty simple, and I think a very proper goal (you'll
> > notice there are very few complaints over the last three years
> > from people saying "I can't get this thing to run")
> >
> > Now, this is why we started storing the jars under cvs - so that
> > you could unpack the project and simply run it. For this reason,
> > the jars were originally kep in the WEB-INF/lib directory. The
> > problem with this approach, however, is that if you are updating
> > from cvs, cvs will want to delete those files before putting the
> > new copies in place, and if Tomcat is running, it has them
> > locked. SO...what ended up happening was that you'd have to shut
> > tomcat down in order to update from cvs.
> >
> > So what we did next was moved all the jars from WEB-INF/lib to
> > WEB-INF/cvs, and then add the ant install task, which copies the
> > jars from /lib-cvs to /lib (you can overwrite locked files
> > without a problem). The install task also copies sample files
> > into place (like web.xml, object-repository.xml, etc). The upshot
> > of all this is that you can update from cvs, install, and then
> > just quickly cycle just the webapp to pick up new changes. Much
> > less down time, far less invasive, etc. Plus you still didn't
> > have to rebuild the project.
> >
> > Given all this, I still like the idea of keeping all the jar
> > files in cvs. It keeps Barracuda relatively easy to use - you
> > just update from cvs and run install (no need to rebuild the
> > jars). There are several complications however. Jake has added
> > the notion of superclean, which clears out the copied sample
> > files so that they can be recreated anew when you do the next
> > install. This is good, since there are times when you want to do
> > this (like when sample.xml changes). Superclean also nukes the
> > jar files under cvs, so that they will be rebuilt (guaranteeing
> > that what's in the jars is what's in your src tree...shouldn't be
> > necessary if the jars are updated regularly, but that hasn't been
> > happening all the time). Another issue is that we never use the
> > Barracuda jars that are kept under cvs anyway - we also build
> > using the jars.master target so that we can get the single
> > unified barracuda.jar (which used to be under cvs before we split
> > the jars up into pieces).
> >
> > SO...all this to say, we can revisit the idea of removing the
> > Barracuda generated jars from cvs. But the implications of this
> > are going to be that it will further complicate the install
> > process - you will have to update from cvs and then
> > compile/build/jar/install. Second, one of the most common reasons
> > people ask to have the jars removed from cvs is to save on
> > project size (faster updates from cvs). I personally think this
> > is mostly a non-issue: if you look at all the jars which are
> > under cvs, we have over 8 MB of 3rd party jars (ouch!), while the
> > Barracuda jars account for less than a meg. So, removing the jars
> > from cvs may not speed things up nearly as much as people might expect.
> >
> > There are other issues as well - namely deployment (the basic
> > premise that when deploying apps you should never be recompling,
> > but always installing a previously compiled/tested binary which
> > is kept under cvs. For our projects that use Barracuda, we keep
> > everything under cvs, and the installation process is a breeze -
> > all fully automated through ant, even the cycling of Tomcat...so
> > we'd never move our other projects away from keeping jars under
> > cvs). That said, Barracuda is a library, not a vertical app...so
> > if people really want to remove the jars from cvs, it wouldn't
> > kill us (like I said, we are already rebuilding jars to use the
> > unified barracuda jar, rather than all the individual barracuda jars).
> >
> > SO...that's the basic rundown. I'd be curious to hear what people
> > think: should we remove the following jars from cvs:
> >
> > WEB-INF/lib-cvs/
> > WEB-INF/lib-cvs/
> > WEB-INF/lib-cvs/
> > WEB-INF/lib-cvs/
> > WEB-INF/lib-cvs/
> >
> >
> >
> >
> >
> >
> >
> > ----------------------------------------------
> > Christian Cryder
> > Internet Architect, ATMReports.com
> > Project Chair, BarracudaMVC - http://barracudamvc.org
> > ----------------------------------------------
> > "Coffee? I could quit anytime, just not today"
> >
> >
> > > -----Original Message-----
> > > From: [email protected]
> > > [mailto:[email protected]]On Behalf Of Thelmo Loisio
> > > Sent: Monday, February 02, 2004 4:31 AM
> > > To: [email protected]
> > > Subject: RE: [Barracuda] New version tagged in cvs
> > >
> > >
> > > On Sat, 2004-01-31 at 02:30, Jacob Kjome wrote:
> > > > At 09:11 AM 1/30/2004 -0500, you wrote:
> > > > >Hi Thelmo,
> > > > >
> > > > > > Could it be the right time (now before release) to remove
> > > the various
> > > > > > compiled jar files from CVS repository !?
> > > > >
> > > > >What exactly do you mean? Not sure I clearly understand what
> > > you have in
> > > > >mind here...
> > > > >
> > > > >Christian
> > > >
> > > > I'm pretty sure he means stuff like barracuda-core.jar and
> > > family.  Those
> > > > jars that are generated by the Barracuda build itself and are
> > > not 3rd party
> > > > dependencies.  I have suggested removing them in the past, but
> > > I know your
> > > > arguments for keeping them in CVS.  I'd be happy enough if they went
> > > > bye-bye, but I'd leave that completely up to you and the rest of the
> > > > community.  It would certainly make it much faster to grab the
> > > Barracuda
> > > > CVS and not worry about committing jars, just code updates.
> > > >
> > > > Jake
> > > >
> > >
> > > Yes, Jacob get my point.
> > > Christian which are your arguments to keep that jar in the repository !?
> > >
> > >
> > > --
> > > Thelmo
> > >
> > > _______________________________________________
> > > Barracuda mailing list
> > > [email protected]
> > > http://barracudamvc.org/lists/listinfo/barracuda
> 
> _______________________________________________
> Barracuda mailing list
> [email protected]
> http://barracudamvc.org/lists/listinfo/barracuda