Skip to content

Align package metadata extras and Python classifiers#575

Open
leno23 wants to merge 1 commit into
dgenio:mainfrom
leno23:fix/package-metadata-extras-473
Open

Align package metadata extras and Python classifiers#575
leno23 wants to merge 1 commit into
dgenio:mainfrom
leno23:fix/package-metadata-extras-473

Conversation

@leno23

@leno23 leno23 commented Jun 12, 2026

Copy link
Copy Markdown

Closes #473

Summary

  • add the Python 3.13 classifier so package metadata matches the gating CI matrix
  • remove the long-expired no-op [cli] extra and reserved [ann] / [graph] extras that installed dependencies without enabling code paths
  • document intentionally empty install-contract extras and extend readme-version-check to detect classifier/matrix drift

Notes

  • Current main is version 0.14.1, so the checker and docs were aligned to the live repository state rather than the older 0.14.0 text in the issue.

Verification

  • uvx --from ruff ruff format --check scripts/check_readme_version.py tests/test_check_readme_version.py
  • uvx --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.py
  • tmpdir=$(mktemp -d); ln -s /Users/wuyangfan/.local/bin/python3.11 "$tmpdir/python"; PATH="$tmpdir:$PATH" make readme-version-check
  • uvx --with . --with pytest --with pytest-asyncio python -m pytest tests/test_check_readme_version.py -q
  • git diff --check

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread README.md
| `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) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 dgenio left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.txt still contains the removed | `contextweaver[cli]` | Deprecated no-op alias… | row and lacks the new tokenizers row + the install-contract paragraph.
  • make llms-check is a gating CI step (per docs/agent-context/workflows.md), so the PR shows mergeable_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_classifiers and read_ci_python_versions both return [3.10, 3.11, 3.12, 3.13]; check_readme_version.py passes. _version_key sorts numerically, so 3.10 correctly orders after 3.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. (The hnswlib mention in routing/router.py is 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 in docs/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

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.

Package metadata and extras hygiene: classifiers, overdue deprecations, placeholder extras

2 participants