Skip to content

Roadmap upgrade Python : 3.11 → 3.12 (puis 3.13/3.14 ultérieurement) #10

Description

@chrlesur

Contexte

Suite à la fermeture de la PR #3 (bump dependabot 3.11.12-slim → 3.14.0-slim), il faut planifier proprement la modernisation du runtime Python.

Situation actuelle

  • Version actuelle : Python 3.11.12-slim (épinglée dans Dockerfile via correctif sécurité v2.1.0)
  • Fin de support 3.11 : octobre 2027 (~18 mois)
  • Service : MCP Memory en production, audit sécurité v2.1.0 validé

Pourquoi pas 3.14 directement

  • SDK mcp (Anthropic) n'a pas Python 3.14 dans ses classifiers PyPI (stop à 3.13)
  • Saut de 3 versions majeures sur un service critique → risque élevé
  • Bénéfices de 3.14 (free-threading, sub-interprètes) non utilisés par notre code

Plan proposé en 2 étapes

Étape 1 : Python 3.11 → 3.12 (court terme)

  • Créer une branche upgrade/python-3.12
  • Modifier Dockerfile : FROM python:3.12.x-slim
  • Build Docker + recette complète scripts/test_recette.py (doit rester 150/150 PASS)
  • Vérifier perf (P95 latence q&a, ingest, search) avant/après
  • PR + merge

Pourquoi 3.12 ?

  • LTS bien établi (oct 2023 → oct 2028)
  • Toutes les deps confirmées compatibles
  • Améliorations perf vs 3.11 sans changements breaking notables
  • F-string améliorées, typing améliorée

Étape 2 : Python 3.12 → 3.13 (moyen terme)

  • À planifier dans 3-6 mois quand le SDK mcp aura validé 3.13 en production
  • Surveiller les classifiers PyPI du package mcp

Étape 3 : Python 3.13 → 3.14 (long terme)

  • À évaluer fin 2026 / début 2027
  • Possibilité d'exploiter free-threading (GIL-free) si pertinent pour le serveur

Critères de succès

  • Recette complète : 150/150 PASS
  • Aucune régression perf détectée
  • Image Docker plus petite ou équivalente
  • Validation locale + staging avant prod

Priorité

🟢 Basse — Pas d'urgence (3.11 supporté jusqu'à oct 2027), mais à faire avant fin 2026 pour rester proche de la version courante.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions