2 Commits
Author SHA1 Message Date
zhuwenxing ff42b9502e enhance: upgrade test Python runtime to 3.12 (#49622)
issue: #49516

### What changed

- Upgrade test runtime pins and Docker base images to Python 3.12.
- Update tests ruff target and Python-version docs to 3.12.
- Refresh Python client dependency pins that block Python 3.12
installation.
- Scope TestPyPI lookup to pymilvus via find-links so uv does not
require unsafe-best-match.
- Suppress third-party invalid escape sequence SyntaxWarning noise seen
during Python 3.12 pytest collection.

### Verification

- git diff --check
- uv pip install --python /tmp/milvus-tests-py312-uv-default/bin/python
--dry-run -r tests/python_client/requirements.txt
- python3.12 -m venv /tmp/milvus-tests-py312-pip-requirements && pip
install -r tests/python_client/requirements.txt --timeout 30 --retries 6
- pip check
- python -c 'import pymilvus, ujson; print(pymilvus.__version__,
ujson.__version__)'
- python -m pytest --collect-only -q
milvus_client/test_milvus_client_collection.py

Signed-off-by: zhuwenxing <[email protected]>
2026-05-11 10:08:09 +08:00
zhuwenxingandClaude Opus 4.7 0590cabb3b test: introduce uv + ruff for tests/ Python lint and format (#49130)
## Summary
- Add `tests/pyproject.toml` (+ `tests/.python-version`,
`tests/uv.lock`) hosting a
shared ruff configuration that covers all Python under `tests/`
(python_client,
restful_client, restful_client_v2, benchmark, scripts). uv only manages
the ruff
toolchain; each sub-directory keeps its own `requirements.txt` for
runtime deps.
- Register ruff `ruff-check` / `ruff-format` pre-commit hooks scoped to
  `tests/**/*.py`, so only staged new/modified code is checked locally.
- Add `.github/workflows/python-lint.yaml`: on pushes to master and on
PRs touching
Python files under `tests/`, run `ruff check` and `ruff format --check`
against
**only the PR-diff changed files**. This intentionally avoids blocking
on the
  existing baseline.

This PR only lands the baseline configuration. The 316 existing `.py`
files under
`tests/` are untouched — no mass reformat — and will be cleaned up
incrementally in
follow-up PRs per sub-directory.

Enabled ruff rules: `E`, `F`, `W`, `I`, `UP`. Target Python: `3.10`,
line length `120`.

## Test plan
- [ ] `cd tests && uv sync && uv run ruff --version` works
- [ ] `uv run ruff check scripts/` and `uv run ruff format --check
scripts/` run successfully
- [ ] pre-commit `ruff-check` / `ruff-format` hooks fire on a modified
`tests/**/*.py`
- [ ] The new `Python Lint (tests/)` GitHub Actions job runs green on
this PR
(no `.py` under `tests/` changed, so it should short-circuit to success)
- [ ] Existing CI (Code Checker, E2E, etc.) is unaffected

---------

Signed-off-by: zhuwenxing <[email protected]>
Co-authored-by: Claude Opus 4.7 <[email protected]>
2026-04-21 14:21:44 +08:00