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/
> 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.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
> >>>
> >>
>
>

Reply via email to