Skip to main content

Check in a Python source package for completeness

Project description


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.

Quick start

$ pip install check-manifest

$ cd ~/src/mygreatpackage
$ check-manifest

You can ask the script to help you update your

$ 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:
suggested rules:
  include *.py
  include tox.ini

$ cat
include *.rst

# added by
include *.py
include tox.ini

Command-line reference

$ check-manifest --help
usage: check-manifest [-h] [-c] [-u] [source_tree]

Check a Python 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 if missing (default: False)
  -u, --update  append suggestions to (implies --create) (default:


You can tell check-manifest to ignore certain file patterns by adding a check-manifest section to your package’s setup.cfg. Example:

ignore =

The following options are recognized:


A list of newline separated filename patterns that will be ignored by check-manifest. Use this if you want to keep files in your version control system that shouldn’t be included in your source distributions. The default ignore list is

If set to true, your ignore patterns will replace the default ignore list instead of adding to it.


0.10 (2013-03-17)

  • check-manifest --version now prints the version number.
  • Don’t apologize for not adding rules for directories (especially after adding rules that include files inside that directory).
  • Python 3 support contributed by Steven Myint.
  • Default ignore patterns can be configured in setup.cfg (issue #3).

0.9 (2013-03-06)

  • 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 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).

0.8 (2013-03-06)

  • 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.

0.7 (2013-03-05)

  • First release available from the Python Package Index.
  • Moved from to
  • Added README.rst, CHANGES.rst,, tox.ini (but no real tests yet),, and a Makefile.
  • Fixed a bug in error reporting (when failed, the user would get TypeError: descriptor ‘__init__’ requires a ‘exceptions.Exception’ object but received a ‘str’).

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
check-manifest-0.10.tar.gz (10.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page