Proposal: in 2.17.x we drop support for running pa...
# development
h
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
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
+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
Do we know of such users? That would be a good thing to solicit info on from the wide community.
e
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
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
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
Oh, woah. So something like
pants_requirements
target could get the Scie, then extract it into a local wheel understood by PyPI?
e
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
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
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
I made a GitHub issue for this. So let's track things there
h
Link?
b
w
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
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
Where did this end up going? 3.9 has some nice features that would clean up some of my codez
b
Oh we probably should've discussed it today
w
Yeah, it entirely slipped my mind. The one step further to that would be.... Cough... python 3.11? All of the free perfs šŸ™‚
h