diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b499281..1ab73f3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -156,9 +156,8 @@ jobs: python -m pip install --upgrade pip pip install -c backend/constraints-${{ matrix.lancedb }}.txt \ -r backend/requirements.txt - # httpx is required by TestClient; <0.28 keeps the app= kwarg - # that the starlette version pinned by fastapi 0.104 still uses - pip install pytest "httpx<0.28" + # TestClient needs an HTTP client; current starlette wants httpx2 + pip install pytest httpx2 - name: Run API endpoint tests run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a460d7..244bde9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - GitHub Actions pinned to the majors that run on Node 24, before Node 20 leaves the runners (#60). - FastAPI startup logging moved from the deprecated `on_event` decorator to a lifespan context manager (#77). - Dataset loading now fetches combined schema and column metadata in parallel with row data, reducing four sequential I/O operations to two concurrent requests (#75). +- FastAPI raised from 0.104.1 to 0.141.1, and the test suite moved from httpx to httpx2. The old FastAPI brought starlette 0.27, which passed an argument that httpx had deprecated, so the test instructions had to hold httpx below 0.28. Test runs are now free of deprecation warnings (#81). ### Fixed - `docker build` no longer fails with "the destination must be a directory and end with a /". `COPY backend/*.py .` needs a trailing slash when it copies more than one file. The classic builder rejected it, the BuildKit builder did not (#62). diff --git a/README.md b/README.md index f2bb7da..ee8248d 100644 --- a/README.md +++ b/README.md @@ -157,7 +157,7 @@ The API tests run without Docker. With Python 3.11: ```bash pip install -c backend/constraints-0.33.0.txt -r backend/requirements.txt -pip install pytest "httpx<0.28" +pip install pytest httpx2 cd backend && python -m pytest tests/ -v ``` diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 466bb7e..107b80d 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -6,7 +6,7 @@ authors = [{name = "Lance Viewer", email = "noreply@example.com"}] license = {text = "MIT"} requires-python = ">=3.11" dependencies = [ - "fastapi==0.104.1", + "fastapi==0.141.1", "uvicorn[standard]==0.24.0", "lancedb==0.3.4", "pyarrow==14.0.1", diff --git a/backend/requirements.txt b/backend/requirements.txt index 3cee90c..b45ea64 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,4 +1,4 @@ -fastapi==0.104.1 +fastapi==0.141.1 uvicorn[standard]==0.24.0 python-multipart==0.0.6 numpy