Check MANIFEST.in in a Python source package for completeness
Project description
check-manifest
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 MANIFEST.in:
$ check-manifest -u -v listing source files under version control: 6 files and directories building an sdist: check-manifest-0.7.tar.gz: 4 files and directories lists of files in version control and sdist do not match! 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
Command-line reference
$ check-manifest --help usage: check-manifest [-h] [--version] [-v] [-c] [-u] [-p PYTHON] [--ignore patterns] [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 --version show program's version number and exit -v, --verbose more verbose output (default: False) -c, --create create a MANIFEST.in if missing (default: False) -u, --update append suggestions to MANIFEST.in (implies --create) (default: False) -p PYTHON, --python PYTHON use this Python interpreter for running setup.py sdist (default: /home/mg/.venv/bin/python) --ignore patterns ignore files/directories matching these comma- separated patterns (default: None) --ignore-bad-ideas patterns ignore bad idea files/directories matching these comma-separated patterns (default: [])
Configuration
You can tell check-manifest to ignore certain file patterns by adding a check-manifest section to your package’s setup.cfg. Example:
[check-manifest] ignore = .travis.yml
The following options are recognized:
- ignore
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
PKG-INFO *.egg-info *.egg-info/* setup.cfg .hgtags .hgignore .gitignore .bzrignore *.mo
- ignore-default-rules
If set to true, your ignore patterns will replace the default ignore list instead of adding to it.
- ignore-bad-ideas
A list of newline separated filename patterns that will be ignored by check-manifest’s generated files check. Use this if you want to keep generated files in your version control system, even though it is generally a bad idea.
Changelog
0.34 (2016-09-14)
Fix WindowsError due to presence of read-only files (#74).
0.33 (2016-08-29)
Fix WindowsError due to git submodules in subdirectories (#73). Contributed by Loren Gordon.
0.32 (2016-08-16)
New config/command line option to ignore bad ideas (ignore-bad-ideas) (issue #67). Contributed by Brecht Machiels.
Files named .hgsigs are ignored by default. Contributed by Jakub Wilk.
0.31 (2016-01-28)
Drop Python 3.2 support.
Ignore commented-out lines in MANIFEST.in (issue #66).
0.30 (2015-12-10)
0.29 (2015-11-21)
Fix –python with just a command name, to be found in path (issue #57).
0.28 (2015-11-11)
0.27 (2015-11-02)
Fix utter breakage on Windows, introduced in 0.26 (issue #52). (The bug – clearing the environment unnecessarily – could probably also cause locale-related problems on other OSes.)
0.26 (2015-10-30)
Do not complain about missing .gitattributes file (PR #50).
Normalize unicode representation and case of filenames. (issue #47).
Support installation via zc.buildout better (issue #35).
Drop Python 2.6 support because one of our test dependencies (mock) dropped it. This also means we no longer use environment markers.
0.25 (2015-05-27)
Stop dynamic computation of install_requires in setup.py: this doesn’t work well in the presence of the pip 7 wheel cache. Use PEP-426 environment markers instead (this means we now require setuptools >= 0.7, and pip >= 6.0, and wheel >= 0.24).
0.24 (2015-03-26)
Make sure setup.py not being added to the VCS doesn’t cause hard-to-understand errors (issue #46).
0.23 (2015-02-12)
0.22 (2014-12-23)
More terse output by default; use the new -v (--verbose) flag to see all the details.
Warn the user if MANIFEST.in is missing (issue #31).
Fix IOError when files listed under version control are missing (issue #32).
Improved wording of the match/do not match messages (issue #34).
Handle a relative –python path (issue #36).
Warn about leading and trailing slashes in MANIFEST.in (issue #37).
Ignore .travis.yml by default (issue #39).
Suggest a rule for Makefile found deeper in the source tree.
0.21 (2014-06-13)
Don’t drop setup.cfg when copying version-controlled files into a clean temporary directory (issue #29).
0.20 (2014-05-14)
0.19 (2014-02-09)
0.18 (2014-01-30)
0.17 (2013-10-10)
Read the existing MANIFEST.in file for files to ignore (issue #19).
0.16 (2013-10-01)
Fix Subversion status parsing in the presence of svn usernames longer than 12 characters (issue #18).
0.15 (2013-09-20)
Normalize the paths of all files, avoiding some duplicate misses of directories. (issue #16). [maurits]
0.14 (2013-08-28)
0.13 (2013-07-31)
0.12 (2013-05-15)
Add suggestion pattern for Makefile.
More generic suggestion patterns, should cover almost anything.
zest.releaser integration: skip check-release for non-Python packages (issue #9).
0.11 (2013-03-20)
Make sure MANIFEST.in is not ignored even if it hasn’t been added to the VCS yet (issue #7).
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 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).
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 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 an ‘exceptions.Exception’ object but received a ‘str’).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for check_manifest-0.34-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edb2adb62088f3249d28bf1b836e5cf3ba8e3cc8637dd3c19e237dcc697d2039 |
|
MD5 | 58c8d14da4a002f3479dc138f7a2134d |
|
BLAKE2b-256 | 3caffeefa19ab2bf616becc850898f3f4414110969174f0d4abe58141f197cf5 |