From a85733522013e4de4c5c927f612a7773f444c5ad Mon Sep 17 00:00:00 2001 From: baywet <7905502+baywet@users.noreply.github.com> Date: Wed, 14 Oct 2026 14:21:43 +0000 Subject: [PATCH 1/3] feat: add Python 3.15 support to all packages Declare Python 3.15 package classifiers, extend both CI version matrices, and document supported Python versions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- CONTRIBUTING.md | 2 +- README.md | 4 ++++ 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 + 11 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c52a5dbb..8d293c11 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.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] library : - name: "kiota_abstractions" path: "./packages/abstractions" @@ -76,7 +76,7 @@ jobs: strategy: max-parallel: 10 matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] steps: - name: Checkout diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 19cc9f45..99d1fe99 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -150,7 +150,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.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, 3.14, and 3.15. CI runs package checks and generated-code validation on all supported versions. 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/README.md b/README.md index ec744e3c..5f51af63 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ The Kiota libraries provide the essential building blocks for Kiota-generated SD To learn more about Kiota, visit the [Kiota repository](https://github.com/microsoft/kiota). +## Supported Python Versions + +All packages support Python 3.10, 3.11, 3.12, 3.13, 3.14, and 3.15. + ## Build Status [![CI Actions Status](https://github.com/microsoft/kiota-python/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/microsoft/kiota-python/actions) diff --git a/packages/abstractions/pyproject.toml b/packages/abstractions/pyproject.toml index 20cdcda7..44473f04 100644 --- a/packages/abstractions/pyproject.toml +++ b/packages/abstractions/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/authentication/azure/pyproject.toml b/packages/authentication/azure/pyproject.toml index 5a476779..dcae4855 100644 --- a/packages/authentication/azure/pyproject.toml +++ b/packages/authentication/azure/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/bundle/pyproject.toml b/packages/bundle/pyproject.toml index 184145fc..90a5dd38 100644 --- a/packages/bundle/pyproject.toml +++ b/packages/bundle/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/http/httpx/pyproject.toml b/packages/http/httpx/pyproject.toml index 45bb9b58..bb86c347 100644 --- a/packages/http/httpx/pyproject.toml +++ b/packages/http/httpx/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/serialization/form/pyproject.toml b/packages/serialization/form/pyproject.toml index 819fbe81..db0f50e6 100644 --- a/packages/serialization/form/pyproject.toml +++ b/packages/serialization/form/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/serialization/json/pyproject.toml b/packages/serialization/json/pyproject.toml index 4823eebd..646c371c 100644 --- a/packages/serialization/json/pyproject.toml +++ b/packages/serialization/json/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/serialization/multipart/pyproject.toml b/packages/serialization/multipart/pyproject.toml index 6f022ffb..3ee8fcda 100644 --- a/packages/serialization/multipart/pyproject.toml +++ b/packages/serialization/multipart/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" diff --git a/packages/serialization/text/pyproject.toml b/packages/serialization/text/pyproject.toml index a1edc01e..0fe09cda 100644 --- a/packages/serialization/text/pyproject.toml +++ b/packages/serialization/text/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "License :: OSI Approved :: MIT License", ] requires-python = ">=3.10" From e7927d3ce6a447901f6ebf0a2b459e3a4f4e889c Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Wed, 14 Oct 2026 11:07:49 -0400 Subject: [PATCH 2/3] ci: use Python 3.15 in the devcontainer Use the official Python image and install common-utils first to preserve the vscode user and development utilities. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 22daf10c-bde8-4639-baa7-6c01e27f0ad2 --- .devcontainer/devcontainer.json | 13 +++++++++---- CONTRIBUTING.md | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 5530e82f..d3746ec1 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,14 +7,19 @@ // "image": "mcr.microsoft.com/devcontainers/python:3.11-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.13-bookworm", - "image": "mcr.microsoft.com/devcontainers/python:3.14-bookworm", + // "image": "mcr.microsoft.com/devcontainers/python:3.14-bookworm", + "image": "python:3.15-bookworm", "features": { + "ghcr.io/devcontainers/features/common-utils:2": {}, "ghcr.io/hspaans/devcontainer-features/pytest:1": {}, "ghcr.io/devcontainers-extra/features/pylint:2": {}, "ghcr.io/devcontainers-extra/features/poetry:2": {}, "ghcr.io/devcontainers/features/powershell:1": {} }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/common-utils" + ], // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, @@ -33,8 +38,8 @@ "wmiller4.python-venv-switcher" ] } - } + }, - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" + // Use "root" to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + "remoteUser": "vscode" } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 99d1fe99..9968a3d2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -150,7 +150,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.10, 3.11, 3.12, 3.13, 3.14, and 3.15. CI runs package checks and generated-code validation on all supported versions. 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.15`, but we support Python 3.10, 3.11, 3.12, 3.13, 3.14, and 3.15. CI runs package checks and generated-code validation on all supported versions. The dev container uses the official `python:3.15-bookworm` image with the common-utils feature to provide the `vscode` user and development utilities, because the Microsoft devcontainer image is not yet available for Python 3.15. You can test your changes on another version by changing the `"image": "python:3.15-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 From cdf83cc2c7ed3a3dfa80f40ff1fb5b0278e0b815 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Wed, 14 Oct 2026 12:01:43 -0400 Subject: [PATCH 3/3] Revert "ci: use Python 3.15 in the devcontainer" This reverts commit e7927d3ce6a447901f6ebf0a2b459e3a4f4e889c. --- .devcontainer/devcontainer.json | 13 ++++--------- CONTRIBUTING.md | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d3746ec1..5530e82f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,19 +7,14 @@ // "image": "mcr.microsoft.com/devcontainers/python:3.11-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm", // "image": "mcr.microsoft.com/devcontainers/python:3.13-bookworm", - // "image": "mcr.microsoft.com/devcontainers/python:3.14-bookworm", - "image": "python:3.15-bookworm", + "image": "mcr.microsoft.com/devcontainers/python:3.14-bookworm", "features": { - "ghcr.io/devcontainers/features/common-utils:2": {}, "ghcr.io/hspaans/devcontainer-features/pytest:1": {}, "ghcr.io/devcontainers-extra/features/pylint:2": {}, "ghcr.io/devcontainers-extra/features/poetry:2": {}, "ghcr.io/devcontainers/features/powershell:1": {} }, - "overrideFeatureInstallOrder": [ - "ghcr.io/devcontainers/features/common-utils" - ], // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, @@ -38,8 +33,8 @@ "wmiller4.python-venv-switcher" ] } - }, + } - // Use "root" to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - "remoteUser": "vscode" + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9968a3d2..99d1fe99 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -150,7 +150,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.15`, but we support Python 3.10, 3.11, 3.12, 3.13, 3.14, and 3.15. CI runs package checks and generated-code validation on all supported versions. The dev container uses the official `python:3.15-bookworm` image with the common-utils feature to provide the `vscode` user and development utilities, because the Microsoft devcontainer image is not yet available for Python 3.15. You can test your changes on another version by changing the `"image": "python:3.15-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, 3.14, and 3.15. CI runs package checks and generated-code validation on all supported versions. 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