From 20826a92b5e491e702c20c4bc9b140fa157cd022 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Apr 2026 13:24:14 +0000 Subject: [PATCH 1/3] Initial plan From f7e066f7defb6d265bfc5079b6a8ea96481f4e0a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Apr 2026 13:28:36 +0000 Subject: [PATCH 2/3] feat: drop support for Python 3.9 Agent-Logs-Url: https://github.com/microsoft/kiota-python/sessions/9d8793ae-b295-4f30-bbcf-76dead649b99 Co-authored-by: baywet <7905502+baywet@users.noreply.github.com> --- .devcontainer/devcontainer.json | 1 - .github/workflows/build.yml | 4 ++-- CONTRIBUTING.md | 2 +- packages/abstractions/pyproject.toml | 3 +-- packages/authentication/azure/pyproject.toml | 3 +-- packages/bundle/pyproject.toml | 3 +-- packages/http/httpx/pyproject.toml | 3 +-- packages/serialization/form/pyproject.toml | 3 +-- packages/serialization/json/pyproject.toml | 3 +-- packages/serialization/multipart/pyproject.toml | 3 +-- packages/serialization/text/pyproject.toml | 3 +-- tests/validation/pyproject.toml | 3 +-- 12 files changed, 12 insertions(+), 22 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 714033de..5530e82f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,7 +3,6 @@ { "name": "Python 3", // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - // "image": "mcr.microsoft.com/devcontainers/python:3.9-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.10-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.11-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm", diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c7893b3..65b882c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: max-parallel: 10 fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] library : - name: "kiota_abstractions" path: "./packages/abstractions" @@ -77,7 +77,7 @@ jobs: strategy: max-parallel: 10 matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 627610b7..8f28a928 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -148,7 +148,7 @@ __TIP__ Running `.\kiota-python.ps1 test` should give a hint of all available co This repository is setup to use [Visual Studio Code Dev Containers](https://code.visualstudio.com/docs/remote/containers) to provide a consistent development environment for contributors. The dev container is configured to have all the necessary tools and dependencies to work on the repository. -By default we do all development in `Python 3.14`, but we support Python 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14. The dev container is configured to use Python 3.14, but you can test your changes by changing the `"image": "mcr.microsoft.com/devcontainers/python:3.14-bookworm",` line in the `.devcontainer/devcontainer.json` file to the desired version. If you save changes to this file, you will be prompted to rebuild the dev container. You can also rebuild the dev container by running the `Remote-Containers: Rebuild Container` command from the command palette. +By default we do all development in `Python 3.14`, but we support Python 3.10, 3.11, 3.12, 3.13, and 3.14. The dev container is configured to use Python 3.14, but you can test your changes by changing the `"image": "mcr.microsoft.com/devcontainers/python:3.14-bookworm",` line in the `.devcontainer/devcontainer.json` file to the desired version. If you save changes to this file, you will be prompted to rebuild the dev container. You can also rebuild the dev container by running the `Remote-Containers: Rebuild Container` command from the command palette. ### Dependencies diff --git a/packages/abstractions/pyproject.toml b/packages/abstractions/pyproject.toml index a7524cd4..c01f48a9 100644 --- a/packages/abstractions/pyproject.toml +++ b/packages/abstractions/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_abstractions"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" std-uritemplate = ">=2.0.0" opentelemetry-api = ">=1.27.0" opentelemetry-sdk = ">=1.27.0" diff --git a/packages/authentication/azure/pyproject.toml b/packages/authentication/azure/pyproject.toml index b2d5bf23..ea86a1aa 100644 --- a/packages/authentication/azure/pyproject.toml +++ b/packages/authentication/azure/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_authentication_azure"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" aiohttp = ">=3.8.0" azure-core = ">=1.21.1" microsoft-kiota-abstractions = {path="../../abstractions/", develop=true} diff --git a/packages/bundle/pyproject.toml b/packages/bundle/pyproject.toml index d6b396a9..6a28aa48 100644 --- a/packages/bundle/pyproject.toml +++ b/packages/bundle/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_bundle"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../packages/abstractions/", develop=true} microsoft-kiota-http = {path="../../packages/http/httpx/", develop=true} microsoft-kiota-serialization-json = {path="../../packages/serialization/json/", develop=true} diff --git a/packages/http/httpx/pyproject.toml b/packages/http/httpx/pyproject.toml index ce6d10e7..680bf294 100644 --- a/packages/http/httpx/pyproject.toml +++ b/packages/http/httpx/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_http"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../abstractions/", develop=true} opentelemetry-api = ">=1.27.0" opentelemetry-sdk = ">=1.27.0" diff --git a/packages/serialization/form/pyproject.toml b/packages/serialization/form/pyproject.toml index c3fb74cd..6d25a0d1 100644 --- a/packages/serialization/form/pyproject.toml +++ b/packages/serialization/form/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_serialization_form"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../abstractions/", develop=true} [tool.poetry.group.dev.dependencies] diff --git a/packages/serialization/json/pyproject.toml b/packages/serialization/json/pyproject.toml index 5f9e0a75..fcbf0f53 100644 --- a/packages/serialization/json/pyproject.toml +++ b/packages/serialization/json/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_serialization_json"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../abstractions/", develop=true} [tool.poetry.group.dev.dependencies] diff --git a/packages/serialization/multipart/pyproject.toml b/packages/serialization/multipart/pyproject.toml index f6b02660..d08ca252 100644 --- a/packages/serialization/multipart/pyproject.toml +++ b/packages/serialization/multipart/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_serialization_multipart"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../abstractions/", develop=true} [tool.poetry.group.dev.dependencies] diff --git a/packages/serialization/text/pyproject.toml b/packages/serialization/text/pyproject.toml index 4ddbdc3d..38e12d09 100644 --- a/packages/serialization/text/pyproject.toml +++ b/packages/serialization/text/pyproject.toml @@ -12,7 +12,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_serialization_text"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../abstractions/", develop=true} [tool.poetry.group.dev.dependencies] diff --git a/tests/validation/pyproject.toml b/tests/validation/pyproject.toml index 6e01bc9c..882839a1 100644 --- a/tests/validation/pyproject.toml +++ b/tests/validation/pyproject.toml @@ -13,7 +13,6 @@ readme = "README.md" keywords = ["kiota", "openAPI", "Microsoft", "Graph"] classifiers = [ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -26,7 +25,7 @@ documentation = "https://learn.microsoft.com/openapi/kiota/" packages = [{include = "kiota_abstractions"}] [tool.poetry.dependencies] -python = ">=3.9,<4.0" +python = ">=3.10,<4.0" microsoft-kiota-abstractions = {path="../../packages/abstractions/", develop=true} microsoft-kiota-http = {path="../../packages/http/httpx/", develop=true} microsoft-kiota-serialization-json = {path="../../packages/serialization/json/", develop=true} From 6c13439e4e514d08dadf5f7f4a2242556ba512e9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Apr 2026 13:37:48 +0000 Subject: [PATCH 3/3] fix: add Python 3.14 classifier to all pyproject.toml files Agent-Logs-Url: https://github.com/microsoft/kiota-python/sessions/cb990a77-382d-40b5-81da-5ed5fc1d4128 Co-authored-by: baywet <7905502+baywet@users.noreply.github.com> --- packages/abstractions/pyproject.toml | 1 + packages/authentication/azure/pyproject.toml | 1 + packages/bundle/pyproject.toml | 1 + packages/http/httpx/pyproject.toml | 1 + packages/serialization/form/pyproject.toml | 1 + packages/serialization/json/pyproject.toml | 1 + packages/serialization/multipart/pyproject.toml | 1 + packages/serialization/text/pyproject.toml | 1 + tests/validation/pyproject.toml | 1 + 9 files changed, 9 insertions(+) diff --git a/packages/abstractions/pyproject.toml b/packages/abstractions/pyproject.toml index c01f48a9..648435aa 100644 --- a/packages/abstractions/pyproject.toml +++ b/packages/abstractions/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/authentication/azure/pyproject.toml b/packages/authentication/azure/pyproject.toml index ea86a1aa..41871c48 100644 --- a/packages/authentication/azure/pyproject.toml +++ b/packages/authentication/azure/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/bundle/pyproject.toml b/packages/bundle/pyproject.toml index 6a28aa48..f838c56f 100644 --- a/packages/bundle/pyproject.toml +++ b/packages/bundle/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/http/httpx/pyproject.toml b/packages/http/httpx/pyproject.toml index 680bf294..253be60a 100644 --- a/packages/http/httpx/pyproject.toml +++ b/packages/http/httpx/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/serialization/form/pyproject.toml b/packages/serialization/form/pyproject.toml index 6d25a0d1..10b635f6 100644 --- a/packages/serialization/form/pyproject.toml +++ b/packages/serialization/form/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/serialization/json/pyproject.toml b/packages/serialization/json/pyproject.toml index fcbf0f53..6a1007cb 100644 --- a/packages/serialization/json/pyproject.toml +++ b/packages/serialization/json/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/serialization/multipart/pyproject.toml b/packages/serialization/multipart/pyproject.toml index d08ca252..d868bfad 100644 --- a/packages/serialization/multipart/pyproject.toml +++ b/packages/serialization/multipart/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/packages/serialization/text/pyproject.toml b/packages/serialization/text/pyproject.toml index 38e12d09..82ecb438 100644 --- a/packages/serialization/text/pyproject.toml +++ b/packages/serialization/text/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme" diff --git a/tests/validation/pyproject.toml b/tests/validation/pyproject.toml index 882839a1..7a037aaa 100644 --- a/tests/validation/pyproject.toml +++ b/tests/validation/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "License :: OSI Approved :: MIT License", ] homepage = "https://github.com/microsoft/kiota#readme"