The standard package installer for Python, used to install packages from the Python Package Index (PyPI) and other indexes.
mgedmin/check-manifest
A command-line tool that checks whether a Python package's sdist includes all version-controlled files, and can update MANIFEST.in to fix gaps.
- Stars
- 293
- Forks
- 44
- Open issues
- 29
- Last commit
- 20 days ago
What is it?
check-manifest is a command-line tool for Python package authors. It compares the files tracked in version control (such as git or Mercurial) with the contents of the source distribution (sdist) that gets built, and reports any files that are missing from the package. This catches a common packaging mistake where tests, configuration or data files are left out of a release uploaded to the Python Package Index.
When run with the update option, the tool appends suggested include rules to MANIFEST.in so the missing files are picked up on the next build. Users can also create a MANIFEST.in if none exists, and ignore specific files or patterns through settings in pyproject.toml, setup.cfg or tox.ini.
The tool can run directly from the shell or as a pre-commit hook, so the check can run automatically before each commit. It is configured through command-line flags and the [tool.check-manifest] section of pyproject.toml, or the [check-manifest] section of setup.cfg or tox.ini.
Key features
- 01Compares version-controlled files against the built sdist and lists anything missing.
- 02Can append suggested include rules to MANIFEST.in automatically.
- 03Creates a MANIFEST.in when one is missing.
- 04Lets you ignore files or patterns via pyproject.toml, setup.cfg or tox.ini.
- 05Works as a pre-commit hook.
Use cases
- Verifying that a Python package uploaded to PyPI contains all of its tests and data files.
- Running an automatic packaging check before each git commit via pre-commit.
- Fixing an incomplete MANIFEST.in after a project restructure.
Quick start
- 1
Install check-manifest from PyPI
pip install check-manifest - 2
Change into your Python package's source directory
cd ~/src/mygreatpackage - 3
Run check-manifest to compare version-controlled files with the sdist
check-manifest
Topics
FAQ
- What is check-manifest?
- A command-line tool that checks whether a Python package's sdist includes all version-controlled files, and can update MANIFEST.in to fix gaps. check-manifest is a command-line tool for Python package authors. It compares the files tracked in version control (such as git or Mercurial) with the contents of the source distribution (sdist) that gets built, and reports any files that are missing from the package. This catches a common packaging mistake where tests, configuration or data files are left out of a release uploaded to the Python Package Index.
- Is check-manifest free to use? What license does it have?
- check-manifest is open source under the MIT license. Check the license terms before using it in commercial products.
- Is check-manifest still maintained?
- Actively maintained. The last commit to check-manifest was on Oct 18, 2026.
- What can I use check-manifest for?
- Verifying that a Python package uploaded to PyPI contains all of its tests and data files. Running an automatic packaging check before each git commit via pre-commit. Fixing an incomplete MANIFEST.in after a project restructure.
- How do I install check-manifest?
- Install check-manifest from PyPI: pip install check-manifest Change into your Python package's source directory: cd ~/src/mygreatpackage Run check-manifest to compare version-controlled files with the sdist: check-manifest
- Where can I get check-manifest?
- The source code and installation instructions are on GitHub: https://github.com/mgedmin/check-manifest
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Official build system repository for Setuptools, the Python packaging library used to build and distribute Python projects.
A simple tool for building and publishing pure-Python packages and modules to PyPI with minimal configuration.
A Python project generator that bootstraps installable, PyPI-ready packages with tox, pytest, Sphinx docs and Git versioning preconfigured.
A command-line utility for uploading Python source and wheel distributions to PyPI, independent of the build system used.
Black is an opinionated, deterministic Python code formatter that rewrites files in place with minimal diffs.