diff --git a/.ci/docker/build.sh b/.ci/docker/build.sh index be85fdcb542d..8672fae2bbdd 100755 --- a/.ci/docker/build.sh +++ b/.ci/docker/build.sh @@ -262,13 +262,10 @@ case "$tag" in TRITON_CPU=yes ;; pytorch-linux-jammy-linter) - # TODO: Use 3.9 here because of this issue https://github.com/python/mypy/issues/13627. - # We will need to update mypy version eventually, but that's for another day. The task - # would be to upgrade mypy to 1.0.0 with Python 3.11 - PYTHON_VERSION=3.9 + PYTHON_VERSION=3.10 ;; - pytorch-linux-jammy-cuda12.8-cudnn9-py3.9-linter) - PYTHON_VERSION=3.9 + pytorch-linux-jammy-cuda12.8-cudnn9-py3.10-linter) + PYTHON_VERSION=3.10 CUDA_VERSION=12.8.1 ;; pytorch-linux-jammy-aarch64-py3.10-gcc11) diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml index e44484e0ddd2..272a2d1c691d 100644 --- a/.github/workflows/docker-builds.yml +++ b/.github/workflows/docker-builds.yml @@ -70,7 +70,7 @@ jobs: pytorch-linux-jammy-py3-clang18-asan, pytorch-linux-jammy-py3-clang12-onnx, pytorch-linux-jammy-linter, - pytorch-linux-jammy-cuda12.8-cudnn9-py3.9-linter, + pytorch-linux-jammy-cuda12.8-cudnn9-py3.10-linter, pytorch-linux-jammy-py3-clang12-executorch, pytorch-linux-jammy-py3.12-triton-cpu, pytorch-linux-noble-riscv64-py3.12-gcc14 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b1a6dfb39071..fa54f7d6d50b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -53,7 +53,7 @@ jobs: with: timeout: 120 runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" - docker-image: ci-image:pytorch-linux-jammy-cuda12.8-cudnn9-py3.9-linter + docker-image: ci-image:pytorch-linux-jammy-cuda12.8-cudnn9-py3.10-linter # NB: A shallow checkout won't work here because calculate-docker-image requires a full checkout # to run git rev-parse HEAD~:.ci/docker when a new image is needed fetch-depth: 0 @@ -264,10 +264,10 @@ jobs: with: submodules: false fetch-depth: 1 - - name: Setup Python 3.9 + - name: Setup Python 3.10 uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: - python-version: '3.9' + python-version: '3.10' architecture: x64 cache: pip - name: Install dependencies diff --git a/pyproject.toml b/pyproject.toml index 874c629273d7..154aea13ef6a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ dev = [ name = "torch" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" # TODO: change to `license = "BSD-3-Clause"` and enable PEP 639 after pinning setuptools>=77 # FIXME: As of 2025.06.20, it is hard to ensure the minimum version of setuptools in our CI environment. # TOML-table-based license deprecated in setuptools>=77, and the deprecation warning will be changed @@ -74,7 +74,6 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: C++", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -185,6 +184,13 @@ ignore = [ "UP007", # keep-runtime-typing "UP045", # keep-runtime-typing "TC006", + # TODO: Remove Python-3.10 specific suppressions + "B905", + "UP035", + "UP036", + "UP038", + "UP041", + "FURB161", ] select = [ "B", diff --git a/setup.py b/setup.py index 2bb63a93cec8..d0f8c2eba72a 100644 --- a/setup.py +++ b/setup.py @@ -256,7 +256,7 @@ import platform # Also update `project.requires-python` in pyproject.toml when changing this -python_min_version = (3, 9, 0) +python_min_version = (3, 10, 0) python_min_version_str = ".".join(map(str, python_min_version)) if sys.version_info < python_min_version: print(