Skip to content

feat!: remove the legacy (v0) stack - #2480

Merged
xeophon merged 1 commit into
mainfrom
rip-out-legacy
Aug 31, 2026
Merged

feat!: remove the legacy (v0) stack#2480
xeophon merged 1 commit into
mainfrom
rip-out-legacy

Conversation

@hallerite

@hallerite hallerite commented Aug 31, 2026

Copy link
Copy Markdown
Member

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 chore: bump renderers to 0.1.11; drop legacy RendererClient #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


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.

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

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 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.
  • Removes the Legacy (v0) docs section in docs/mint.json and redirects all /legacy/* paths to /overview.
  • Simplifies the test workflow 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 summarized debe784.

Remove verifiers.legacy and everything that existed to serve it: the
package-root alias finder that answered v0 modules at their historical
top-level paths (verifiers.envs, verifiers.types, import verifiers as
vf), the verifiers/cli host-plugin surface wrapping the legacy scripts,
the vf-* console entry points, the top-level legacy test suite, the
legacy docs, and the legacy-only dependencies (openai-agents,
aiolimiter, setproctitle, requests) and extras (rg, browser, notebook).

The v1 stack is unaffected: nothing under verifiers/v1 or environments/
imported the legacy surface. The three harness markers that the legacy
root conftest registered (claude_code, openclaw, hermes_agent) move to
the pyproject markers list; CI drops the legacy pytest step and the HF
tokenizer cache key now hashes uv.lock alone.

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 is a repository-wide breaking removal of the v0 Python API, CLI entry points, dependency extras, tests, and documentation. Existing consumers using legacy imports or commands will fail after installation, making the compatibility and release impact too significant for automatic approval.

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

@hallerite
hallerite requested review from mikasenghaas and xeophon and removed request for mikasenghaas August 31, 2026 18:34
@xeophon
xeophon merged commit 66a6064 into main Aug 31, 2026
13 checks passed
@xeophon
xeophon deleted the rip-out-legacy branch August 31, 2026 18:35
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