>
> * Should optional components be "opt in", "out out", or a mix?
> Currently it's a mix, and that's confusing for people. I think we
> should make them all "opt in".

Agreed they should all be opt in by default.  I think active developer are
quite adept at flipping the appropriate CMake flags.


> * Do we want to bring the out-of-the-box core build down to zero
> dependencies, including not depending on boost::filesystem and
> possibly checking the compiled Flatbuffers files.

 While it may be
> slightly more maintenance work, I think the optics of a
> "dependency-free" core build would be beneficial and help the project
> marketing-wise.

I'm -.5 on checking in generated artifacts but this is mostly stylistic.
In the case of flatbuffers it seems like we might be able to get-away with
vendoring since it should mostly be headers only.

I would prefer to try come up with more granular components and be
very conservative on what is "core".  I think it should be possible have a
zero dependency build if only MemoryPool, Buffers, Arrays and ArrayBuilders
in a core package [1].  This combined with discussion Antoine started on an
ABI compatible C-layer would make basic inter-op within a process
reasonable.  Moving up the stack to IPC and files, there is probably a way
to package headers separately from implementations.  This would allow other
projects wishing to integrate with Arrow to bring their own implementations
without the baggage of boost::filesystem. Would this leave anything besides
"flatbuffers" as a hard dependency to support IPC?

Thanks,
Micah


[1] It probably makes sense to go even further and separate out MemoryPool
and Buffer, so we can break the circular relationship between parquet and
arrow.

On Wed, Sep 18, 2019 at 8:03 AM Wes McKinney <wesmck...@gmail.com> wrote:

> To be clear I think we should make these changes right after 0.15.0 is
> released so we aren't playing whackamole with our packaging scripts.
> I'm happy to take the lead on the work...
>
> On Wed, Sep 18, 2019 at 9:54 AM Antoine Pitrou <solip...@pitrou.net>
> wrote:
> >
> > On Wed, 18 Sep 2019 09:46:54 -0500
> > Wes McKinney <wesmck...@gmail.com> wrote:
> > > I think these are both interesting areas to explore further. I'd like
> > > to focus on the couple of immediate items I think we should address
> > >
> > > * Should optional components be "opt in", "out out", or a mix?
> > > Currently it's a mix, and that's confusing for people. I think we
> > > should make them all "opt in".
> > > * Do we want to bring the out-of-the-box core build down to zero
> > > dependencies, including not depending on boost::filesystem and
> > > possibly checking the compiled Flatbuffers files. While it may be
> > > slightly more maintenance work, I think the optics of a
> > > "dependency-free" core build would be beneficial and help the project
> > > marketing-wise.
> > >
> > > Both of these issues must be addressed whether we undertake a Bazel
> > > implementation or some other refactor of the C++ build system.
> >
> > I think checking in the Flatbuffers files (and also Protobuf and Thrift
> > where applicable :-)) would be fine.
> >
> > As for boost::filesystem, getting rid of it wouldn't be a huge task.
> > Still worth deciding whether we want to prioritize development time for
> > it, because it's not entirely trivial either.
> >
> > Regards
> >
> > Antoine.
> >
> >
>

Reply via email to