breezy-electrician-41537
05/17/2025, 8:19 AMroot
--projA
|--pyproject.toml
|--src
|--tests
--projB
|--pyproject.toml
|--src
|--tests
--projC
|--pyproject.toml
|--src
|--tests
pants.toml
How would we maintain the independent environments for the three projects? Can we specify a conda env constraint for each project? Should we ditch conda for envs? We're also considering adopting uv over poetry at the same time. Would that change things?gorgeous-winter-99296
05/17/2025, 10:04 AMgorgeous-winter-99296
05/17/2025, 10:07 AM.venv equivalent directory unless you force pex to do it that way.breezy-electrician-41537
05/17/2025, 11:30 PMgorgeous-winter-99296
05/18/2025, 9:41 AMvenv with pants export, and enable that in your editor using the appropriate method. So at edit time you do see all deps, but at "exec" time you get a reduced set.breezy-electrician-41537
05/18/2025, 9:42 AMgorgeous-winter-99296
05/18/2025, 10:27 AMgorgeous-winter-99296
05/18/2025, 10:29 AMrequests==2.11 and requests<2.10. There's no version of requests that can satisfy both requirements at the same timebreezy-electrician-41537
05/18/2025, 10:41 AMgorgeous-winter-99296
05/18/2025, 10:45 AMbreezy-electrician-41537
05/18/2025, 10:48 AMgorgeous-winter-99296
05/18/2025, 10:52 AMbreezy-electrician-41537
05/18/2025, 11:20 AMbreezy-electrician-41537
05/18/2025, 11:21 AMhappy-kitchen-89482
05/18/2025, 2:58 PMbusy-ram-14533
05/19/2025, 5:42 PMsubprojects/
├── projectAAA/
│ ├── 3rdparty/
│ │ └── python/
│ │ └── PANTSBUILD
│ └── src/
│ ├── python/
│ │ ├── apps/
things we're finding
(1) it's annoying that teams need to always set the resolve= field on their targets, but it's not the worst thing
(2) the really hard things is to make shared libraries that work across multiple subprojects that have their own resolves. I'd like to make some basic pyspark library that is shared by all PySpark apps, and we're trying to figure out how to automate this documented direction:
> If a first-party target is compatible with multiple resolves, e.g., shared utility code, you can use the parametrize mechanism with the resolve= field.
anyways if you have any learnings along the way, I'd love to hear them. It sounds like we're trying to solve the same problemsbreezy-electrician-41537
05/19/2025, 6:11 PMgorgeous-winter-99296
05/19/2025, 6:17 PMhappy-kitchen-89482
05/19/2025, 10:19 PMhappy-kitchen-89482
05/19/2025, 10:20 PMhappy-kitchen-89482
05/19/2025, 10:20 PM