Check MANIFEST.in in a Python source package for completeness
Are you a Python developer? Have you uploaded packages to the Python Package Index? Have you accidentally uploaded broken packages with some files missing? If so, check-manifest is for you.
$ pip install check-manifest $ cd ~/src/mygreatpackage $ check-manifest
You can ask the script to help you update your MANIFEST.in:
$ check-manifest -u listing source files under version control: 6 files and directories building an sdist: check-manifest-0.7.tar.gz: 4 files and directories files in version control do not match the sdist! missing from sdist: tests.py tox.ini suggested MANIFEST.in rules: include *.py include tox.ini updating MANIFEST.in $ cat MANIFEST.in include *.rst # added by check_manifest.py include *.py include tox.ini
$ check-manifest --help usage: check-manifest [-h] [-c] [-u] [source_tree] Check a Python MANIFEST.in file for completeness positional arguments: source_tree location for the source tree (default: .) optional arguments: -h, --help show this help message and exit -c, --create create a MANIFEST.in if missing (default: False) -u, --update append suggestions to MANIFEST.in (implies --create) (default: False)
- If you’ve got a setuptools plugin (e.g. setuptools_git) installed, check-manifest may not notice that your MANIFEST.in is incomplete.
- check-manifest -u doesn’t say that it cannot add directives for files that don’t match any of its known patterns
- Add suggestion pattern for .travis.yml.
- When check-manifest -u (or -c) doesn’t know how to write a rule matching a particular file, it now apologizes explicitly.
- Copy the source tree to a temporary directory before running python setup.py sdist to avoid side effects from setuptools plugins or stale *.egg-info/SOURCES.txt files (issue #1).
- Warn if *.egg-info or *.mo is actually checked into the VCS.
- Don’t complain if *.mo files are present in the sdist but not in the VCS (issue #2).
- Entry point for zest.releaser. If you install both zest.releaser and check-manifest, you will be asked if you want to check your manifest during fullrelease.
- First release available from the Python Package Index.
- Moved from https://gist.github.com/4277075 to https://github.com/mgedmin/check-manifest
- Added README.rst, CHANGES.rst, setup.py, tox.ini (but no real tests yet), MANIFEST.in, and a Makefile.
- Fixed a bug in error reporting (when setup.py failed, the user would get TypeError: descriptor ‘__init__’ requires a ‘exceptions.Exception’ object but received a ‘str’).