Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate Python 3.8 #2888

Merged
merged 6 commits into from
Oct 7, 2024
Merged

Deprecate Python 3.8 #2888

merged 6 commits into from
Oct 7, 2024

Conversation

freakboy3742
Copy link
Member

@freakboy3742 freakboy3742 commented Oct 7, 2024

Python 3.8 is EOL at the end of this month, and #2886 highlights that we've reached the point where maintaining dependencies for 3.8 is becoming increasingly problematic.

This PR bumps the minimum Python requirement for Toga to 3.9, and removes the Python 3.8 compatibility workarounds.

As part of this change, the CI matrix for core has been modified slightly.

It turns out that we do need to run the test matrix on every version of Python - because we have conditional branches that are conditional on every version of Python on every platform. The "min and max only" testing approach was masking the fact that one of the conditional branches was using a "< 3.9" check, when it should have been a "< 3.10" check, because of a windows-specific issue.

However, we don't need to test core on both x86_64 and ARM64 macOS, as there is no logic in core that is architecture specific for macOS (or, for that matter, macOS version specific). x86_64 handling is still tested by the testbed - just not core.

Lastly, we can restore testing for Windows on Python 3.13 because a Pillow release is now available.

PR Checklist:

  • All new features have been tested
  • All new features have been documented
  • I have read the CONTRIBUTING.md file
  • I will abide by the code of conduct

@@ -225,11 +225,11 @@ def __getitem__(self, path_or_index):
return self.elements[path_or_index]

# Look up by path
if sys.version_info < (3, 9): # pragma: no-cover-if-gte-py39
if sys.version_info < (3, 10): # pragma: no-cover-if-gte-py310
Copy link
Member Author

Choose a reason for hiding this comment

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

This is the case that wasn't being caught by the "min + max" testing scheme. Since the problem only exists on Windows, testing 3.8 + 3.12 passed the test; 3.9 was also affected, but wasn't being checked.

.github/workflows/ci.yml Outdated Show resolved Hide resolved
.github/workflows/ci.yml Outdated Show resolved Hide resolved
core/README.rst Outdated Show resolved Hide resolved
@mhsmith mhsmith merged commit 6b45249 into beeware:main Oct 7, 2024
40 checks passed
@freakboy3742 freakboy3742 deleted the deprecate-3.8 branch October 7, 2024 23:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants