Skip to content

Commit ca31357

Browse files
NiveditJainclaude
andauthored
[failproofai-legion-950] Drop Python 3.10 from failproofai-sdk to clear its 47 Dependabot alerts (#953)
pillow (41 alerts) and filelock (6) are fixed only in releases that require Python 3.11 (13.0.0 and 4.2.1), so the 3.10 slice of sdk/python/uv.lock sat on 12.3.0 and 4.1.0 behind two version-pinned OSV package overrides due to expire on 2026-11-20. Python 3.10 reached end of life this month. - requires-python >=3.11; drop the 3.10 classifier and CI matrix leg - drop the 3.10-only tomli (dev) and onnxruntime (crewai) entries, and the tomli fallbacks in the SDK's tests - re-lock with uv 0.13.6: only the ten 3.10-only packages leave the lock, nothing is added or moved - remove both OSV overrides; the gate passes without them - docs: Python 3.11 or newer, in all 15 locales; drop the skill's 3.10-only LangGraph RunnableConfig note fp-cloud-cli keeps 3.10; it does not depend on the SDK. Claude-Session: https://claude.ai/code/session_01KYzGfVxwGZMvdyyi97XyZY Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 055d4e4 commit ca31357

28 files changed

Lines changed: 61 additions & 999 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -357,14 +357,14 @@ jobs:
357357
# component, sibling of fp-cloud-cli above, and deliberately its own job: it shares no
358358
# lockfile, no dependencies and no release cadence with the CLI.
359359
#
360-
# The matrix is wider than fp-cloud-cli's two versions on purpose. This package declares
360+
# The matrix spans the whole supported range on purpose. This package declares
361361
# no dependencies at all, so it has no third-party floor quietly constraining which
362362
# interpreters it is really exercised on — and it is installed into other people's
363363
# agent processes, whose Python version we do not choose. Every version
364364
# requires-python advertises is tested.
365365
failproofai-sdk:
366366
runs-on: ubuntu-latest
367-
# the same, across five — every version requires-python advertises; the bound exists so a stalled
367+
# the same, across four — every version requires-python advertises; the bound exists so a stalled
368368
# package mirror cannot hold a release for six hours (#726).
369369
timeout-minutes: 10
370370
defaults:
@@ -373,7 +373,7 @@ jobs:
373373
strategy:
374374
fail-fast: false
375375
matrix:
376-
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
376+
python-version: ["3.11", "3.12", "3.13", "3.14"]
377377
steps:
378378
- uses: actions/checkout@v7.0.1
379379

‎CHANGELOG.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
### Dependencies
1010

11+
- `failproofai-sdk` drops Python 3.10, which reached end of life this month, clearing the 47 Dependabot alerts against its dev/test lockfile. `pillow` (41) and `filelock` (6) are fixed only in releases that require Python 3.11 (13.0.0 and 4.2.1), so the lockfile's 3.10 slice was held on 12.3.0 and 4.1.0 behind two version-pinned OSV exceptions due to expire on 2026-11-20. `requires-python` is now `>=3.11`, the SDK's CI matrix runs 3.11–3.14, both exceptions are gone, and the 3.10-only `tomli` and `onnxruntime` entries leave the `dev` and `crewai` extras. On 3.10, pip keeps resolving `0.0.1b6`; `fp-cloud-cli` still supports 3.10 (#953)
1112
- Put the `ai-4`, `langchain-0.3`, `llamaindex-0.11` and `mastra-0` SDK integration fixtures back on the releases they exist to test, and stop Dependabot moving them. Its grouped security update #935, opened three minutes after #934 restored the first three, moved them again: `ai@4.3.19` → `5.0.52`, `@langchain/core@0.3.80` → `1.3.0`, `llamaindex@0.11.4` → `0.12.1` (each with `zod@3.25.76` → `4.6.7`), and `@mastra/core@0.24.9` → `1.79.0`. `__tests__/ci/ts-sdk-fixture-pins.test.ts` and the `frameworks` and `runtimes` integration shards have failed on `main` since, and so on every open PR. All four are back on their #934 manifests and lockfiles, and `.github/dependabot.yml` gives each a security-updates-only entry whose `ignore` ranges hold its framework on its line, and zod on 3 where the framework requires it, so the move is no longer proposed; the pin test now fails if a floor fixture loses that entry (#950)
1213
- Restore the `ai-4`, `langchain-0.3` and `llamaindex-0.11` SDK integration fixtures to the releases they exist to test: `ai@4.3.19`, `@langchain/core@0.3.80` with `@langchain/langgraph@0.4.10`, and `llamaindex@0.11.4`, each with `zod@3.25.76`. Dependabot's grouped security update (#931) reached the zod fix by moving them to `ai@7.0.152`, `@langchain/core@1.3.0` and `llamaindex@0.12.1`, the pin move `SECURITY.md` rules out, so the matrix silently stopped testing three supported floors. `llamaindex-0.11` then stopped installing (`@llamaindex/workflow@1.1.5` peers on `zod@^3.23.8`, so `npm ci` failed `ERESOLVE`), and because global setup installs every fixture first, the `frameworks` and `runtimes` integration shards failed on `main`. #931 also moved the `runtimes` fixture to `zod@4.6.7` while its Deno program still imported `npm:zod@4.6.5`, which Deno could no longer find; it now imports the installed version. `__tests__/ci/ts-sdk-fixture-pins.test.ts` fails on either move before anything installs (#934)
1314
- Patch the fixable SDK integration fixture advisories with fixture-local `overrides`, moving no pin: `undici` 7.29.1 → 7.30.1 in `ai-5` (GHSA-xjj6-f33q-929c, GHSA-4qv8-2p9j-2685, GHSA-f72v-6w45-q472); `fast-uri` 3.1.8 → 3.1.9 in `llamaindex-0.11` (GHSA-w74x-v6f9-j3xg, GHSA-wjr9-j795-jxcr, GHSA-xhq7-xmqj-769h, GHSA-333x-w4r6-6crp); and in `mastra-1`, `@modelcontextprotocol/server` 2.0.0 → 2.3.0 and `@modelcontextprotocol/client` 2.2.0 → 2.3.0 (GHSA-jm63-cq47-j5jp, GHSA-46jr-4wx8-v453, GHSA-rvq5-wwqv-78pq, GHSA-6prh-2h8m-c8cw), both pinned exactly by `@mastra/mcp@2.0.0`, each now with its own `@modelcontextprotocol/core@2.3.0` nested under it (#934)

‎__tests__/ci/failproofai-sdk-workflows.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,9 @@ describe("the failproofai-sdk CI job", () => {
247247
});
248248

249249
it("tests every Python version pyproject advertises", () => {
250-
// Claiming >=3.10 and testing one of them is how a 3.10 user finds the break.
250+
// Claiming >=3.11 and testing one of them is how a 3.11 user finds the break.
251251
// Kept in step with `requires-python` and the classifiers by hand.
252-
expect(job.strategy.matrix["python-version"]).toEqual(["3.10", "3.11", "3.12", "3.13", "3.14"]);
252+
expect(job.strategy.matrix["python-version"]).toEqual(["3.11", "3.12", "3.13", "3.14"]);
253253
});
254254

255255
it("requires the spool contract rather than letting it skip", () => {

‎docs/ar/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ icon: "python"
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 أو أحدث. بدون متطلبات وقت التشغيل.
18+
Python 3.11 أو أحدث. بدون متطلبات وقت التشغيل.
1919

2020
## التثبيت
2121

‎docs/de/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Was jede Einstellung, Methode und jedes Feld bewirkt. Wenn Sie zum ersten Mal in
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 oder neuer. Keine Laufzeitabhängigkeiten.
18+
Python 3.11 oder neuer. Keine Laufzeitabhängigkeiten.
1919

2020
## Installation
2121

‎docs/es/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Qué hace cada configuración, método y campo. Si es la primera vez que instrum
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 o superior. Sin dependencias en tiempo de ejecución.
18+
Python 3.11 o superior. Sin dependencias en tiempo de ejecución.
1919

2020
## Instalar
2121

‎docs/fr/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Ce que font chaque paramètre, méthode et champ. Si vous instrumentez pour la p
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 ou supérieur. Aucune dépendance d'exécution.
18+
Python 3.11 ou supérieur. Aucune dépendance d'exécution.
1919

2020
## Installation
2121

‎docs/he/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ icon: "python"
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 או חדש יותר. ללא תלויות זמן ריצה.
18+
Python 3.11 או חדש יותר. ללא תלויות זמן ריצה.
1919

2020
## התקנה
2121

‎docs/hi/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ icon: "python"
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 या नया। कोई runtime dependency नहीं।
18+
Python 3.11 या नया। कोई runtime dependency नहीं।
1919

2020
## इंस्टॉल करें
2121

‎docs/it/reference/custom-agents.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Cosa fanno ogni impostazione, metodo e campo. Se stai strumentando per la prima
1515
</Card>
1616
</Columns>
1717

18-
Python 3.10 o più recente. Nessuna dipendenza di runtime.
18+
Python 3.11 o più recente. Nessuna dipendenza di runtime.
1919

2020
## Installazione
2121

0 commit comments

Comments
 (0)