https://pantsbuild.org/ logo
#development
Title
# development
h

happy-kitchen-89482

04/01/2023, 3:28 PM
Proposal: in 2.17.x we drop support for running pants itself on Python 3.7 and 3.8, and only support 3.9. Discussion in thread.
šŸš€ 3
šŸ’Æ 4
Why? Because scie-pants (which, reminder, embeds 3.9) seems to be a big success, and people have switched to it with basically no disruption.
And for repos that can't use scie-pants for whatever reason, the remedy is to require an externally installed 3.9, which is only slightly more stringent than the current requirement in that case to have an externally installed 3.7, 3.8 or 3.9
The major upside: building and publishing fewer wheels
Another upside: ability to use 3.9 features in Pants rule code
Thoughts? Pro? Con?
If we get a consensus here, I can start a GH discussion to document the decision process, and let the wider community weigh in
e

enough-analyst-54434

04/01/2023, 3:36 PM
I think this amounts to dropping support for
./pants
. If I'm locked down org (bigger ones) on an old distro, installing 3.9, which seems old to us, is abnormal and requires extra hoops. Basically it requires installing from a source tarball.
h

hundreds-father-404

04/01/2023, 3:39 PM
+1 from me. 3.7 is EOL in June. Simpler build. Can use 3.8 and 3.9 improvements, including ā€¢ assignment expressions ā€¢ f strings using
var=
ā€¢
functools.lru_cache
to replace some of our memoized decorators ā€¢ dictionary merge syntax With plugin authors, they should be okay to use 3.9 to run Pants on their own code thanks to multiple resolves. We have several examples of that already being done in the wild, where plugin code has different ICs than their normal code
h

happy-kitchen-89482

04/01/2023, 3:39 PM
Do we know of such users? That would be a good thing to solicit info on from the wide community.
e

enough-analyst-54434

04/01/2023, 3:39 PM
Almost positive - yes. EOLs having nothing to do with anything - we still have 2.7 corporate users, etc.
And I want to argue again, our dev convenience is last place.
It seems to make more sense to me to simply transition Pants to scies and skip this mucking about and publish 0 wheels and use 3.11.
So far no one has joined in except @curved-television-6568 though to help out with that side of the world.
h

hundreds-father-404

04/01/2023, 3:42 PM
It seems to make more sense to me to simply transition Pants to scies and skip this mucking about and publish 0 wheels and use 3.11.
I didn't realize that's a possibility? (Pardon, I've been away from Pants for a bit). I thought it would mess up plugin authors who want to install Pants as a library to e.g. run MyPy and tests on their plugin code?
e

enough-analyst-54434

04/01/2023, 3:43 PM
I think everyone is handwaving.
I have not put in the effort to suss the details at any rate.
Ah, @hundreds-father-404 you're mistaking publishing a wheel with having a local one.
You can have a local one that is never published to PyPI
PEX_TOOLS=1 the.pex repository extract
At any rate - all handwaves. Actual effort is needed.
h

hundreds-father-404

04/01/2023, 3:47 PM
Oh, woah. So something like
pants_requirements
target could get the Scie, then extract it into a local wheel understood by PyPI?
e

enough-analyst-54434

04/01/2023, 3:47 PM
No clue how this looks. But we simply have to move that way.
The reason it took 2+ years to get to scie-pants was handwaving about pyoxidizer. Hopefully we can avoid that same mistake here.
h

happy-kitchen-89482

04/01/2023, 3:51 PM
There's a big difference between repos that must deploy legacy code to 2.7 and orgs that can't install python 3.9 on their locked down machines. I'd like to solicit data on the latter before assuming they exist.
The handwaving can go in either direction
e

enough-analyst-54434

04/01/2023, 3:52 PM
Agreed!
I think the simplest thing is just to drop
./pants
support for 2.17+ and let the rest follow as implementation detail (save for plugin authors).
b

bitter-ability-32190

04/01/2023, 4:01 PM
I made a GitHub issue for this. So let's track things there
h

happy-kitchen-89482

04/01/2023, 4:05 PM
Link?
b

bitter-ability-32190

04/01/2023, 4:08 PM
w

wide-midnight-78598

04/01/2023, 4:25 PM
You had me at "Proposal"
I'd say this is already at a point where it could be a GH Discussion - lots of different segments to consider, not necessarily well suited to a linear thread.
c

curved-television-6568

04/02/2023, 1:14 PM
I think the simplest thing is just to drop
./pants
support for 2.17+ and let the rest follow as implementation detail (save for plugin authors).
I agree with this. šŸ™‚
w

wide-midnight-78598

04/11/2023, 1:49 AM
Where did this end up going? 3.9 has some nice features that would clean up some of my codez
b

bitter-ability-32190

04/11/2023, 1:50 AM
Oh we probably should've discussed it today
w

wide-midnight-78598

04/11/2023, 1:52 AM
Yeah, it entirely slipped my mind. The one step further to that would be.... Cough... python 3.11? All of the free perfs šŸ™‚
h

happy-kitchen-89482

04/25/2023, 12:06 AM