quickstep-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hakan Memisoglu <hakanmemiso...@apache.org>
Subject Re: release: third_party/
Date Mon, 09 Jan 2017 18:00:31 GMT
Hi Marc,

Here are two Apache projects using C++:

Impala: https://github.com/cloudera/Impala <https://github.com/cloudera/Impala>

Kudu: https://github.com/cloudera/kudu <https://github.com/cloudera/kudu>

Kudu has a download script for dependencies in third_party folder.
It seems to be a good example for our case.

> On Jan 8, 2017, at 2:17 PM, Marc Spehlmann <spehl.apache@gmail.com> wrote:
> 
> Regarding the IWYU script. It sounds safe then. If anything, maybe it
> belongs in another folder. ("tools/" ?)
> 
> On Thu, Jan 5, 2017 at 3:07 PM, Julian Hyde <jhyde@apache.org> wrote:
> 
>> Better still, make a release depend only releases. Snapshots and even
>> commit IDs can disappear.
>> 
>> And consider the state of the IP. In Apache and many other open source
>> projects, the IP is only guaranteed "clean" when it has been formally
>> released.
>> 
>> Sorry this is all painful. But conversely, this is the value-add of
>> making a release.
>> 
>> On Thu, Jan 5, 2017 at 11:57 AM, Harshad Deshmukh <harshad@cs.wisc.edu>
>> wrote:
>>>> 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 <harshad@cs.wisc.edu>
>>>>> 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 <spehl.apache@gmail.com>
>>>>>>> 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 <
>> harshad@cs.wisc.edu>
>>>>>>> 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
>>> 
>> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message