Align package metadata extras and Python classifiers#575
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f940a02031
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| | `contextweaver[voice]` | Pipecat voice-agent integration | | ||
| | `contextweaver[retrieval]` | Fuzzy lexical matching backend (`rapidfuzz`) | | ||
| | `contextweaver[embeddings]` | Sentence-transformers embedding backend | | ||
| | `contextweaver[tokenizers]` | Tokenizer install contract (core `tiktoken` today) | |
There was a problem hiding this comment.
Regenerate the committed LLM docs
These README/doc edits change content that is mirrored into the generated llms-full.txt, but the generated artifact was not updated. I checked the gating LLM-docs step with python scripts/gen_llms.py --check, and it now fails with llms drift detected in: llms-full.txt, so the CI job at .github/workflows/ci.yml will block this commit until make llms is run and the result is committed.
Useful? React with 👍 / 👎.
dgenio
left a comment
There was a problem hiding this comment.
Review: Align package metadata extras and Python classifiers (#473)
Nicely scoped change — the classifier-drift guard is well-built and well-tested, and every acceptance criterion in #473 is met except the CI is currently red on a gating step.
Blocker — regenerate the committed LLM docs
README.md is a source document for the generated llms-full.txt (it's first in the DOC list in scripts/gen_llms.py), and the install-extras edits change content that is mirrored into that artifact, which was not regenerated.
- Verified locally:
python scripts/gen_llms.py --check→ exit 1,llms drift detected in: llms-full.txt. - The committed
llms-full.txtstill contains the removed| `contextweaver[cli]` | Deprecated no-op alias… |row and lacks the newtokenizersrow + the install-contract paragraph. make llms-checkis a gating CI step (perdocs/agent-context/workflows.md), so the PR showsmergeable_state: blocked.
Fix: run make llms and commit the regenerated llms.txt / llms-full.txt. This is the same point the automated Codex review raised inline on README.md. Once that artifact is committed, this is an easy approve.
What's solid (verified)
- Classifiers ↔ CI matrix in sync:
read_pyproject_python_classifiersandread_ci_python_versionsboth return[3.10, 3.11, 3.12, 3.13];check_readme_version.pypasses._version_keysorts numerically, so3.10correctly orders after3.9. - Drift guard detects both missing and extra versions; new tests cover both directions, the in-sync case, and
[project]-table scoping. - Extra removals (
cli/ann/graph) are clean — no dangling references in code or docs, and[all]was updated. (Thehnswlibmention inrouting/router.pyis an unrelated comment on the embeddings late-import path, not the removed[ann]extra.) [cli]removal is policy-compliant: deprecated since v0.5, far beyond the one-minor-release window indocs/stability.md.
Non-blocking note
_CI_PYTHON_MATRIX_RE matches the first python-version: [...] list in ci.yml. That's correct today (the gating test matrix is first), but it would silently validate against the wrong list if a job with a different matrix were ever added above it. Consider anchoring to the test job's matrix or asserting a single match. Non-blocking.
Decision: REQUEST_CHANGES
The implementation is correct and complete against #473; the only thing standing between this and approval is the regenerated llms-full.txt/llms.txt. Run make llms, commit, and ping for re-review.
Generated by Claude Code
Closes #473
Summary
[cli]extra and reserved[ann]/[graph]extras that installed dependencies without enabling code pathsreadme-version-checkto detect classifier/matrix driftNotes
mainis version0.14.1, so the checker and docs were aligned to the live repository state rather than the older0.14.0text in the issue.Verification
uvx --from ruff ruff format --check scripts/check_readme_version.py tests/test_check_readme_version.pyuvx --from ruff ruff check scripts/check_readme_version.py tests/test_check_readme_version.py/Users/wuyangfan/.local/bin/python3.11 scripts/check_readme_version.pytmpdir=$(mktemp -d); ln -s /Users/wuyangfan/.local/bin/python3.11 "$tmpdir/python"; PATH="$tmpdir:$PATH" make readme-version-checkuvx --with . --with pytest --with pytest-asyncio python -m pytest tests/test_check_readme_version.py -qgit diff --check