Skip to content

refactor: extract txtar contract runner into pytest-txtar - #26

Merged
A merged 9 commits into
release/1.0.1from
refactor/txtar-runner-extraction
Aug 12, 2026
Merged

refactor: extract txtar contract runner into pytest-txtar#26
A merged 9 commits into
release/1.0.1from
refactor/txtar-runner-extraction

Conversation

@A

@A A commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Overview

Extracts the e2e contract-corpus runner into a standalone, published pytest-txtar package and rewires booping as its first consumer.

  • Package core — txtar parser (port of golang.org/x/tools/txtar, BSD-3 attribution) plus a pytest-free runner core (case/sandbox/compare/update) parameterized by a frozen TxtarSpec; no booping references.
  • Pytest plugin layer*.txtar files collect as native pytest items (nodeid = case path), failures render the core's unified diff, consumers supply their spec via a pytest_txtar_spec(config) hook in conftest.py, rebaselining via --txtar-update (fixed to rewrite only genuinely mismatching cases — the old runner flattened holding [..] wildcards).
  • Booping rewiree2e/run.py + e2e/_txtar.py deleted; e2e/conftest.py supplies the spec; just e2e becomes uv run pytest e2e with patterns mapped to -k; the generic case-format spec moved to the package README, e2e/README.md keeps booping-specific notes.
  • Repo split + publish — package lives at A/pytest-txtar with its own CI (test job on push/PR, tag-gated publish authenticating via the PYPI_TOKEN secret); v0.1.0 is live on PyPI and booping depends on pytest-txtar>=0.1.0 with no path source and no in-repo copy.

All 38 corpus cases pass unmodified; just ci interface unchanged.

Plan: vault/plans/202608121206_txtar-runner-extraction/

🤖 Generated with Claude Code

A and others added 9 commits August 12, 2026 12:36
…usable module — package core: txtar parser and pytest-free runner core

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…usable module — pytest plugin layer

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…usable module — booping e2e rewired onto pytest-txtar

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…usable module split pytest-txtar into its own repo and depend on the published 0.1.0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@A
A merged commit c41c0c4 into release/1.0.1 Aug 12, 2026
3 checks passed
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.

1 participant