From 4da72d4a706bc382a012024d2cfc9a4760dfbc94 Mon Sep 17 00:00:00 2001 From: Terje Kvernes Date: Sat, 15 Aug 2026 00:53:00 +0200 Subject: [PATCH] Prepare Python client dependencies for v0.0.12 --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/perf.yml | 8 ++++---- .github/workflows/publish.yml | 10 +++++----- Changelog.md | 2 ++ README.md | 4 ++-- docker-compose.integration.yml | 2 +- pyproject.toml | 2 +- tests/test_integration.py | 4 ++-- uv.lock | 8 ++++---- 9 files changed, 25 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8343c9d..2becddc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,15 +15,15 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up Python 3.12 - uses: actions/setup-python@v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@v10.0.0 + uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: version: "latest-known" @@ -39,7 +39,7 @@ jobs: - name: Run pytest run: | if [ "${{ matrix.integration }}" = "true" ]; then - export TREETOP_REST_IMAGE=ghcr.io/treetop-policy-engine/treetop-rest:v0.0.11 + export TREETOP_REST_IMAGE=ghcr.io/treetop-policy-engine/treetop-rest:v0.0.12 docker compose -f docker-compose.integration.yml pull uv run pytest -m integration else diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 05536fa..b70af4e 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -17,15 +17,15 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up Python 3.12 - uses: actions/setup-python@v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@v10.0.0 + uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: version: "latest-known" @@ -33,7 +33,7 @@ jobs: run: uv sync --locked --extra dev - name: Run benchmarks - uses: CodSpeedHQ/action@v5.0.3 + uses: CodSpeedHQ/action@4296e51e7041e24dadb86d1d6e8b9320d223dbe8 # v5.0.3 with: mode: simulation run: uv run pytest benchmarks --codspeed -m benchmark diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a2bd827..eb49a30 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,15 +14,15 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up Python 3.12 - uses: actions/setup-python@v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@v10.0.0 + uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 - name: Install dependencies run: uv sync --locked --extra dev @@ -42,7 +42,7 @@ jobs: run: uv build - name: Upload distributions - uses: actions/upload-artifact@v7.0.1 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: python-distributions path: dist/ @@ -60,7 +60,7 @@ jobs: steps: - name: Download distributions - uses: actions/download-artifact@v8.0.1 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: python-distributions path: dist/ diff --git a/Changelog.md b/Changelog.md index 4a8b291..72d4afd 100644 --- a/Changelog.md +++ b/Changelog.md @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 of constructing an unused transport. - Reduce authorization serialization, response parsing, result aggregation, and policy-filter query overhead. +- Update all Python dependencies and pinned GitHub Actions to their latest stable + releases, and validate integration behavior against Treetop REST v0.0.12. ## [0.0.11] - 2026-08-13 diff --git a/README.md b/README.md index e0ddaff..9e48fd5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Python ≥ 3.12, zero runtime deps beyond HTTPX. - **Full Async Support**: Async/await support for all API methods - **Type Safe**: Fully type-hinted dataclasses for requests and responses - **Version Tracking**: Access policy version information (hash and loaded_at timestamp) -- **Treetop REST v0.0.11**: Operational probes, generated OpenAPI, metrics, status, policy, and schema endpoints +- **Treetop REST v0.0.12**: Operational probes, generated OpenAPI, metrics, status, policy, and schema endpoints - **Request Context**: Pass request-scoped Cedar context attributes during authorization ## Basic Usage (Single Request) @@ -254,7 +254,7 @@ status = client.status() print(status.request_context.supported) print(status.request_limits.max_batch_size) -# v0.0.11 operational and discovery endpoints +# v0.0.12-compatible operational and discovery endpoints assert client.livez() assert client.readyz() openapi = client.openapi() diff --git a/docker-compose.integration.yml b/docker-compose.integration.yml index dc463c7..fde4d5f 100644 --- a/docker-compose.integration.yml +++ b/docker-compose.integration.yml @@ -8,7 +8,7 @@ services: command: ["/data", "--port", "18999"] integration-test-treetop-server: - image: ${TREETOP_REST_IMAGE:-ghcr.io/treetop-policy-engine/treetop-rest:v0.0.11} + image: ${TREETOP_REST_IMAGE:-ghcr.io/treetop-policy-engine/treetop-rest:v0.0.12} container_name: integration-test-treetop-server pull_policy: "always" ports: diff --git a/pyproject.toml b/pyproject.toml index 9bdb9a6..3fa5490 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ dependencies = ["httpx>=0.28.1,<0.29.0"] [project.optional-dependencies] dev = [ - "basedpyright>=1.39.9", + "basedpyright>=1.39.10", "pyright>=1.1.411", "pytest>=9.1.1", "pytest-codspeed>=5.0.3", diff --git a/tests/test_integration.py b/tests/test_integration.py index ec0c8a6..086050a 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -182,7 +182,7 @@ def test_v0_0_11_server_surfaces(client: TreeTopClient): "title": "treetop-rest", "description": "REST server for the Treetop policy management framework", "license": {"name": "MIT", "identifier": "MIT"}, - "version": "0.0.11", + "version": "0.0.12", } assert client.status().request_limits.max_batch_size is not None assert "treetop_build_info" in client.metrics() @@ -287,7 +287,7 @@ def test_live_v0011_metadata_endpoints(client: TreeTopClient): assert client.health() is True version = client.version() - assert version.version == "v0.0.11" + assert version.version == "v0.0.12" assert version.core.version assert version.core.cedar assert version.policies.hash diff --git a/uv.lock b/uv.lock index c04f2f9..701e40b 100644 --- a/uv.lock +++ b/uv.lock @@ -17,14 +17,14 @@ wheels = [ [[package]] name = "basedpyright" -version = "1.39.9" +version = "1.39.10" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodejs-wheel-binaries" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7a/4b/c1f4e211e50389304d6af32b9280e026a7133e3ad59bbdf8f7a3250f8bee/basedpyright-1.39.9.tar.gz", hash = "sha256:32cbea5fc8273e89df3db20daea56cb7286e419ccdfdc479c64759d2dc071901", size = 24412216, upload-time = "2026-06-27T02:19:49.834Z" } +sdist = { url = "https://files.pythonhosted.org/packages/68/43/ad2999f3b09eb2b1e59931d88fac0f7bcc9c17fc18c903268779bd10cc97/basedpyright-1.39.10.tar.gz", hash = "sha256:c8eaf5302f3265e275c7df4fba194d7afa7c1cb53fbfd448e90098360aca2c2e", size = 24740347, upload-time = "2026-08-13T17:09:02.51Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/d4/e1fa108710d0498a18c77b1e13897f31eab47c69aa8cfe2d2a4df746541e/basedpyright-1.39.9-py3-none-any.whl", hash = "sha256:6b0837b9eba972c71895167ab9b127e6afdbc17abc92312e3f8d15ca82a5611c", size = 13374276, upload-time = "2026-06-27T02:19:54.431Z" }, + { url = "https://files.pythonhosted.org/packages/be/2a/a224054d75a58786c482f63b8ff2a09fc3362268bd1ebd0a61fb3f982153/basedpyright-1.39.10-py3-none-any.whl", hash = "sha256:cbd75d83c0be841329bcfef2d2f1182f152a6d975b8eb199e75cf5b8e9a3de78", size = 13482322, upload-time = "2026-08-13T17:08:59.074Z" }, ] [[package]] @@ -278,7 +278,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "basedpyright", marker = "extra == 'dev'", specifier = ">=1.39.9" }, + { name = "basedpyright", marker = "extra == 'dev'", specifier = ">=1.39.10" }, { name = "httpx", specifier = ">=0.28.1,<0.29.0" }, { name = "pyright", marker = "extra == 'dev'", specifier = ">=1.1.411" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=9.1.1" },