hundreds-father-404
08/03/2022, 3:14 PMhundreds-father-404
08/03/2022, 3:15 PMancient-vegetable-10556
08/03/2022, 3:16 PMhundreds-father-404
08/03/2022, 3:16 PMhundreds-father-404
08/03/2022, 3:16 PMwe’ll still need to specify which Python version that will run under the hoodRight, but why release under multiple Python versions? If we only release with Python 3.10, then we get to use all its new benefit
ancient-vegetable-10556
08/03/2022, 3:18 PMancient-vegetable-10556
08/03/2022, 3:19 PMancient-vegetable-10556
08/03/2022, 3:20 PMbitter-ability-32190
08/03/2022, 3:47 PMancient-vegetable-10556
08/03/2022, 3:47 PMbitter-ability-32190
08/03/2022, 3:48 PMancient-vegetable-10556
08/03/2022, 3:48 PM./pants
script would fetch and keep updated for you). So we can either switch entirely to that; we can provide that as an option alongside the “use the Python Wheel” option we currently provide; or we can decide that PyO…r is a bad ideahundreds-father-404
08/03/2022, 3:48 PMancient-vegetable-10556
08/03/2022, 3:49 PMhundreds-father-404
08/03/2022, 3:50 PMwe can provide that as an option alongside the “use the Python Wheel” option we currently provideWe may need the wheel for the sake of plugin authors, so that things like MyPy works. But, we can decide to only release for one Python version We have a lot of incentive for that -- we consume a lot of resources to release for 3 Python versions x 2.5 OSes. CI resources, PyPI, etc
wide-midnight-78598
08/03/2022, 3:56 PMhundreds-father-404
08/03/2022, 3:58 PMDevelop in one version, release in another?What do you mean? Release your plugin, or release your own code? -- The key insight from https://pantsbuild.slack.com/archives/C0D7TNJHL/p1659539778291099?thread_ts=1659539697.973779&cid=C0D7TNJHL is that the Python version you use for plugin development can be 100% decoupled from what you use for your own code. Only now possible thanks to multiple resolves
wide-midnight-78598
08/03/2022, 4:03 PMWhat if we said a Pants plugin could only be Python 3.10I'm not sure what the implications would be. Mainline repo plugins are one thing - but lets say I have 5 custom, private plugins, would I then be required to update those plugins ensure they work only on (e.g.) 3.10? Doesnt' affect me, because I only use the most recent 1-2 Pythons, so 🤷
hundreds-father-404
08/03/2022, 4:19 PMwide-midnight-78598
08/03/2022, 4:52 PMhundreds-father-404
08/03/2022, 4:53 PMwitty-crayon-22786
08/03/2022, 4:53 PMwide-midnight-78598
08/03/2022, 4:58 PMAs someone who writes lots of plugins, @wide-midnight-78598 what are you thoughts on us expecting you to use a particular Python version for plugins?So, (un)fortunately, I literally don't care... ... so long as it's a recent-ish Python (3.9, 3.10, 3.11) - I don't want to be limited, but I keep my code on recent Pythons and my test coverage covers any potential migration concerns (and Python is pretty solid for compatibility). However, for companies with their own in-repo plugins, I don't know what the appetite is for upgrading or testing. Since this is dev tooling though and not production code, I think putting these kind of constraints on is perfectly reasonable. Production code is where these kinda changes/limitations can really hurt.
wide-midnight-78598
08/03/2022, 5:00 PMhundreds-father-404
08/03/2022, 5:01 PMthere is one other consideration here which was discussed in the context of shipping only a PEX (which is clearly not going to be the path given the pyoxidizer progress): plugin code also needs an actual distribution to develop against.Ack, that's specifically what I'm discussing. I think likely we want to distribute a) one binary for normal users, and b) one wheel for plugin authors. Both those only support the newest stable Python version
wide-midnight-78598
08/03/2022, 5:04 PMhundreds-father-404
08/03/2022, 5:08 PMbitter-ability-32190
08/03/2022, 6:18 PMhundreds-father-404
08/03/2022, 7:36 PMbitter-ability-32190
08/03/2022, 7:40 PMhundreds-father-404
08/03/2022, 7:42 PM