Skip to content

Test Python 3.12-dev#571

Merged
hugovk merged 1 commit intomainfrom
all-repos_autofix_add-3.12-dev
Nov 9, 2022
Merged

Test Python 3.12-dev#571
hugovk merged 1 commit intomainfrom
all-repos_autofix_add-3.12-dev

Conversation

@hugovk
Copy link
Copy Markdown
Member

@hugovk hugovk commented Nov 9, 2022

@hugovk hugovk added testing Unit tests, linting, CI, etc. changelog: skip Exclude PR from release draft labels Nov 9, 2022
Copy link
Copy Markdown
Collaborator

@bwoodsend bwoodsend left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably time to pull the plug on 3.7 whilst we're at it.

@hugovk hugovk merged commit 1860724 into main Nov 9, 2022
@hugovk hugovk deleted the all-repos_autofix_add-3.12-dev branch November 9, 2022 19:40
@hugovk
Copy link
Copy Markdown
Member Author

hugovk commented Nov 9, 2022

This isn't adding full support for 3.12 (by advertising via a Trove classifier or distributing wheels), which is only just in alpha, but lets us test early to find issues in our code or even in CPython itself. Full release is October 2023.

Python 3.7 is still supported by CPython until 2023-06-27.

However, scientific Python projects following NEP 29 have been dropping 3.7.

Here's the pip installs for ujson from PyPI for October 2022:

category percent downloads
3.7 31.56% 3,653,104
3.8 30.05% 3,478,288
3.10 15.03% 1,739,440
null 9.39% 1,087,521
3.9 8.76% 1,013,945
3.6 4.18% 484,170
2.7 0.90% 103,993
3.11 0.10% 11,072
3.5 0.04% 4,154
3.4 0.00% 71
3.3 0.00% 27
3.12 0.00% 25
3.2 0.00% 13
Total 11,575,823

Source: pip install -U pypistats && pypistats python_minor ujson --last-month

That's a pretty big percentage (but NumPy is similarly has 3.7 top with 38%).

I think we should follow either CPython's life cycle or NEP 29, to make things clear for users so they can plan ahead.

Generally scientific projects follow NEP 29 and non-scientific follow CPython, but there's a lot of variation.

Any preference?

No strong preference from me, I would tend towards CPython as this is virtually all C code and mainly affects production of wheels, but don't mind too much either way.

@JustAnotherArchivist
Copy link
Copy Markdown
Collaborator

I can't think of any 3.8 feature that would be necessary or useful here currently. I'm not aware of any significant C API changes, and changes at the Python layer (e.g. assignment expressions) aren't relevant except for testing. So I don't see any reason not to keep 3.7 support until it reaches EOL next year.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog: skip Exclude PR from release draft testing Unit tests, linting, CI, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants