Skip to content

fix: include tests/ (and tox.ini) in the flit sdist - #420

Closed
BetterAndBetterII wants to merge 2 commits into
executablebooks:masterfrom
BetterAndBetterII:fix/sdist-include-tests
Closed

BetterAndBetterII wants to merge 2 commits into
executablebooks:masterfrom
BetterAndBetterII:fix/sdist-include-tests

Conversation

@BetterAndBetterII

Copy link
Copy Markdown
Contributor

Summary

  • Fixes sdist is missing tests #261: PyPI sdists shipped tox.ini but omitted tests/, so distro packagers could not run the project's tests from the source tarball.
  • flit_core's default file set does not pull in VCS extras the way full flit does, and tests/ was also listed under [tool.flit.sdist] exclude. Explicitly include tests/ and tox.ini; keep docs/ and benchmarking/ excluded.
  • Adds a small regression test that locks the flit sdist include/exclude table.

Test plan

  • python -m build --sdist and confirm the tarball contains tests/ (44 files) and tox.ini
  • pytest tests/test_packaging/test_sdist_includes_tests.py

BetterAndBetterII and others added 2 commits September 3, 2026 21:36
Fixes executablebooks#261 — flit_core sdists omitted the test suite while shipping
tox.ini, so distro packagers could not run the project's tests from the
PyPI source tarball. Explicitly include tests/ and tox.ini; keep docs/
and benchmarking/ excluded.
chrisjsewell added a commit that referenced this pull request Sep 9, 2026
## Summary

Supersedes #420 by @BetterAndBetterII (GitHub refused to update that
fork branch because the merge would carry workflow-file changes); their
commits are carried here verbatim with authorship preserved (thank
you!). Closes #261, open since 2023 from a distro packager.

PyPI sdists shipped `tox.ini` but omitted `tests/`, so packagers could
not run the suite from the tarball. `tests/` is moved out of
`[tool.flit.sdist] exclude` and `tests/` plus `tox.ini` are explicitly
included; `docs/` and `benchmarking/` stay excluded.

## Commits

1. `fix: include tests/ (and tox.ini) in the flit sdist` and the
pre-commit.ci autofix — the contributor's commits, unchanged.
2. `🧪 TEST: Assert sdist contents by building the sdist` — the original
test only string-matched `pyproject.toml`. It now builds a real sdist
with `flit_core` (no network, ~0.15 s) and asserts
`markdown_it/__init__.py`, `tests/test_api/test_main.py` and `tox.ini`
are members and nothing under `docs/` or `benchmarking/` is. It skips
cleanly when `flit_core` is unavailable or when not run from a source
checkout. Verified negative: with the `include` reverted, the test fails
on `tests/test_api/test_main.py`.

## Verification

- 994 tests pass; the sdist test runs (not skipped) with flit_core
4.0.2, which is what `pyproject.toml` now allows after #414.
- All pre-commit hooks pass under the new pins.
- No changelog entry in the commits; suggest adding one at release time
under 🔧.

---------

Co-authored-by: Yuzhong Zhang <BetterAndBetterII@users.noreply.github.com>

chrisjsewell commented Sep 9, 2026

Copy link
Copy Markdown
Member

Thanks @BetterAndBetterII! Your commits have been merged verbatim, with your authorship preserved, via #426 (GitHub would not let us bring this fork branch up to date because the merge carried workflow-file changes). #426 also turned the regression test into one that builds a real sdist and checks its contents. Closing this in favour of #426; it will be in the next release, and #261 is closed.

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.

sdist is missing tests

2 participants