Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9D326200BF3 for ; Thu, 5 Jan 2017 20:57:57 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 9BA9A160B33; Thu, 5 Jan 2017 19:57:57 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BF30E160B26 for ; Thu, 5 Jan 2017 20:57:56 +0100 (CET) Received: (qmail 37939 invoked by uid 500); 5 Jan 2017 19:57:56 -0000 Mailing-List: contact dev-help@quickstep.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@quickstep.incubator.apache.org Delivered-To: mailing list dev@quickstep.incubator.apache.org Received: (qmail 37928 invoked by uid 99); 5 Jan 2017 19:57:55 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Jan 2017 19:57:55 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 5779A1A7AE4 for ; Thu, 5 Jan 2017 19:57:55 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -2.999 X-Spam-Level: X-Spam-Status: No, score=-2.999 tagged_above=-999 required=6.31 tests=[RP_MATCHES_RCVD=-2.999, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 30hh6926UuBQ for ; Thu, 5 Jan 2017 19:57:53 +0000 (UTC) Received: from smtpout2.cs.wisc.edu (smtpout.cs.wisc.edu [128.105.6.53]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id F14E45F3FF for ; Thu, 5 Jan 2017 19:57:52 +0000 (UTC) Received: from [128.105.14.48] (shuffle.cs.wisc.edu [128.105.14.48]) by flint.cs.wisc.edu (8.14.7/8.14.4) with ESMTP id v05JvpMt008267 for ; Thu, 5 Jan 2017 13:57:51 -0600 Reply-To: harshad@cs.wisc.edu Subject: Re: release: third_party/ References: <5459b8a7-bcab-d9c8-1781-1b8d9d40cf3a@cs.wisc.edu> <89C885F3-31D6-4B27-8F15-B1D14C7DAFB1@apache.org> To: dev@quickstep.incubator.apache.org From: Harshad Deshmukh Message-ID: Date: Thu, 5 Jan 2017 13:57:50 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <89C885F3-31D6-4B27-8F15-B1D14C7DAFB1@apache.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit archived-at: Thu, 05 Jan 2017 19:57:57 -0000 > Also, since you’re relying on the latest googletest, protobuf and re2 your release will work today and will break at some point in the future. That’s not OK. A release can depend only on releases, not snapshots or live repositories. Thanks for pointing that. It is possible to fetch a particular release (based on its commit ID) of the submodule. We will add the release commit ID to the git submodule file. On 01/05/2017 01:44 PM, Julian Hyde wrote: > Git sub-modules are useful, I agree. But for a source release, the goal is that someone should be able to download the source tar-ball and go: > > $ curl -O …/apache-quickstep-x.x-incubating.tar.gz > $ tar xvfz apache-quickstep-x.x-incubating.tar.gz > $ cd apache-quickstep-x.x-incubating/build > $ ./download-thirdparty.sh > $ cmake etc. > > I tried to find other Apache projects that use git submodules and see what they do for source releases. Not much luck. Maybe someone else can find something. > > Also, since you’re relying on the latest googletest, protobuf and re2 your release will work today and will break at some point in the future. That’s not OK. A release can depend only on releases, not snapshots or live repositories. > > Julian > > > >> On Jan 5, 2017, at 11:03 AM, Harshad Deshmukh wrote: >> >> Thanks for the review Julian. >> >> For some of the third party libraries used in Quickstep (e.g. googletest, protobuf and re2) we use the submodules feature of git. For such libraries, the developer has to initialize the submodule only once, which pulls code from the third party repo to the Quickstep third party directory. >> >> I don't know of a centralized repo for C++ projects. Does the git submodule method sound similar to the maven central approach you mentioned? >> >> On 01/05/2017 12:43 PM, Julian Hyde wrote: >>> I took a quick look at third_party and there don’t seem to be any binaries in there. That’s good. You definitely cannot include binaries in a source release. >>> >>> The more you can remove from third_party, the better. It doesn’t have to be done this release, but the less IP there is to review, the easier for everyone. >>> >>> Consider pulling from an external source the first time the developer builds in a sandbox, then apply patches. The patches will be the only thing checked in to quickstep. (My expertise is in Java projects, which these days get their dependencies from a Maven repo such as Maven central; I don’t know whether there is an equivalent place to pull C and C++ source code. Might be worth a review of what other C and C++ based Apache projects do for their third-party dependencies.) >>> >>> Julian >>> >>> >>>> On Jan 5, 2017, at 9:43 AM, Marc Spehlmann wrote: >>>> >>>> That seems to be the repo with the LLVM code for implementing IWYU. I think >>>> what we have in our repo is scripts ontop of that library. I'm wondering >>>> where the scripts came from. >>>> >>>> Thanks, >>>> Marc >>>> >>>> On Thu, Jan 5, 2017 at 10:50 AM, Harshad Deshmukh >>>> wrote: >>>> >>>>> Hi Marc, >>>>> >>>>> How about this one for IWYU? >>>>> >>>>> https://github.com/include-what-you-use/include-what-you-use >>>>> /blob/master/LICENSE.TXT >>>>> >>>>> >>>>> On 01/05/2017 10:43 AM, Marc Spehlmann wrote: >>>>> >>>>>> I double checked the libraries in thirdy_party. They adhere to Apache's >>>>>> 3rd >>>>>> party requirement as they are all apache 2 or opensourced by Google. The >>>>>> only issue I saw was that IWYU has no documentation. Anyone know of its >>>>>> source? >>>>>> >>>>>> Library >>>>>> >>>>>> Ver >>>>>> >>>>>> License >>>>>> >>>>>> Notes >>>>>> >>>>>> benchmark >>>>>> >>>>>> Apache 2.0 >>>>>> >>>>>> cpplint >>>>>> >>>>>> Google >>>>>> >>>>>> Header states that reuse is unconditional so long as the copyright header >>>>>> stays intact. >>>>>> >>>>>> Farmhash >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as COPYING file is preserved. See COPYING >>>>>> >>>>>> gflags >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as COPYING file is preserved. See COPYING >>>>>> >>>>>> glog >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as COPYING file is preserved. See COPYING >>>>>> >>>>>> gtest >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as COPYING file is preserved. See COPYING in >>>>>> subprojects. >>>>>> >>>>>> gperftools >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as COPYING file is preserved. >>>>>> >>>>>> iwyu >>>>>> >>>>>> >>>>>> No license present >>>>>> >>>>>> linenoise >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as LICENSE file is preserved. >>>>>> >>>>>> protobuf >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as LICENSE file is preserved. >>>>>> >>>>>> RE2 >>>>>> >>>>>> Google >>>>>> >>>>>> No restrictions so long as LICENSE file is preserved. >>>>>> >>>>>> tmb >>>>>> >>>>>> Apache 2.0 >>>>>> >>>>>> README: TMB is part of the Quickstep project (copyright Pivotal Software, >>>>>> Inc.) and is distributed under the same license terms. >>>>>> >>>>>> >>>>> -- >>>>> Thanks, >>>>> Harshad >>>>> >>>>> >> -- >> Thanks, >> Harshad >> -- Thanks, Harshad