| fix: require Python >=3.10 and commit uv.lock for reproducible dev (#1506) (#1702) * fix: require Python >=3.10 and commit uv.lock for reproducible dev (#1506) `uv sync` failed from a clean checkout because requires-python allowed 3.9 while several dependencies (pyarrow>=24, open-ontologies-lite, ...) need 3.10+, so uv's universal resolution had no solution. Per maintainer decision on #1506, drop Python 3.8/3.9 and align every place that declares or tests a Python range: - pyproject.toml: requires-python >=3.10; classifiers 3.10-3.13; remove the now-dead `python_version < '3.10'` dependency branches. - explorer: replace datetime.UTC (3.11+) with timezone.utc so the package actually imports on the declared 3.10 floor. - Commit uv.lock (generated with the CI-pinned uv 0.12.1) and add a `uv lock --check` step to CI; document `uv sync --extra dev`. - Install Matrix: 3.10-3.13 (adds 3.13, which the Docker image uses). - Docs/README/badges/plugin READMEs: Python 3.10+. - osv-scanner.toml: ignore advisories that reach uv.lock only through the opt-in crewai extra (chromadb, json-repair); the extra stays out of `all` and requirements-ci.txt. requirements-ci.txt is unchanged (re-resolved for 3.11/linux: identical). Closes #1506 * fix: address #1702 review - cap Python <3.14, dev dependency group, doctor/docs - pyproject.toml: requires-python is now ">=3.10,<3.14" so the declared range matches what the Install Matrix and Docker image actually cover. - Docker: pin the runtime image back to python:3.13-slim (digest-pinned). Dependabot had bumped it to 3.14 (#1547) while the comment still said 3.13; the comment now states the current reasons, and dependabot.yml ignores python minor/major bumps for the image. - Move contributor tooling from the `dev` extra to a PEP 735 `[dependency-groups] dev` group and drop `dev` from the `all` extra, so `pip install semantica[all]` no longer ships pytest/jupyter/etc. `uv sync` installs the group by default and it is locked in uv.lock; pip users run `pip install -e . --group dev` (pip 25.1+). - requirements-ci.txt: same 410 pins and hashes; only the compile command (now `--group dev`) and the `via` annotations for dev packages change. CI's staleness check and CONTRIBUTING use the same command. - doctor: validate against MIN_PYTHON/MAX_PYTHON_EXCLUSIVE (3.10..3.13) instead of 3.8; warn on newer interpreters. - Docs: explorer/README.md and integrations/openclaw still said 3.8+; replace the removed `.[dev]` extra in README/docs. - Add tests/test_python_support_policy.py, which fails when requires-python, classifiers, the Install Matrix, the Dockerfile, doctor's constants or the dev-group layout disagree. Refs #1506 | 1 个月前 |