Core: drop Python 3.10 (#5324)

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
This commit is contained in:
Fabian Dill
2025-08-15 18:45:40 +02:00
committed by GitHub
parent 8f7fcd4889
commit 9d654b7e3b
8 changed files with 13 additions and 14 deletions

View File

@@ -29,7 +29,7 @@
"reportMissingImports": true, "reportMissingImports": true,
"reportMissingTypeStubs": true, "reportMissingTypeStubs": true,
"pythonVersion": "3.10", "pythonVersion": "3.11",
"pythonPlatform": "Windows", "pythonPlatform": "Windows",
"executionEnvironments": [ "executionEnvironments": [

View File

@@ -53,7 +53,7 @@ jobs:
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
if: env.diff != '' if: env.diff != ''
with: with:
python-version: '3.10' python-version: '3.11'
- name: "Install dependencies" - name: "Install dependencies"
if: env.diff != '' if: env.diff != ''

View File

@@ -39,11 +39,10 @@ jobs:
matrix: matrix:
os: [ubuntu-latest] os: [ubuntu-latest]
python: python:
- {version: '3.10'} - {version: '3.11.2'} # Change to '3.11' around 2026-06-10
- {version: '3.11'}
- {version: '3.12'} - {version: '3.12'}
include: include:
- python: {version: '3.10'} # old compat - python: {version: '3.11'} # old compat
os: windows-latest os: windows-latest
- python: {version: '3.12'} # current - python: {version: '3.12'} # current
os: windows-latest os: windows-latest

View File

@@ -5,15 +5,15 @@ import multiprocessing
import warnings import warnings
if sys.platform in ("win32", "darwin") and sys.version_info < (3, 10, 11): if sys.platform in ("win32", "darwin") and sys.version_info < (3, 11, 9):
# Official micro version updates. This should match the number in docs/running from source.md. # Official micro version updates. This should match the number in docs/running from source.md.
raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. Official 3.10.15+ is supported.") raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. Official 3.11.9+ is supported.")
elif sys.platform in ("win32", "darwin") and sys.version_info < (3, 10, 15): elif sys.platform in ("win32", "darwin") and sys.version_info < (3, 11, 13):
# There are known security issues, but no easy way to install fixed versions on Windows for testing. # There are known security issues, but no easy way to install fixed versions on Windows for testing.
warnings.warn(f"Python Version {sys.version_info} has security issues. Don't use in production.") warnings.warn(f"Python Version {sys.version_info} has security issues. Don't use in production.")
elif sys.version_info < (3, 10, 1): elif sys.version_info < (3, 11, 0):
# Other platforms may get security backports instead of micro updates, so the number is unreliable. # Other platforms may get security backports instead of micro updates, so the number is unreliable.
raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. 3.10.1+ is supported.") raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. 3.11.0+ is supported.")
# don't run update if environment is frozen/compiled or if not the parent process (skip in subprocess) # don't run update if environment is frozen/compiled or if not the parent process (skip in subprocess)
_skip_update = bool( _skip_update = bool(

View File

@@ -900,7 +900,7 @@ def async_start(co: Coroutine[None, None, typing.Any], name: Optional[str] = Non
Use this to start a task when you don't keep a reference to it or immediately await it, Use this to start a task when you don't keep a reference to it or immediately await it,
to prevent early garbage collection. "fire-and-forget" to prevent early garbage collection. "fire-and-forget"
""" """
# https://docs.python.org/3.10/library/asyncio-task.html#asyncio.create_task # https://docs.python.org/3.11/library/asyncio-task.html#asyncio.create_task
# Python docs: # Python docs:
# ``` # ```
# Important: Save a reference to the result of [asyncio.create_task], # Important: Save a reference to the result of [asyncio.create_task],

View File

@@ -16,7 +16,7 @@ game contributions:
* **Do not introduce unit test failures/regressions.** * **Do not introduce unit test failures/regressions.**
Archipelago supports multiple versions of Python. You may need to download older Python versions to fully test Archipelago supports multiple versions of Python. You may need to download older Python versions to fully test
your changes. Currently, the oldest supported version your changes. Currently, the oldest supported version
is [Python 3.10](https://www.python.org/downloads/release/python-31015/). is [Python 3.11](https://www.python.org/downloads/release/python-31113/).
It is recommended that automated github actions are turned on in your fork to have github run unit tests after It is recommended that automated github actions are turned on in your fork to have github run unit tests after
pushing. pushing.
You can turn them on here: You can turn them on here:

View File

@@ -7,7 +7,7 @@ use that version. These steps are for developers or platforms without compiled r
## General ## General
What you'll need: What you'll need:
* [Python 3.10.11 or newer](https://www.python.org/downloads/), not the Windows Store version * [Python 3.11.9 or newer](https://www.python.org/downloads/), not the Windows Store version
* On Windows, please consider only using the latest supported version in production environments since security * On Windows, please consider only using the latest supported version in production environments since security
updates for older versions are not easily available. updates for older versions are not easily available.
* Python 3.12.x is currently the newest supported version * Python 3.12.x is currently the newest supported version

View File

@@ -2,7 +2,7 @@
Archipelago does not have a compiled release on macOS. However, it is possible to run from source code on macOS. This guide expects you to have some experience with running software from the terminal. Archipelago does not have a compiled release on macOS. However, it is possible to run from source code on macOS. This guide expects you to have some experience with running software from the terminal.
## Prerequisite Software ## Prerequisite Software
Here is a list of software to install and source code to download. Here is a list of software to install and source code to download.
1. Python 3.10 "universal2" or newer from the [macOS Python downloads page](https://www.python.org/downloads/macos/). 1. Python 3.11 "universal2" or newer from the [macOS Python downloads page](https://www.python.org/downloads/macos/).
**Python 3.13 is not supported yet.** **Python 3.13 is not supported yet.**
2. Xcode from the [macOS App Store](https://apps.apple.com/us/app/xcode/id497799835). 2. Xcode from the [macOS App Store](https://apps.apple.com/us/app/xcode/id497799835).
3. The source code from the [Archipelago releases page](https://github.com/ArchipelagoMW/Archipelago/releases). 3. The source code from the [Archipelago releases page](https://github.com/ArchipelagoMW/Archipelago/releases).