https://pantsbuild.org/ logo
h

hundreds-father-404

05/03/2022, 11:42 PM
Python 3rd party deps page rewritten to talk about Poetry vs Pex lockfiles, along w/
parametrize
in the context of multiple resolves. Feedback/questions welcomed! https://www.pantsbuild.org/docs/python-third-party-dependencies#lockfiles
🆒 1
❤️ 3
@witty-crayon-22786 @happy-kitchen-89482 @busy-vase-39202 I have not yet added a good tutorial on how to enable multiple resolves. Right now it's very "guide"-like, not "tutorial"-like. Everything I'm reading about docs says it is better not to mix those two in the same page So, I think what we have now is good as a starting point. But it should link to a dedicated tutorial page. Idk where that should live? Blog doesn't seem super discoverable
b

busy-vase-39202

05/03/2022, 11:55 PM
Yeah, not the blog. This may be a question that has a more natural answer from the docs overhaul. e.g. a dedicated Tutorials section or something. Gordon's Django tutorial and SJ's plugins tutorial likewise would make sense there.
đź‘Ť 1
That said, nothing wrong with starting it as a blog post then later porting it to the docs. So the prospect of docs overhaul needn't be a blocker to putting a tutorial out now.
h

hundreds-father-404

05/03/2022, 11:58 PM
Pants docs are tricky because often you don't need much information, but when you do, you do. I suspect efficient use of links will be helpful For example, I've been thinking about what an on boarding guide will look like. Often you don't even really have to worry about source routes if you use the default. But when you need it, you need it. So I think the tutorial will make liberal use of linking to more detailed pages when you need it
w

witty-crayon-22786

05/06/2022, 12:00 AM
looks great! my largest bits of feedback are: 1. maybe move the whole Multiple Lockfiles section down to Advanced Usage? 2. rather than updating all of the thirdparty targets you want in the resolve first, you’d probably: a. start by updating whichever requirement(s) you know need to be different in the new resolve b. then update the firstparty targets that you know need the different requirements. c. then, iterate on getting the firstparty targets building… which will involve adding both firstparty and thirdparty targets to the resolve ---- other minor feedback:
If you want a different location, change [python].resolves like this:
would use the TOML table syntax here the same way you do in the “multiple resolves” section.
If you use Pex-generated lockfiles
at this point on the page, there hasn’t been an explanation of what a PEX lockfile is: should link to the setting probably.
While it’s often desirable to have a single lockfile for the whole project
would differentiate between a project and a repository: a monorepo usually has multiple projects/binaries/apps in one repository.
❤️ 1
2. rather than updating all of the thirdparty targets you want in the resolve first, you’d probably:
…hm. this could also be accomplished by running
./pants dependencies --transitive $target_which_needs_different_resolve