Thank you <@U01GFRYQ1TR>. Hello all, I'm Raph, and...
# welcome
Thank you @busy-vase-39202. Hello all, I'm Raph, and I lead the engineering team at Nory - we make software for restaurants. I'm experimenting with Pants and a monorepo for our various (mostly) Python services. I've found Pants' native support for python and the ability to decouple, selectively build and package parts of the codebase to be very powerful. The main challenge I've hit with Pants so far is related to cross-building: • our dev machines are macOS ARM • our CI (GH Actions) is linux x86_64 • our production environment is linux ARM (AWS Graviton) Normally I'd build the projects directly into their docker image, which then works well in CI and production thanks to buildx. But since with Pants, PEX files get built before the docker images, and Pants does not seem to support docker buildx, I haven't found a good solution for my team yet. Would love to speak to anyone who has a similar setup and has found a good recipe - I'd really like pants to work out for us.
👋 3
We are similar, with arm macOS dev machines and Linux x86 CI (although our deploys are currently x86 Lambda and Fargate). We cross build PEXes by using “complete platforms” JSON files, which summarise the target Python environment and so allow selecting the right bdists/wheels even when not executing within that environment. (This does require all third party dependencies to be either pure Python or available as wheels, which has worked fine in practice for us, but won’t always.) I’ll dig up some of the threads with more details…
(Also relevant: and, if you happen to be building zip lambda packages (rather than docker images), I can dig up how we’re doing that, too. The new environment feature Carina links to can eliminate the “cross”, although comes with OS and/or architecture virtualisation perf penalty for your specific cases.)
@broad-processor-92400 how would you feel about writing a documentation page and/or blog post with the details of how you get complete platforms working? it seems to come up over and over
👍 1
and is non-obvious
It’d be good, but I don’t think I have time to do a proper set of docs justice at the moment (very crunched), however I might quickly plop the various bits of slack content into a Discussion post to have an easier place to link to… it might be a few days before I get a chance though
👍 2
this is helpful to read. I'm stuck in the same place. mac arm dev machines, some devs on x86 linux, and a k8s cluster deploying x86 python images (but we would like to experiment with graviton as well)
Thanks @broad-processor-92400!
I splatted a whole lot of notes into (it's in the "development" topic because none of the others seemed quite right)
❤️ 2