Skip to content

add Python 3.14 support and bump youtube-transcript-api for compatibility - #2077

Open
Ilya Sh (shatovilya) wants to merge 3 commits into
microsoft:mainfrom
shatovilya:update-python
Open

add Python 3.14 support and bump youtube-transcript-api for compatibility#2077
Ilya Sh (shatovilya) wants to merge 3 commits into
microsoft:mainfrom
shatovilya:update-python

Conversation

@shatovilya

Copy link
Copy Markdown

Summary

According to the official Python release lifecycle, each feature release has a
limited bugfix window and then transitions to security-only support
(Python Developer Guide: Status of Python versions).
Python 3.13 is approaching that transition window, so this PR proactively adds
first-class Python 3.14 support across the monorepo while preserving backward
compatibility with Python 3.10.

Why now (official Python lifecycle context)

Python branch support phases are defined in the official docs:

  • bugfix: regular bugfix releases
  • security: source-only security fixes
  • end-of-life: no further updates

References:

This change aligns MarkItDown with the current CPython release cadence and
reduces risk as 3.13 progresses through its support lifecycle.

Changes

packages/markitdown

  • Added Programming Language :: Python :: 3.14 classifier in pyproject.toml
  • Upgraded youtube-transcript-api from ~=1.0.0 to ~=1.2.3 for Python 3.14 compatibility

packages/markitdown-mcp, packages/markitdown-ocr, packages/markitdown-sample-plugin

  • Added Programming Language :: Python :: 3.14 classifier in each pyproject.toml

CI (.github/workflows/tests.yml)

  • Added Python 3.14 to the setup-python matrix (with 3.10, 3.11, 3.12)

Docker

  • Updated base images:
    • python:3.13-slim-bullseye -> python:3.14-slim-bullseye
    • in root Dockerfile and packages/markitdown-mcp/Dockerfile

Documentation (README.md)

  • Updated prerequisites to explicitly state support for Python 3.10–3.14
  • Updated uv venv and conda create examples to use Python 3.14

Test Results

Full suite (hatch test) was validated locally in Docker across official
python:X.Y-slim-bookworm images:

  • Python 3.10: PASS
  • Python 3.11: PASS
  • Python 3.12: PASS
  • Python 3.13: PASS
  • Python 3.14: PASS

Observed result per run: 333 passed, 3 skipped.

Skipped tests (test_module_misc, test_pdf_memory) are pre-existing and
consistent across all tested Python versions.

Backward Compatibility

  • requires-python = ">=3.10" remains unchanged
  • No public API changes
  • Existing optional dependency groups remain intact

Checklist

  • Added official Python 3.14 support
  • Preserved Python 3.10 compatibility
  • Updated package classifiers across all relevant packages
  • Updated dependency for Python 3.14 compatibility
  • Updated CI and Docker runtime baseline
  • Updated README documentation
  • No breaking changes introduced
  • Complies with Microsoft repository contribution expectations

Ilya Sh (shatovilya) and others added 2 commits June 3, 2026 15:10
Extend CI testing to Python 3.14, add PyPI classifiers across all
packages, document 3.10–3.14 support in the README, and bump Docker
images to python:3.14 while keeping requires-python >=3.10.

Co-authored-by: Cursor <cursoragent@cursor.com>
…bility

Updated youtube-transcript-api dependency from ~=1.0.0 to ~=1.2.3
to ensure compatibility with Python 3.14.

Co-authored-by: Cursor <cursoragent@cursor.com>
@shatovilya

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@shatovilya Ilya Sh (shatovilya) changed the title feat: add official Python 3.14 support and bump youtube-transcript-api for compatibility add official Python 3.14 support and bump youtube-transcript-api for compatibility Jun 8, 2026
@shatovilya Ilya Sh (shatovilya) changed the title add official Python 3.14 support and bump youtube-transcript-api for compatibility add Python 3.14 support and bump youtube-transcript-api for compatibility Jun 8, 2026
Resolved conflicts in:
- .github/workflows/tests.yml: Added Python 3.14 to matrix strategy (both tests and ocr-tests jobs)
- Dockerfile: Updated to python:3.14-slim-trixie (combining PR's 3.14 upgrade with upstream's trixie upgrade)
- packages/markitdown-mcp/Dockerfile: Updated to python:3.14-slim-trixie

All changes preserve the PR's Python 3.14 support intent while incorporating upstream's latest improvements.

Co-authored-by: Ilya Sh <shatovilya@users.noreply.github.com>
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