From fa10cccf712bf92db514b327acde80f387616bac Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Tue, 14 Jul 2026 21:18:57 +0800 Subject: [PATCH] chore(openspec): archive downgrade-python-3-13-paddleocr Change is complete (19/19 tasks) and its delta spec has been synced into a new main spec openspec/specs/python-runtime-baseline/spec.md. Co-Authored-By: Claude Opus 4.6 --- .../.openspec.yaml | 0 .../design.md | 0 .../proposal.md | 0 .../specs/python-runtime-baseline/spec.md | 0 .../tasks.md | 0 .../specs/python-runtime-baseline/spec.md | 27 +++++++++++++++++++ 6 files changed, 27 insertions(+) rename openspec/changes/{downgrade-python-3-13-paddleocr => archive/2026-07-14-downgrade-python-3-13-paddleocr}/.openspec.yaml (100%) rename openspec/changes/{downgrade-python-3-13-paddleocr => archive/2026-07-14-downgrade-python-3-13-paddleocr}/design.md (100%) rename openspec/changes/{downgrade-python-3-13-paddleocr => archive/2026-07-14-downgrade-python-3-13-paddleocr}/proposal.md (100%) rename openspec/changes/{downgrade-python-3-13-paddleocr => archive/2026-07-14-downgrade-python-3-13-paddleocr}/specs/python-runtime-baseline/spec.md (100%) rename openspec/changes/{downgrade-python-3-13-paddleocr => archive/2026-07-14-downgrade-python-3-13-paddleocr}/tasks.md (100%) create mode 100644 openspec/specs/python-runtime-baseline/spec.md diff --git a/openspec/changes/downgrade-python-3-13-paddleocr/.openspec.yaml b/openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/.openspec.yaml similarity index 100% rename from openspec/changes/downgrade-python-3-13-paddleocr/.openspec.yaml rename to openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/.openspec.yaml diff --git a/openspec/changes/downgrade-python-3-13-paddleocr/design.md b/openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/design.md similarity index 100% rename from openspec/changes/downgrade-python-3-13-paddleocr/design.md rename to openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/design.md diff --git a/openspec/changes/downgrade-python-3-13-paddleocr/proposal.md b/openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/proposal.md similarity index 100% rename from openspec/changes/downgrade-python-3-13-paddleocr/proposal.md rename to openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/proposal.md diff --git a/openspec/changes/downgrade-python-3-13-paddleocr/specs/python-runtime-baseline/spec.md b/openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/specs/python-runtime-baseline/spec.md similarity index 100% rename from openspec/changes/downgrade-python-3-13-paddleocr/specs/python-runtime-baseline/spec.md rename to openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/specs/python-runtime-baseline/spec.md diff --git a/openspec/changes/downgrade-python-3-13-paddleocr/tasks.md b/openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/tasks.md similarity index 100% rename from openspec/changes/downgrade-python-3-13-paddleocr/tasks.md rename to openspec/changes/archive/2026-07-14-downgrade-python-3-13-paddleocr/tasks.md diff --git a/openspec/specs/python-runtime-baseline/spec.md b/openspec/specs/python-runtime-baseline/spec.md new file mode 100644 index 0000000..79f0cfd --- /dev/null +++ b/openspec/specs/python-runtime-baseline/spec.md @@ -0,0 +1,27 @@ +## Purpose + +Define the supported Python interpreter version range for the project workspace, container images, and CI pipeline, ensuring all environments converge on a single Python baseline. + +## Requirements + +### Requirement: Workspace-wide supported Python version +The system SHALL declare a single, consistent supported Python interpreter version range across the `uv` workspace root and every workspace member (`apps/device-host-agent`, `apps/cloud-api`, `packages/cloud-platform`), such that the range admits Python 3.13 and excludes Python 3.14, so that `paddlepaddle` (which has no Python 3.14 wheel available on PyPI) can be installed in every environment that follows the project's documented setup. + +#### Scenario: Workspace resolves and syncs on Python 3.13 +- **WHEN** an operator runs `uv python install 3.13` followed by `uv sync --locked --all-packages` in the repository root +- **THEN** the sync succeeds and provisions a `.venv` using a Python 3.13 interpreter, with `uv.lock` resolved against that interpreter + +#### Scenario: A Python 3.14 interpreter is rejected +- **WHEN** `uv` attempts to resolve or sync the workspace against a Python 3.14 interpreter +- **THEN** `uv` reports the interpreter as incompatible with the declared `requires-python` range, rather than silently proceeding + +### Requirement: Container and CI images match the declared Python baseline +The system SHALL build its Docker image and Jenkins CI pipeline using a base image whose Python version matches the workspace's declared `requires-python` range, so that containerized and CI environments never diverge from what local development targets. + +#### Scenario: Docker image build uses the supported Python version +- **WHEN** the project's `Dockerfile` is built +- **THEN** the resulting image's base image is `astral-sh/uv:python3.13-bookworm-slim` + +#### Scenario: CI pipeline uses the supported Python version +- **WHEN** the Jenkins pipeline defined in `Jenkinsfile` executes +- **THEN** it runs inside the `astral-sh/uv:python3.13-bookworm-slim` image