Also, IWYU script was written by Shoban On Mon, Jan 9, 2017 at 3:39 PM, Marc Spehlmann <spehl.apa...@gmail.com> wrote:
> Thanks for finding these! Impala is more or less doing what we're doing, > except it doesn't use submodules. One thing is that if you download their > release (http://impala.apache.org/downloads.html) it's not clear where > all the thirdparty dependencies went. > > On Mon, Jan 9, 2017 at 12:00 PM, Hakan Memisoglu < > hakanmemiso...@apache.org> wrote: > >> Hi Marc, >> >> Here are two Apache projects using C++: >> >> Impala: https://github.com/cloudera/Impala <https://github.com/cloudera/I >> mpala> >> >> 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.apa...@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 <jh...@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 <hars...@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 <hars...@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.apa...@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 < >> >> hars...@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 >> >>> >> >> >> >> >