Return-Path: Delivered-To: apmail-cassandra-dev-archive@www.apache.org Received: (qmail 6745 invoked from network); 18 Mar 2010 04:24:42 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Mar 2010 04:24:42 -0000 Received: (qmail 89699 invoked by uid 500); 18 Mar 2010 04:24:42 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 89543 invoked by uid 500); 18 Mar 2010 04:24:41 -0000 Mailing-List: contact dev-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list dev@cassandra.apache.org Received: (qmail 89534 invoked by uid 99); 18 Mar 2010 04:24:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Mar 2010 04:24:41 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of paul@querna.org designates 209.85.160.172 as permitted sender) Received: from [209.85.160.172] (HELO mail-gy0-f172.google.com) (209.85.160.172) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Mar 2010 04:24:33 +0000 Received: by gyh4 with SMTP id 4so833547gyh.31 for ; Wed, 17 Mar 2010 21:24:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.91.25.14 with SMTP id c14mr1586725agj.9.1268886251326; Wed, 17 Mar 2010 21:24:11 -0700 (PDT) In-Reply-To: <1268860877.20989.137.camel@erebus.lan> References: <1268860877.20989.137.camel@erebus.lan> Date: Wed, 17 Mar 2010 23:24:11 -0500 Message-ID: <4239a4321003172124p2c194697o6dbbe6b4ae6a66aa@mail.gmail.com> Subject: Re: Binary release artifacts (or What a User Wants) From: Paul Querna To: dev@cassandra.apache.org Content-Type: text/plain; charset=UTF-8 X-Virus-Checked: Checked by ClamAV on apache.org On Wed, Mar 17, 2010 at 4:21 PM, Eric Evans wrote: > > During the 0.6 cycle Ivy was introduced to manage (most of) our > dependencies, and where possible, jars were removed from svn and no > longer included in binary release artifacts. Recently though this change > has been called into question, with some discussion taking place in > CASSANDRA-850[1]. > > The 0.6 release is upon us, but if consensus will be to rollback this > change and resume the practice of embedding third-party jars, I strongly > feel we should do that now. I don't want to see 0.6 as a one-off that > we're forced to explain over and over. > > BACKGROUND > > We've seen a steadily increasing list of dependencies, but it really > exploded between 0.5 and 0.6 (think 2x). This was causing a number of > problems: > > 1. First and foremost, we were doing a less than perfect job of > maintaining licensing and attribution. The exact requirements here > depend on a number of variables and are fraught with subtleties. Failure > to get this right creates legal risks that the ASF finds unacceptable so > doing it poorly is really not an option. > > Ivy "fixed" this problem by side-stepping the issue entirely. If we > aren't shipping it, then there is simply no need to maintain this > documentation. > > 2. Many of these dependencies have dependencies in turn (and so on). > Sometimes these dependencies (or the dependencies of the dependencies, > etc) share dependencies with other dependencies, but with different > versions. Sound confusing? It can be, yes, and the complexity seems to > grow exponentially to the number of jars we're pulling in. > > Ivy fixed this problem because this is precisely what Ivy does, it > resolves a graph of your project dependencies based on a specification > (ivy.xml), and retrieves them. > > Or to put all of this more simply... tedious, time consuming, and error > prone tasks were automated away. This however did not come without a > price, and the costs that I see in order of importance are: > > 1. Downloading arbitrary code off the 'net, (and without a good trust > path). > > 2. Requiring networking connectivity at install time. > > 3. Requiring ant to be present at install time. > > 4. One extra step in the install process, (i.e. invoking `ant > ivy-retrieve') > > I know a lot of people wouldn't consider (1) and (2) to be real issues, > (just look at how popular Maven is), so YMMV. I personally don't think > (3) and (4) are that onerous but I can't disagree with the > weird-to-require-a-build-tool argument, or that one more step in Getting > Started is still one more step. > > So to me, this boils down to deciding whether the cure is worse than the > disease. > > Thoughts? Lack of java-devness showing: Can't the -bin tarball just include the 'ivy-retrieve' step pre-done? At least then everyone will test the same -bin, significantly reducing the lack of trusted path in problems 1 & 2.