Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 41280 invoked from network); 25 Apr 2005 17:28:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 25 Apr 2005 17:28:54 -0000 Received: (qmail 56424 invoked by uid 500); 25 Apr 2005 17:29:19 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 56384 invoked by uid 500); 25 Apr 2005 17:29:19 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 56364 invoked by uid 99); 25 Apr 2005 17:29:19 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from Unknown (HELO mgd.gluecode.com) (64.14.202.141) by apache.org (qpsmtpd/0.28) with ESMTP; Mon, 25 Apr 2005 10:29:19 -0700 Received: from [192.168.1.5] (dsl093-038-137.pdx1.dsl.speakeasy.net [66.93.38.137]) (authenticated bits=0) by mgd.gluecode.com (8.12.10/8.12.10) with ESMTP id j3PHSWCW012209 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 25 Apr 2005 10:28:33 -0700 Mime-Version: 1.0 (Apple Message framework v619.2) In-Reply-To: References: Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: David Jencks Subject: Re: nightly builds -- another perspective Date: Mon, 25 Apr 2005 10:28:44 -0700 To: dev@geronimo.apache.org X-Mailer: Apple Mail (2.619.2) X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N I'd like to attempt to clarify one of my main points. In my opinion we do not have an acceptable way to build geronimo, so we should not attempt to produce automated nightly builds. Apparently there are various packaging steps that should be gone through after a successful build, but IMO we do not yet have a way to discover if geronimo builds. I explain below why I think we do not have an acceptable build procedure. The "new build system" I added is a partial fix: if all steps succeed it will have built geronimo + tranqls + openejb in an acceptable order, but it does not stop if a step fails. I imagine someone who knows a little bit of shell could fix the script in 5 or 10 minutes. Chatting with Brett revealed that maven 2 has a simple way of dealing with this entire problem directly in maven. thanks david jencks On Apr 21, 2005, at 10:10 AM, David Jencks wrote: > I apologize for not contributing to this discussion earlier. > > I don't have a clear idea of the goals of a nightly build: > > From the users perspective, > To be able to run geronimo, all you need is the assembly jar. > > To be able to build geronimo by itself, you need there to be up to > date tranql and openejb jars in a remote repository. > > From this point of view, running maven multiproject:deploy in several > places is sufficient. > > If people want some other artifact as a result of a nightly build, I > would like to know what it is and what use it provides. > > > From the developers perspective, I believe one goal is to verify that > the "entire project" builds "cleanly" with "no inappropriate > dependencies" > > entire project == geronimo, tranql, tranql-connector, openejb > > cleanly == offline, with no artifacts that will be built in the local > repository, and attempts to build each module/project only once. > > no inappropriate dependencies == modules/(maven) projects can be built > in groups from the same project, in order. > > Let me expand on that. Currently the only way to build everything > once is to use maven m:rebuild. This takes geronimo, tranql, > tranql-connector, and openejb, puts all the subprojects in a pile, and > lets maven figure out an order to build them in. As we have > discovered, this lets people do things like make a geronimo module > depend on an openejb module. Since openejb depends on geronimo, this > is an unacceptable circular dependency. To avoid this kind of > circular dependency, there needs to be a division of each project into > sets of modules, where these modules can be cleanly built in order. > Here is an example of such sets: > > geronimo-specs > tranql > tranql-connector > maven xmlbeans plugin > geronimo-modules without assembly > geronimo plugins except xmlbeans > openejb core and builder > geronimo applications > geronimo assembly > openejb assembly > openejb itests > > It is extremely important to make sure a build in this order can > proceed offline with a maven repo that contains no artifacts generated > by the build. Otherwise it is all to easy to introduce dependencies > on artifacts that are no longer being generated. > > Since I've been whining about these requirements for several months > and no one else has done anything about them I added a simple way to > build in this fashion on systems with bash. After checking out the > additional projects in the locations expected by the m: build > (tranql/tranql, tranql/connector, and openejb), run ./buildall.sh > > So far I've checked that the build does work. Now that I've checked > it in I will see if the deploy step works, on a system without my > local modifications. > > Many thanks, > david jencks >