Return-Path: Delivered-To: apmail-cassandra-dev-archive@www.apache.org Received: (qmail 24161 invoked from network); 18 Mar 2010 06:01:29 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Mar 2010 06:01:29 -0000 Received: (qmail 36171 invoked by uid 500); 18 Mar 2010 06:01:29 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 36066 invoked by uid 500); 18 Mar 2010 06:01:28 -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 36058 invoked by uid 99); 18 Mar 2010 06:01:28 -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 06:01:28 +0000 X-ASF-Spam-Status: No, hits=0.7 required=10.0 tests=RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.212.44] (HELO mail-vw0-f44.google.com) (209.85.212.44) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Mar 2010 06:01:18 +0000 Received: by vws5 with SMTP id 5so205454vws.31 for ; Wed, 17 Mar 2010 23:00:57 -0700 (PDT) Received: by 10.220.125.104 with SMTP id x40mr426316vcr.153.1268892057630; Wed, 17 Mar 2010 23:00:57 -0700 (PDT) Received: from iholsman.local (h-64-236-138-3.aoltw.net [64.236.138.3]) by mx.google.com with ESMTPS id 34sm1656316vws.8.2010.03.17.23.00.53 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 17 Mar 2010 23:00:57 -0700 (PDT) Message-ID: <4BA1C192.60801@holsman.net> Date: Thu, 18 Mar 2010 17:00:50 +1100 From: Ian Holsman User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3 MIME-Version: 1.0 To: dev@cassandra.apache.org Subject: Re: Binary release artifacts (or What a User Wants) References: <1268860877.20989.137.camel@erebus.lan> In-Reply-To: <1268860877.20989.137.camel@erebus.lan> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On 3/18/10 8:21 AM, 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. > my opinion is to keep ivy. from what you said it is relatively painless for a customer to get the 3rd party jars via ivy-retrieve on their build machine. and I really hope people aren't just grabbing the jar file and deploying it in production ;-0 I don't see any negatives, except for the crazy developer who downloads the jar and gets on a plane for 5 hours, and kicks himself when he realizes he can't code. > 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? > > > [1]: https://issues.apache.org/jira/browse/CASSANDRA-850 > >