Skip to content

ci: tests, docs build and the optimizer extras on GitHub Actions - #16

Draft
haizhongzheng wants to merge 3 commits into
mainfrom
ci/tests
Draft

haizhongzheng wants to merge 3 commits into
mainfrom
ci/tests

Conversation

@haizhongzheng

Copy link
Copy Markdown
Member

The repository had no CI: the 96 tests were run by hand before each merge. This adds .github/workflows/test.yml.

What runs

Job When What
tests (Python 3.11, 3.12) every PR, push to main pip install -e '.[test]' in a clean environment; import harnessadapter, harnessadapter --help, harnessadapter backends list; pytest tests -q -rs with bubblewrap installed (a probe step reports whether the runner can make namespaces; the sandbox tests skip if not)
docs every PR, push to main sphinx -W --keep-going -b html docs
extras push to main, manual pip install -e '.[test,gepa,skillopt]' and tests/test_optimizer_evolvers.py (the extras install from git and take minutes)

Nothing here calls a model, needs a key, a GPU or a CLI agent; those paths keep their manual entry points (the examples' launchers).

Verified locally

  • A clean Python 3.11 venv: install, import, console script, pytest tests: 90 passed, 6 skipped (the extras).
  • sphinx -W builds the docs without warnings.

Found on the way, not changed here

The learner sandbox binds the resolved path of every visible directory, not the path by which it is reached. On a machine where ~/.cache is a symlink to another filesystem, a venv under ~/.cache is bound at its real path only, /usr/bin/env python3 follows PATH to the symlinked path, and the mwm Evolver's fake codex fails to start (6 of 7 test_mwm_evolver.py tests). The same venv at its real path passes. The repository's own .venv sits inside the checkout, which is bound whole, so this never showed. GitHub's runners keep Python under a real directory.

🤖 Generated with Claude Code

haizhongzheng and others added 3 commits October 18, 2026 12:03
Every pull request and push to main installs the package in a clean environment on Python 3.11 and 3.12,
checks that it imports and the console script runs, and runs the test suite with bubblewrap installed (its
tests skip where the runner cannot make namespaces). The documentation builds with warnings as errors. The
gepa and skillopt extras, which install from git, are tested in a separate job on pushes to main and on
request, not on every pull request.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n 2026-10-19)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@haizhongzheng
haizhongzheng marked this pull request as draft October 18, 2026 18:31
@haizhongzheng
haizhongzheng force-pushed the main branch 2 times, most recently from 15884ff to 7124bb5 Compare October 19, 2026 20:58

This branch has not been deployed

No deployments
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