Skip to content

chore: bump renderers to 0.1.11; drop legacy RendererClient - #2478

Merged
hallerite merged 1 commit into
mainfrom
chore/bump-renderers-0.1.11
Aug 31, 2026
Merged

chore: bump renderers to 0.1.11; drop legacy RendererClient#2478
hallerite merged 1 commit into
mainfrom
chore/bump-renderers-0.1.11

Conversation

@hallerite

@hallerite hallerite commented Aug 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Require renderers[multimodal]>=0.1.11: renderers 0.1.11 makes transformers optional, and verifiers both loads HF tokenizers (renderers.base.load_tokenizer / create_renderer) and renders image_url content that renderers resolves to PIL images at render time — so pin the extra that carries transformers + pillow.
  • Refresh the lock file for renderers 0.1.11.
  • Remove the legacy RendererClient and its tests: 0.1.11 removes the renderer pool APIs (RendererPool, create_renderer_pool, renderers.client._maybe_offload) that only the legacy client still used. The v1 train client has its own ElasticRendererPool and is unaffected. client_type="renderer" in a legacy ClientConfig now raises with a pointer to the v1 train client.

Verification

  • uv lock --check
  • uv run --locked --python 3.13 ty check verifiers
  • uv run --locked ruff check / ruff format --check
  • pytest collect passes with no import errors; verifiers, verifiers.legacy, verifiers.legacy.clients import cleanly

🤖 Generated with Claude Code


Note

Medium Risk
Breaking change for legacy configs using client_type="renderer"; v1 train path is unaffected but migrations are required for any remaining legacy renderer rollouts.

Overview
Upgrades the renderers dependency to renderers[multimodal]>=0.1.11 (lockfile refreshed) so transformers and pillow stay available for HF tokenizers and multimodal rendering after 0.1.11 made transformers optional.

Removes the legacy RendererClient (verifiers/legacy/clients/renderer_client.py) and its unit/e2e tests, because 0.1.11 dropped RendererPool, create_renderer_pool, and related APIs that only that client used. RendererClient is no longer exported from verifiers.legacy; client_type="renderer" in legacy resolve_client now raises ValueError directing callers to the v1 train client. Legacy docs drop RendererClient from the built-in clients table and note that prompt_attribution on trajectory tokens applied to renderer-backed rollouts removed with 0.1.11.

Reviewed by Cursor Bugbot for commit 9dc9356. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Drop legacy RendererClient and bump renderers to 0.1.11

  • Removes the RendererClient implementation, its lazy import mapping, __all__ exports, and tests under tests/test_renderer_*.py
  • resolve_client now raises ValueError for client_type='renderer', directing users to the verifiers.v1 train client
  • Changes the dependency to renderers[multimodal]>=0.1.11 in pyproject.toml and updates the lockfile
  • Updates docs/legacy/reference.md to remove the RendererClient row and note the removal
  • Risk: any code importing verifiers.legacy.clients.RendererClient or calling resolve_client with client_type='renderer' will now raise AttributeError/ValueError instead of returning a client

Macroscope summarized 9dc9356.

renderers 0.1.11 makes transformers optional, so depend on the
multimodal extra (transformers + pillow): verifiers loads HF tokenizers
via renderers.base.load_tokenizer / create_renderer and renders
image_url content that renderers resolves to PIL images at render time.

0.1.11 also removes the renderer pool APIs (RendererPool,
create_renderer_pool, client._maybe_offload) that only the legacy
RendererClient still used. The v1 train client has its own
ElasticRendererPool and is unaffected. Remove the legacy client and its
tests instead of porting it; client_type='renderer' now raises with a
pointer to the v1 train client.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macroscopeapp

macroscopeapp Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR intentionally removes the legacy RendererClient and changes renderer-configured legacy rollouts from executable to failing, while directing users to a different v1 client API. That breaking runtime and compatibility impact warrants human review despite the otherwise straightforward dependency and cleanup changes.

You can add or adjust custom eligibility rules. Learn more.

@hallerite
hallerite merged commit ab569b1 into main Aug 31, 2026
13 checks passed
@hallerite
hallerite deleted the chore/bump-renderers-0.1.11 branch August 31, 2026 18:06
xeophon pushed a commit that referenced this pull request Aug 31, 2026
Follow-up to #2478, which removed the legacy `RendererClient`. v0 was
already deprecated ("will be fully removed in a future release") — this
removes the rest of it.

## Summary

