does pants v2 have any notion of how to handle non...
# general
f
does pants v2 have any notion of how to handle non-python dependencies (like "system dependencies" needed for things like opencv, etc)?
h
Like, resource files e.g. JSON? Or you more mean things like system binaries and header files?
f
system binaries and headers
i'm guessing no
i don't even think there's a convention for how a python sdist or wheel can express what it needs from the system in that regard
....which is probably why conda exists
h
We do not through the normal interface like BUILD files and
pants.toml
But, the Plugin API does have support for thinks like finding pre-installed binaries and erroring if not found. Could you explain a little more about your use case, please? I’m wondering if we could use the Plugin API to achieve what you’re looking for.
f
have you ever used opencv? or pyqt? basically anything written in C++ that has python bindings distributed seperately...it can be a real mess to get things to work because the system bindings vary based on the particular distro and version of whatever you're using
it's hard for me to summarize the full use case...i'll have to get back to you on that
h
I’ve used OpenCV for school projects, but not in production. Installing TF was also a pain We’d be really interested in improving the workflow here, in a way that you don’t have to write a plugin but it’s more built in. Would you be interested in writing a GitHub issue sharing a little context and what you’d like Pants to do? It’s okay to not have an actual design, of course. More a problem statement, how you work around it today, and some requirements you’d like included
Ack on it being hard to summarize. Totally okay if even for now it’s only a placeholder issue. GitHub is what we use for planning, so having it on there will help us to prioritize work on it
f
yeah i'll try to write that up into a GitHub issue
thing is...this was pretty easy to do when I got to mandate what OS my other devs were using...I just played around with
apt-get
packages until i found a working set, and then added that to the readme
but i'm working in a multi-OS dev shop now, and I don't want to have to do that for 3 linux distro-versions, macos and WSL each time
i'm pretty sure this is the problem the conda ecosystem aims to solve, but i've always ignored it up until now; i'm going to do a bit of investigation into this, and i'll try to write up a good summary on GH to help you all understand the use cases and needs better 🙂
h
Definitely agreed that this is a good candidate for Pants to support first class. That’s a major motivation for a Build tool, that you no longer need to worry about things like how to install tools in a certain environment That’d be great, thank you! It’ll be worth us considering even wrapping Conda. A big theme of the v2 engine is that we’re more of an orchestrator around the tools you already use; don’t reinvent the wheel
👍 1
w
another left field thought we’ve had on the multi-platform topic is that using remote execution, someone could edit on a OSX laptop, but build and test remotely on linux. it’s a few months out, but in the cards.
👍 1
(*cross-platform remoting is a few months out: remoting is already here)
f
would it be useful to have Pants discover/bind to
pkgconfig
output for system libaries?
since I recall many C/C++ libraries publish their CFLAGS/LDFLAGS that way
f
it's worth investigating at least