Skip to content

fix: restore PyPI-compatible package description - #725

Merged
mergify[bot] merged 2 commits into
jd:mainfrom
arindamsikder:fix/pypi-package-description
Oct 7, 2026
Merged

mergify[bot] merged 2 commits into
jd:mainfrom
arindamsikder:fix/pypi-package-description

Conversation

@arindamsikder

Copy link
Copy Markdown
Contributor

Summary

Restore a PyPI-compatible package description without changing the README or Sphinx documentation.

Problem

README.rst points to doc/source/index.rst, which contains Sphinx-only directives such as testcode. After #558 switched package metadata to that file, both the wheel and source archive contain a long description that PyPI cannot render. On current main, twine check --strict rejects both artifacts with Unknown directive type "testcode".

Solution

Use an inline reStructuredText description in project.readme, restoring the concise description used before #558 and adding a link to the full documentation. Keep the README symlink, documentation examples, build backend, dependencies and runtime behavior unchanged. Add a release note.

Testing

Executed on Linux with Python 3.11.15 in a credential-free, network-disabled Bubblewrap sandbox:

  • python -m pytest -q -p no:cacheprovider --basetemp=/tmp/pytest: 184 passed, 15 subtests passed on the unchanged baseline.
  • python -m poethepoet all on baseline and final changes: Ruff lint and formatting pass; mypy passes for 19 source files; 184 tests and 35 Sphinx doctests pass; Sphinx HTML build passes.
  • python -m build --no-isolation --outdir dist/fixed: builds the sdist and a wheel from that sdist.
  • python -m twine check --strict dist/fixed/*: both artifacts pass.
  • Regression check: restoring the original readme = "README.rst" metadata makes both rebuilt artifacts fail Twine with the original directive error; restoring this change makes both pass again.
  • git diff --check and an independent read-only review passed.

No PyPI upload, release action or remote workflow rerun was performed. Other Python versions and operating systems were not tested locally. The existing artifact validator supplies the packaging regression check; no new test dependency was added.

Related Issue

Related to #714. This addresses the invalid-description blocker, not publication of the missing release; release/upload remains a maintainer action.

Automation disclosure

Prepared, tested and submitted by Hermes DEV, an autonomous agent, on behalf of @arindamsikder (model: gpt-6-astra). A separate agent reviewed the diff; this is not a claim of human review.

@mergify

mergify Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • ✅ Entered queue — 2026-10-07 11:32 UTC · Rule: default · triggered by merge protections
  • ✅ Checks skipped · PR is already up-to-date
  • ✅ Merged — 2026-10-07 11:32 UTC · at b23844175feb8c62f4ebb0ef0833d993f439fa1f

This pull request spent 11 seconds in the queue, including 1 second running CI.

Required conditions to merge

@mergify
mergify Bot merged commit b238441 into jd:main Oct 7, 2026
10 checks passed
jd added a commit that referenced this pull request Oct 7, 2026
The 9.2.0 release never reached PyPI (#714): the upload rejected the
long description because README.rst contains Sphinx-only directives, and
nothing caught it before the tag. Build the sdist and wheel on every pull
request and run twine check --strict, the same validation PyPI applies,
as part of ci-gate.

This job fails on main until the description itself is fixed (#725).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Change-Id: Ieac149e886392a978c89ad44817516e7ffcfc74d
jd added a commit that referenced this pull request Oct 7, 2026
The 9.2.0 release never reached PyPI (#714): the upload rejected the
long description because README.rst contains Sphinx-only directives, and
nothing caught it before the tag. #725 fixed the description; build the
sdist and wheel on every pull request and run twine check --strict, the
same validation PyPI applies, as part of ci-gate so it cannot regress.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Change-Id: Ieac149e886392a978c89ad44817516e7ffcfc74d
mergify Bot pushed a commit that referenced this pull request Oct 7, 2026
The 9.2.0 release never reached PyPI (#714): the upload rejected the
long description because README.rst contains Sphinx-only directives, and
nothing caught it before the tag. #725 fixed the description; build the
sdist and wheel on every pull request and run twine check --strict, the
same validation PyPI applies, as part of ci-gate so it cannot regress.


Change-Id: Ieac149e886392a978c89ad44817516e7ffcfc74d

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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