- **`verifiers/legacy/`** — the whole v0 package (envs, rubrics,
parsers, clients, scripts, serve, gepa, …).
- **Package-root alias machinery** in `verifiers/__init__.py`: the
`LegacyAliasFinder` meta-path finder that answered v0 modules at their
historical top-level paths (`verifiers.envs`, `verifiers.types`, `import
verifiers as vf`), plus the `__getattr__`/`__dir__` forwarding. The root
module now only carries `__version__`.
- **`verifiers/cli/`** — the host-application plugin surface (Prime
plugin contract) whose commands wrapped `verifiers.legacy.scripts.*`,
and the
`vf-eval`/`vf-gepa`/`vf-init`/`vf-install`/`vf-setup`/`vf-build`/`vf-tui`
console scripts.
- **Top-level legacy tests** — every `tests/*.py` exercised the v0 API;
`tests/v1/` is untouched. The three harness markers the root conftest
registered (`claude_code`, `openclaw`, `hermes_agent`) move to the
pyproject markers list (`--strict-markers` needs them for the v1 e2e
matrix).
- **Legacy-only dependencies**: `openai-agents`, `aiolimiter`,
`setproctitle`, `requests` (main),
`nest-asyncio`/`reasoning-gym`/`stagehand`/`python-dotenv`/`nltk`/`textarena`
(dev group), and the `rg`/`browser`/`notebook` extras.
`ta`/`harbor`/`modal`/`openenv`/`nemo-gym` stay — v1 tasksets and
environments use them.
- **Docs**: `docs/legacy/` removed; `/v0/*` and `/legacy/*` redirect to
`/overview`.
- **CI**: the legacy pytest step is dropped (it would collect nothing);
the HF tokenizer cache key hashes `uv.lock` alone (it hashed the
renderer test files deleted in #2478).
- **`[tool.ty.overrides]`** for the legacy composable tasksets removed.

The v1 stack is unaffected: nothing under `verifiers/v1` or
`environments/` imported the legacy surface (verified by sweeping for
both `verifiers.legacy` and the aliased top-level module paths).

## Verification (re-run after rebasing onto current main)

- uv lock --check
- uv run --locked --python 3.13 ty check verifiers
- uv run --locked ruff check / ruff format --check
- uv run --locked pytest tests/v1 -m 'not e2e' → 71 passed
- `import verifiers, verifiers.v1` clean on the synced env

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **High Risk**
> This is a breaking removal of the entire v0 public API, CLI
entrypoints, and documentation; downstream code still on
`verifiers.envs` / `vf-*` scripts will fail until migrated to v1.
> 
> **Overview**
> This PR **fully removes the deprecated v0 stack** (`import verifiers
as vf`, `verifiers/legacy/`, and the package-root alias machinery). The
root `verifiers` package now only exposes **`__version__`**; all
supported APIs live under **`verifiers.v1`**.
> 
> **Packaging & tooling:** Drops legacy console scripts (`vf-eval`,
`vf-gepa`, etc.) and the Prime CLI plugin that wrapped
`verifiers.legacy.scripts`. Trims **legacy-only dependencies** and
extras (`rg`, `browser`, `notebook`, …) while keeping extras still used
by v1. Removes **`[tool.ty.overrides]`** for legacy composable tasksets.
> 
> **Tests & CI:** Deletes the entire top-level **`tests/*.py`** suite
(v0-only); CI no longer runs the old `tests/` pytest job and runs **v1
tests only** with standalone coverage. HF tokenizer cache keys hash
**`uv.lock`** only. Pytest markers for harness e2e axes move into
**`pyproject.toml`** (replacing the deleted root `conftest`).
> 
> **Docs:** Removes **`docs/legacy/`** and the Mintlify **Legacy (v0)**
nav group; **`/v0/*` and `/legacy/*`** redirect to **`/overview`**,
which now states v0 has been removed.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
debe784. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope will only edit the content between these invisible
markers, and the markers themselves will not be visible in the GitHub
rendered markdown. -->
<!-- If you delete either of the start / end markers from your PR's
description, Macroscope will append its summary at the bottom of the
description. -->
> [!NOTE]
> ### Remove the legacy (v0) stack and its import aliasing
> - Deletes the `verifiers.legacy` module and removes the
`LegacyAliasFinder` / `__getattr__` fallback in
[verifiers/__init__.py](https://github.com/PrimeIntellect-ai/verifiers/pull/2480/files#diff-3667172df996e6596aa8d26557b92b4cb78ee7d2280a3cae14623ce4677e781e)
that mapped `verifiers.<name>` to `verifiers.legacy.<name>`.
> - Strips legacy console scripts (`vf-eval`, `vf-gepa`, `vf-init`,
`vf-install`, `vf-setup`, `vf-build`, `vf-tui`) and runtime deps
(`openai-agents`, `requests`, `aiolimiter`, `setproctitle`) from
[pyproject.toml](https://github.com/PrimeIntellect-ai/verifiers/pull/2480/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711).
> - Removes the Legacy (v0) docs section in
[docs/mint.json](https://github.com/PrimeIntellect-ai/verifiers/pull/2480/files#diff-c91a604899dfef4b2494c317f4fd39a7f22b79986095f580399347293d534deb)
and redirects all `/legacy/*` paths to `/overview`.
> - Simplifies [the test
workflow](https://github.com/PrimeIntellect-ai/verifiers/pull/2480/files#diff-faff1af3d8ff408964a57b2e475f69a6b7c7b71c9978cccc8f471798caac2c88)
to only run `tests/v1`.
> - Behavioral Change: any import or attribute access that relied on the
v0 aliasing (`verifiers.<name>` → `verifiers.legacy.<name>`) or the
removed console scripts will break; the package no longer pulls in the
stripped dependencies at install time.
>
> <!-- Macroscope's review summary starts here -->
>
> <sup><a href="https://app.macroscope.com">Macroscope</a> summarized
debe784.</sup>
> <!-- Macroscope's review summary ends here -->
>
<!-- Macroscope's pull request summary ends here -->

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants