check-manifest
==============
|buildstatus|_ |appveyor|_ |coverage|_
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 configure check-manifest to ignore certain file patterns using
a ``[tool.check-manifest]`` section in your ``pyproject.toml`` file or
a ``[check-manifest]`` section in either ``setup.cfg`` or
``tox.ini``. Examples::
# pyproject.toml
[tool.check-manifest]
ignore = [".travis.yml"]
# setup.cfg or tox.ini
[check-manifest]
ignore =
.travis.yml
Note that lists are newline separated in the ``setup.cfg`` and
``tox.ini`` files.
The following options are recognized:
ignore
A list of 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
.hgsigs
.hgignore
.gitignore
.bzrignore
.gitattributes
.github/*
.travis.yml
Jenkinsfile
*.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 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.
Version control integration
---------------------------
With `pre-commit <https://pre-commit.com>`_, check-manifest can be part of your
git-workflow. Add the following to your ``.pre-commit-config.yaml``.
.. code-block:: yaml
repos:
- repo: https://github.com/mgedmin/check-manifest
rev: "0.50"
hooks:
- id: check-manifest
If you are running pre-commit without a network, you can utilize
``args: [--no-build-isolation]`` to prevent a ``pip install`` reaching out to
PyPI. This makes ``python -m build`` ignore your ``build-system.requires``,
so you'll want to list them all in ``additional_dependencies``.
.. code-block:: yaml
repos:
- repo: https://github.com/mgedmin/check-manifest
rev: "0.50"
hooks:
- id: check-manifest
args: [--no-build-isolation]
additional_dependencies: [setuptools, wheel, setuptools-scm]
.. |buildstatus| image:: https://github.com/mgedmin/check-manifest/workflows/build/badge.svg?branch=master
.. _buildstatus: https://github.com/mgedmin/check-manifest/actions
.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/mgedmin/check-manifest?branch=master&svg=true
.. _appveyor: https://ci.appveyor.com/project/mgedmin/check-manifest
.. |coverage| image:: https://coveralls.io/repos/mgedmin/check-manifest/badge.svg?branch=master
.. _coverage: https://coveralls.io/r/mgedmin/check-manifest
Changelog
=========
0.50 (2024-10-09)
-----------------
- Add Python 3.12 and 3.13 support.
0.49 (2022-12-05)
-----------------
- Add Python 3.11 support.
- Drop Python 3.6 support.
- Exclude more common dev/test files.
0.48 (2022-03-13)
-----------------
- Add Python 3.10 support.
- Switch to tomli instead of toml, after hearing about PEP-680. tomli will be
included in the Python 3.11 standard library as tomllib, while toml is
apparently unmaintained.
- Fix submodule support when ``.gitmodules`` exists in a subdirectory
(`#153 <https://github.com/mgedmin/check-manifest/issues/153>`_).
Note that this reverts a fix for `#124
<https://github.com/mgedmin/check-manifest/issues/124>`_: git versions before
2.11 are no longer supported.
0.47 (2021-09-22)
-----------------
- Fix ``setuptools_scm`` workaround for packages with dashes in the name
(`#145 <https://github.com/mgedmin/check-manifest/issues/145>`_).
0.46 (2021-01-04)
-----------------
- The `pre-commit <https://pre-commit.com>`__ hook now always uses Python 3.
0.45 (2020-10-31)
-----------------
- Add Python 3.9 support.
- Drop Python 3.5 support.
- Switch from ``pep517`` to `python-build <https://pypi.org/p/build>`__ (
`#128 <https://github.com/mgedmin/check-manifest/pull/128>`__).
- Add ``--no-build-isolation`` option so check-manifest can succeed building
pep517-based distributions without an internet connection. With
``--no-build-isolation``, you must preinstall the ``build-system.requires``
beforehand. (`#128 <https://github.com/mgedmin/check-manifest/pull/128>`__).
0.44 (2020-10-03)
-----------------
- Try to avoid passing ``--recurse-submodules`` to ``git ls`` if the project
doesn't use git submodules (i.e. doesn't have a ``.gitsubmodules`` file).
This should make check-manifest work again with older git versions, as long
as you don't use submodules (`#124
<https://github.com/mgedmin/check-manifest/issues/124>`__).
0.43 (2020-09-21)
-----------------
- Fix collecting files versioned by ``git`` when a project has submodules and
``GIT_INDEX_FILE`` is set. This bug was triggered when ``check-manifest``
was run as part of a git hook (
`#122 <https://github.com/mgedmin/check-manifest/issues/122>`__,
`#123 <https://github.com/mgedmin/check-manifest/pull/123>`__).
Note: check-manifest 0.43 requires ``git`` version 2.11 or later.
0.42 (2020-05-03)
-----------------
- Added ``-q``/``--quiet`` command line argument. This will reduce the verbosity
of informational output, e.g. for use in a CI pipeline.
- Rewrote the ignore logic to be more compatible with setuptools. This might
have introduced some regressions, so please file bugs! One side effect of
this is that ``--ignore`` (or the ``ignore`` setting in the config file)
is now handled the same way as ``global-exclude`` in a ``MANIFEST.in``, which
means:
- it's matched anywhere in the file tree
- it's ignored if it matches a directory
You can ignore directories only by ignoring every file inside it. You
can use ``--ignore=dir/**`` to do that.
This decision is not cast in stone: I may in the future change the
handling of ``--ignore`` to match files and directories, because there's no
reason it has to be setuptools-compatible.
- Drop Python 2.7 support.
0.41 (2020-02-25)
-----------------
- Support `PEP 517`_, i.e. packages using pyproject.toml instead of a setup.py
(`#105 <https://github.com/mgedmin/check-manifest/issues/105>`_).
.. _PEP 517: https://www.python.org/dev/peps/pep-0517/
- Ignore subcommand stderr unless the subcommand fails. This avoids treating
warning messages as filenames. (`#110
<https://github.com/mgedmin/check-manifest/issues/110>`_.)
0.40 (2019-10-15)
-----------------
- Add Python 3.8 support.
0.39 (2019-06-06)
-----------------
- You can now use check-manifest as a `pre-commit <https://pre-commit.com>`_
hook (`#100 <https://github.com/mgedmin/check-manifest/issues/100>`__).
0.38 (2019-04-23)
-----------------
- Add Python 3.7 support.
- Drop Python 3.4 support.
- Added GitHub templates to default ignore patterns.
- Added reading check-manifest config out of ``tox.ini`` or ``pyproject.toml``.
0.37 (2018-04-12)
-----------------
- Drop Python 3.3 support.
- Support packages using ``setuptools_scm``
(`#68 <https://github.com/mgedmin/check-manifest/issues/68>`__).
Note that ``setuptools_scm`` usually makes MANIFEST.in files obsolete.
Having one is helpful only if you intend to build an sdist and then use that
sdist to perform further builds, instead of building from a source checkout.
0.36 (2017-11-21)
-----------------
- Handle empty VCS repositories more gracefully
(`#84 <https://github.com/mgedmin/check-manifest/issues/84>`__).
0.35 (2017-01-30)
-----------------
- Python 3.6 support.
0.34 (2016-09-14)
-----------------
- Fix WindowsError due to presence of read-only files
(`#74 <https://github.com/mgedmin/check-manifest/issues/74>`__).
0.33 (2016-08-29)
-----------------
- Fix WindowsError due to git submodules in subdirectories
(`#73 <https://github.com/mgedmin/check-manifest/pull/73>`__).
Contributed by Loren Gordon.
0.32 (2016-08-16)
-----------------
* New config/command line option to ignore bad ideas (ignore-bad-ideas)
(`issue #67 <https://github.com/mgedmin/check-manifest/issues/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 <https://github.com/mgedmin/check-manifest/issues/66>`__).
0.30 (2015-12-10)
-----------------
* Support git submodules
(`issue #61 <https://github.com/mgedmin/check-manifest/issues/61>`__).
* Revert the zc.buildout support hack from 0.26 because it causes breakage
(`issue #56 <https://github.com/mgedmin/check-manifest/issues/56>`__).
* Improve non-ASCII filename handling with Bazaar on Windows.
0.29 (2015-11-21)
-----------------
* Fix --python with just a command name, to be found in path (`issue #57
<https://github.com/mgedmin/check-manifest/issues/57>`__).
0.28 (2015-11-11)
-----------------
* Fix detection of git repositories when .git is a file and not a directory (`#53
<https://github.com/mgedmin/check-manifest/pull/53>`__). One situation
where this occurs is when the project is checked out as a git submodule.
* Apply ignore patterns in subdirectories too (`#54
<https://github.com/mgedmin/check-manifest/issues/54>`__).
0.27 (2015-11-02)
-----------------
* Fix utter breakage on Windows, introduced in 0.26 (`issue #52
<https://github.com/mgedmin/check-manifest/issues/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
<https://github.com/mgedmin/check-manifest/pull/50>`__).
* Normalize unicode representation and case of filenames. (`issue #47
<https://github.com/mgedmin/check-manifest/issues/47>`__).
* Support installation via zc.buildout better (`issue #35
<https://github.com/mgedmin/check-manifest/issues/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
<https://github.com/mgedmin/check-manifest/issues/46>`__).
0.23 (2015-02-12)
-----------------
* More reliable svn status parsing; now handles svn externals (`issue #45
<https://github.com/mgedmin/check-manifest/issues/45>`__).
* The test suite now skips tests for version control systems that aren't
installed (`issue #42
<https://github.com/mgedmin/check-manifest/issues/42>`__).
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
<https://github.com/mgedmin/check-manifest/issues/31>`__).
* Fix IOError when files listed under version control are missing (`issue #32
<https://github.com/mgedmin/check-manifest/issues/32>`__).
* Improved wording of the match/do not match messages (`issue #34
<https://github.com/mgedmin/check-manifest/issues/34>`__).
* Handle a relative --python path (`issue #36
<https://github.com/mgedmin/check-manifest/issues/36>`__).
* Warn about leading and trailing slashes in MANIFEST.in (`issue #37
<https://github.com/mgedmin/check-manifest/issues/37>`__).
* Ignore .travis.yml by default (`issue #39
<https://github.com/mgedmin/check-manifest/issues/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
<https://github.com/mgedmin/check-manifest/issues/29>`__).
0.20 (2014-05-14)
-----------------
* Restore warning about files included in the sdist but not added to the
version control system (`issue #27
<https://github.com/mgedmin/check-manifest/issues/27>`__).
* Fix ``check-manifest relative/pathname`` (`issue #28
<https://github.com/mgedmin/check-manifest/issues/28>`__).
0.19 (2014-02-09)
-----------------
* More correct MANIFEST.in parsing for exclusion rules.
* Some effort was expended towards Windows compatibility.
* Handles non-ASCII filenames, as long as they're valid in your locale
(`issue #23 <https://github.com/mgedmin/check-manifest/issues/23>`__,
`#25 <https://github.com/mgedmin/check-manifest/issues/23>`__).
0.18 (2014-01-30)
-----------------
* Friendlier error message when an external command cannot be found
(`issue #21 <https://github.com/mgedmin/check-manifest/issues/21>`__).
* Add suggestion pattern for `.coveragerc`.
* Python 2.6 support
(`issue #22 <https://github.com/mgedmin/check-manifest/issues/22>`__).
0.17 (2013-10-10)
-----------------
* Read the existing MANIFEST.in file for files to ignore
(`issue #19 <https://github.com/mgedmin/check-manifest/issues/19>`__).
0.16 (2013-10-01)
-----------------
* Fix Subversion status parsing in the presence of svn usernames longer than 12
characters (`issue #18 <https://github.com/mgedmin/check-manifest/issues/18>`__).
0.15 (2013-09-20)
-----------------
* Normalize the paths of all files, avoiding some duplicate misses of
directories. (`issue #16 <https://github.com/mgedmin/check-manifest/issues/16>`__).
[maurits]
0.14 (2013-08-28)
-----------------
* Supports packages that do not live in the root of a version control
repository (`issue #15 <https://github.com/mgedmin/check-manifest/issues/15>`__).
* More reliable svn support: detect files that have been added but not
committed (or committed but not updated).
* Licence changed from GPL (v2 or later) to MIT
(`issue #12 <https://github.com/mgedmin/check-manifest/issues/12>`__).
0.13 (2013-07-31)
-----------------
* New command line option: --ignore
(`issue #11 <https://github.com/mgedmin/check-manifest/issues/11>`__).
Contributed by Steven Myint.
* New command line option: -p, --python. Defaults to the Python you used to
run check-manifest. Fixes issues with packages that require Python 3 to run
setup.py (`issue #13 <https://github.com/mgedmin/check-manifest/issues/13>`__).
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 <https://github.com/mgedmin/check-manifest/issues/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 <https://github.com/mgedmin/check-manifest/issues/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 <https://github.com/mgedmin/check-manifest/issues/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 <https://github.com/mgedmin/check-manifest/issues/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 <https://github.com/mgedmin/check-manifest/issues/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``.
.. _zest.releaser: https://pypi.python.org/pypi/zest.releaser
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'`).
Raw data
{
"_id": null,
"home_page": "https://github.com/mgedmin/check-manifest",
"name": "check-manifest",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "distutils, setuptools, packaging, manifest, checker, linter",
"author": "Marius Gedminas",
"author_email": "marius@gedmin.as",
"download_url": "https://files.pythonhosted.org/packages/a8/ab/7607952f2c8d34c4124309dd3ea17c256fd3420a4ade01322daf9402b0b5/check_manifest-0.50.tar.gz",
"platform": null,
"description": "check-manifest\n==============\n\n|buildstatus|_ |appveyor|_ |coverage|_\n\nAre you a Python developer? Have you uploaded packages to the Python Package\nIndex? Have you accidentally uploaded *broken* packages with some files\nmissing? If so, check-manifest is for you.\n\nQuick start\n-----------\n\n::\n\n $ pip install check-manifest\n\n $ cd ~/src/mygreatpackage\n $ check-manifest\n\nYou can ask the script to help you update your MANIFEST.in::\n\n $ check-manifest -u -v\n listing source files under version control: 6 files and directories\n building an sdist: check-manifest-0.7.tar.gz: 4 files and directories\n lists of files in version control and sdist do not match!\n missing from sdist:\n tests.py\n tox.ini\n suggested MANIFEST.in rules:\n include *.py\n include tox.ini\n updating MANIFEST.in\n\n $ cat MANIFEST.in\n include *.rst\n\n # added by check_manifest.py\n include *.py\n include tox.ini\n\n\nCommand-line reference\n----------------------\n\n::\n\n $ check-manifest --help\n usage: check-manifest [-h] [--version] [-v] [-c] [-u] [-p PYTHON]\n [--ignore patterns]\n [source_tree]\n\n Check a Python MANIFEST.in file for completeness\n\n positional arguments:\n source_tree location for the source tree (default: .)\n\n optional arguments:\n -h, --help show this help message and exit\n --version show program's version number and exit\n -v, --verbose more verbose output (default: False)\n -c, --create create a MANIFEST.in if missing (default: False)\n -u, --update append suggestions to MANIFEST.in (implies --create)\n (default: False)\n -p PYTHON, --python PYTHON\n use this Python interpreter for running setup.py sdist\n (default: /home/mg/.venv/bin/python)\n --ignore patterns ignore files/directories matching these comma-\n separated patterns (default: None)\n --ignore-bad-ideas patterns\n ignore bad idea files/directories matching these\n comma-separated patterns (default: [])\n\n\nConfiguration\n-------------\n\nYou can configure check-manifest to ignore certain file patterns using\na ``[tool.check-manifest]`` section in your ``pyproject.toml`` file or\na ``[check-manifest]`` section in either ``setup.cfg`` or\n``tox.ini``. Examples::\n\n # pyproject.toml\n [tool.check-manifest]\n ignore = [\".travis.yml\"]\n\n # setup.cfg or tox.ini\n [check-manifest]\n ignore =\n .travis.yml\n\nNote that lists are newline separated in the ``setup.cfg`` and\n``tox.ini`` files.\n\nThe following options are recognized:\n\nignore\n A list of filename patterns that will be ignored by check-manifest.\n Use this if you want to keep files in your version control system\n that shouldn't be included in your source distributions. The\n default ignore list is ::\n\n PKG-INFO\n *.egg-info\n *.egg-info/*\n setup.cfg\n .hgtags\n .hgsigs\n .hgignore\n .gitignore\n .bzrignore\n .gitattributes\n .github/*\n .travis.yml\n Jenkinsfile\n *.mo\n\nignore-default-rules\n If set to ``true``, your ``ignore`` patterns will replace the default\n ignore list instead of adding to it.\n\nignore-bad-ideas\n A list of filename patterns that will be ignored by\n check-manifest's generated files check. Use this if you want to\n keep generated files in your version control system, even though\n it is generally a bad idea.\n\n\nVersion control integration\n---------------------------\n\nWith `pre-commit <https://pre-commit.com>`_, check-manifest can be part of your\ngit-workflow. Add the following to your ``.pre-commit-config.yaml``.\n\n.. code-block:: yaml\n\n repos:\n - repo: https://github.com/mgedmin/check-manifest\n rev: \"0.50\"\n hooks:\n - id: check-manifest\n\nIf you are running pre-commit without a network, you can utilize\n``args: [--no-build-isolation]`` to prevent a ``pip install`` reaching out to\nPyPI. This makes ``python -m build`` ignore your ``build-system.requires``,\nso you'll want to list them all in ``additional_dependencies``.\n\n.. code-block:: yaml\n\n repos:\n - repo: https://github.com/mgedmin/check-manifest\n rev: \"0.50\"\n hooks:\n - id: check-manifest\n args: [--no-build-isolation]\n additional_dependencies: [setuptools, wheel, setuptools-scm]\n\n\n.. |buildstatus| image:: https://github.com/mgedmin/check-manifest/workflows/build/badge.svg?branch=master\n.. _buildstatus: https://github.com/mgedmin/check-manifest/actions\n\n.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/mgedmin/check-manifest?branch=master&svg=true\n.. _appveyor: https://ci.appveyor.com/project/mgedmin/check-manifest\n\n.. |coverage| image:: https://coveralls.io/repos/mgedmin/check-manifest/badge.svg?branch=master\n.. _coverage: https://coveralls.io/r/mgedmin/check-manifest\n\n\nChangelog\n=========\n\n\n0.50 (2024-10-09)\n-----------------\n\n- Add Python 3.12 and 3.13 support.\n\n\n0.49 (2022-12-05)\n-----------------\n\n- Add Python 3.11 support.\n\n- Drop Python 3.6 support.\n\n- Exclude more common dev/test files.\n\n\n0.48 (2022-03-13)\n-----------------\n\n- Add Python 3.10 support.\n\n- Switch to tomli instead of toml, after hearing about PEP-680. tomli will be\n included in the Python 3.11 standard library as tomllib, while toml is\n apparently unmaintained.\n\n- Fix submodule support when ``.gitmodules`` exists in a subdirectory\n (`#153 <https://github.com/mgedmin/check-manifest/issues/153>`_).\n Note that this reverts a fix for `#124\n <https://github.com/mgedmin/check-manifest/issues/124>`_: git versions before\n 2.11 are no longer supported.\n\n\n0.47 (2021-09-22)\n-----------------\n\n- Fix ``setuptools_scm`` workaround for packages with dashes in the name\n (`#145 <https://github.com/mgedmin/check-manifest/issues/145>`_).\n\n\n0.46 (2021-01-04)\n-----------------\n\n- The `pre-commit <https://pre-commit.com>`__ hook now always uses Python 3.\n\n\n0.45 (2020-10-31)\n-----------------\n\n- Add Python 3.9 support.\n\n- Drop Python 3.5 support.\n\n- Switch from ``pep517`` to `python-build <https://pypi.org/p/build>`__ (\n `#128 <https://github.com/mgedmin/check-manifest/pull/128>`__).\n\n- Add ``--no-build-isolation`` option so check-manifest can succeed building\n pep517-based distributions without an internet connection. With\n ``--no-build-isolation``, you must preinstall the ``build-system.requires``\n beforehand. (`#128 <https://github.com/mgedmin/check-manifest/pull/128>`__).\n\n\n0.44 (2020-10-03)\n-----------------\n\n- Try to avoid passing ``--recurse-submodules`` to ``git ls`` if the project\n doesn't use git submodules (i.e. doesn't have a ``.gitsubmodules`` file).\n This should make check-manifest work again with older git versions, as long\n as you don't use submodules (`#124\n <https://github.com/mgedmin/check-manifest/issues/124>`__).\n\n\n0.43 (2020-09-21)\n-----------------\n\n- Fix collecting files versioned by ``git`` when a project has submodules and\n ``GIT_INDEX_FILE`` is set. This bug was triggered when ``check-manifest``\n was run as part of a git hook (\n `#122 <https://github.com/mgedmin/check-manifest/issues/122>`__,\n `#123 <https://github.com/mgedmin/check-manifest/pull/123>`__).\n\nNote: check-manifest 0.43 requires ``git`` version 2.11 or later.\n\n\n0.42 (2020-05-03)\n-----------------\n\n- Added ``-q``/``--quiet`` command line argument. This will reduce the verbosity\n of informational output, e.g. for use in a CI pipeline.\n\n- Rewrote the ignore logic to be more compatible with setuptools. This might\n have introduced some regressions, so please file bugs! One side effect of\n this is that ``--ignore`` (or the ``ignore`` setting in the config file)\n is now handled the same way as ``global-exclude`` in a ``MANIFEST.in``, which\n means:\n\n - it's matched anywhere in the file tree\n - it's ignored if it matches a directory\n\n You can ignore directories only by ignoring every file inside it. You\n can use ``--ignore=dir/**`` to do that.\n\n This decision is not cast in stone: I may in the future change the\n handling of ``--ignore`` to match files and directories, because there's no\n reason it has to be setuptools-compatible.\n\n- Drop Python 2.7 support.\n\n\n0.41 (2020-02-25)\n-----------------\n\n- Support `PEP 517`_, i.e. packages using pyproject.toml instead of a setup.py\n (`#105 <https://github.com/mgedmin/check-manifest/issues/105>`_).\n\n.. _PEP 517: https://www.python.org/dev/peps/pep-0517/\n\n- Ignore subcommand stderr unless the subcommand fails. This avoids treating\n warning messages as filenames. (`#110\n <https://github.com/mgedmin/check-manifest/issues/110>`_.)\n\n\n0.40 (2019-10-15)\n-----------------\n\n- Add Python 3.8 support.\n\n\n0.39 (2019-06-06)\n-----------------\n\n- You can now use check-manifest as a `pre-commit <https://pre-commit.com>`_\n hook (`#100 <https://github.com/mgedmin/check-manifest/issues/100>`__).\n\n\n0.38 (2019-04-23)\n-----------------\n\n- Add Python 3.7 support.\n\n- Drop Python 3.4 support.\n\n- Added GitHub templates to default ignore patterns.\n\n- Added reading check-manifest config out of ``tox.ini`` or ``pyproject.toml``.\n\n\n0.37 (2018-04-12)\n-----------------\n\n- Drop Python 3.3 support.\n\n- Support packages using ``setuptools_scm``\n (`#68 <https://github.com/mgedmin/check-manifest/issues/68>`__).\n\n Note that ``setuptools_scm`` usually makes MANIFEST.in files obsolete.\n Having one is helpful only if you intend to build an sdist and then use that\n sdist to perform further builds, instead of building from a source checkout.\n\n\n0.36 (2017-11-21)\n-----------------\n\n- Handle empty VCS repositories more gracefully\n (`#84 <https://github.com/mgedmin/check-manifest/issues/84>`__).\n\n\n0.35 (2017-01-30)\n-----------------\n\n- Python 3.6 support.\n\n\n0.34 (2016-09-14)\n-----------------\n\n- Fix WindowsError due to presence of read-only files\n (`#74 <https://github.com/mgedmin/check-manifest/issues/74>`__).\n\n\n0.33 (2016-08-29)\n-----------------\n\n- Fix WindowsError due to git submodules in subdirectories\n (`#73 <https://github.com/mgedmin/check-manifest/pull/73>`__).\n Contributed by Loren Gordon.\n\n\n0.32 (2016-08-16)\n-----------------\n\n* New config/command line option to ignore bad ideas (ignore-bad-ideas)\n (`issue #67 <https://github.com/mgedmin/check-manifest/issues/67>`__).\n Contributed by Brecht Machiels.\n\n* Files named ``.hgsigs`` are ignored by default. Contributed by Jakub Wilk.\n\n\n0.31 (2016-01-28)\n-----------------\n\n- Drop Python 3.2 support.\n\n- Ignore commented-out lines in MANIFEST.in\n (`issue #66 <https://github.com/mgedmin/check-manifest/issues/66>`__).\n\n\n0.30 (2015-12-10)\n-----------------\n\n* Support git submodules\n (`issue #61 <https://github.com/mgedmin/check-manifest/issues/61>`__).\n\n* Revert the zc.buildout support hack from 0.26 because it causes breakage\n (`issue #56 <https://github.com/mgedmin/check-manifest/issues/56>`__).\n\n* Improve non-ASCII filename handling with Bazaar on Windows.\n\n\n0.29 (2015-11-21)\n-----------------\n\n* Fix --python with just a command name, to be found in path (`issue #57\n <https://github.com/mgedmin/check-manifest/issues/57>`__).\n\n\n0.28 (2015-11-11)\n-----------------\n\n* Fix detection of git repositories when .git is a file and not a directory (`#53\n <https://github.com/mgedmin/check-manifest/pull/53>`__). One situation\n where this occurs is when the project is checked out as a git submodule.\n\n* Apply ignore patterns in subdirectories too (`#54\n <https://github.com/mgedmin/check-manifest/issues/54>`__).\n\n\n0.27 (2015-11-02)\n-----------------\n\n* Fix utter breakage on Windows, introduced in 0.26 (`issue #52\n <https://github.com/mgedmin/check-manifest/issues/52>`__).\n (The bug -- clearing the environment unnecessarily -- could probably\n also cause locale-related problems on other OSes.)\n\n\n0.26 (2015-10-30)\n-----------------\n\n* Do not complain about missing ``.gitattributes`` file (`PR #50\n <https://github.com/mgedmin/check-manifest/pull/50>`__).\n\n* Normalize unicode representation and case of filenames. (`issue #47\n <https://github.com/mgedmin/check-manifest/issues/47>`__).\n\n* Support installation via zc.buildout better (`issue #35\n <https://github.com/mgedmin/check-manifest/issues/35>`__).\n\n* Drop Python 2.6 support because one of our test dependencies (mock) dropped\n it. This also means we no longer use environment markers.\n\n\n0.25 (2015-05-27)\n-----------------\n\n* Stop dynamic computation of install_requires in setup.py: this doesn't work\n well in the presence of the pip 7 wheel cache. Use PEP-426 environment\n markers instead (this means we now require setuptools >= 0.7, and pip >= 6.0,\n and wheel >= 0.24).\n\n\n0.24 (2015-03-26)\n-----------------\n\n* Make sure ``setup.py`` not being added to the VCS doesn't cause\n hard-to-understand errors (`issue #46\n <https://github.com/mgedmin/check-manifest/issues/46>`__).\n\n\n0.23 (2015-02-12)\n-----------------\n\n* More reliable svn status parsing; now handles svn externals (`issue #45\n <https://github.com/mgedmin/check-manifest/issues/45>`__).\n\n* The test suite now skips tests for version control systems that aren't\n installed (`issue #42\n <https://github.com/mgedmin/check-manifest/issues/42>`__).\n\n\n0.22 (2014-12-23)\n-----------------\n\n* More terse output by default; use the new ``-v`` (``--verbose``) flag\n to see all the details.\n\n* Warn the user if MANIFEST.in is missing (`issue #31\n <https://github.com/mgedmin/check-manifest/issues/31>`__).\n\n* Fix IOError when files listed under version control are missing (`issue #32\n <https://github.com/mgedmin/check-manifest/issues/32>`__).\n\n* Improved wording of the match/do not match messages (`issue #34\n <https://github.com/mgedmin/check-manifest/issues/34>`__).\n\n* Handle a relative --python path (`issue #36\n <https://github.com/mgedmin/check-manifest/issues/36>`__).\n\n* Warn about leading and trailing slashes in MANIFEST.in (`issue #37\n <https://github.com/mgedmin/check-manifest/issues/37>`__).\n\n* Ignore .travis.yml by default (`issue #39\n <https://github.com/mgedmin/check-manifest/issues/39>`__).\n\n* Suggest a rule for Makefile found deeper in the source tree.\n\n\n0.21 (2014-06-13)\n-----------------\n\n* Don't drop setup.cfg when copying version-controlled files into a clean\n temporary directory (`issue #29\n <https://github.com/mgedmin/check-manifest/issues/29>`__).\n\n\n0.20 (2014-05-14)\n-----------------\n\n* Restore warning about files included in the sdist but not added to the\n version control system (`issue #27\n <https://github.com/mgedmin/check-manifest/issues/27>`__).\n\n* Fix ``check-manifest relative/pathname`` (`issue #28\n <https://github.com/mgedmin/check-manifest/issues/28>`__).\n\n\n0.19 (2014-02-09)\n-----------------\n\n* More correct MANIFEST.in parsing for exclusion rules.\n* Some effort was expended towards Windows compatibility.\n* Handles non-ASCII filenames, as long as they're valid in your locale\n (`issue #23 <https://github.com/mgedmin/check-manifest/issues/23>`__,\n `#25 <https://github.com/mgedmin/check-manifest/issues/23>`__).\n\n\n0.18 (2014-01-30)\n-----------------\n\n* Friendlier error message when an external command cannot be found\n (`issue #21 <https://github.com/mgedmin/check-manifest/issues/21>`__).\n* Add suggestion pattern for `.coveragerc`.\n* Python 2.6 support\n (`issue #22 <https://github.com/mgedmin/check-manifest/issues/22>`__).\n\n\n0.17 (2013-10-10)\n-----------------\n\n* Read the existing MANIFEST.in file for files to ignore\n (`issue #19 <https://github.com/mgedmin/check-manifest/issues/19>`__).\n\n\n0.16 (2013-10-01)\n-----------------\n\n* Fix Subversion status parsing in the presence of svn usernames longer than 12\n characters (`issue #18 <https://github.com/mgedmin/check-manifest/issues/18>`__).\n\n\n0.15 (2013-09-20)\n-----------------\n\n* Normalize the paths of all files, avoiding some duplicate misses of\n directories. (`issue #16 <https://github.com/mgedmin/check-manifest/issues/16>`__).\n [maurits]\n\n\n0.14 (2013-08-28)\n-----------------\n\n* Supports packages that do not live in the root of a version control\n repository (`issue #15 <https://github.com/mgedmin/check-manifest/issues/15>`__).\n\n* More reliable svn support: detect files that have been added but not\n committed (or committed but not updated).\n\n* Licence changed from GPL (v2 or later) to MIT\n (`issue #12 <https://github.com/mgedmin/check-manifest/issues/12>`__).\n\n\n0.13 (2013-07-31)\n-----------------\n\n* New command line option: --ignore\n (`issue #11 <https://github.com/mgedmin/check-manifest/issues/11>`__).\n Contributed by Steven Myint.\n\n* New command line option: -p, --python. Defaults to the Python you used to\n run check-manifest. Fixes issues with packages that require Python 3 to run\n setup.py (`issue #13 <https://github.com/mgedmin/check-manifest/issues/13>`__).\n\n\n0.12 (2013-05-15)\n-----------------\n\n* Add suggestion pattern for `Makefile`.\n\n* More generic suggestion patterns, should cover almost anything.\n\n* zest.releaser_ integration: skip check-release for non-Python packages\n (`issue #9 <https://github.com/mgedmin/check-manifest/issues/9>`__).\n\n\n0.11 (2013-03-20)\n-----------------\n\n* Make sure ``MANIFEST.in`` is not ignored even if it hasn't been added to the\n VCS yet (`issue #7 <https://github.com/mgedmin/check-manifest/issues/7>`__).\n\n\n0.10 (2013-03-17)\n-----------------\n\n* ``check-manifest --version`` now prints the version number.\n\n* Don't apologize for not adding rules for directories (especially after adding\n rules that include files inside that directory).\n\n* Python 3 support contributed by Steven Myint.\n\n* Default ignore patterns can be configured in ``setup.cfg``\n (`issue #3 <https://github.com/mgedmin/check-manifest/issues/3>`_).\n\n\n0.9 (2013-03-06)\n----------------\n\n* Add suggestion pattern for `.travis.yml`.\n\n* When check-manifest -u (or -c) doesn't know how to write a rule matching a\n particular file, it now apologizes explicitly.\n\n* Copy the source tree to a temporary directory before running python setup.py\n sdist to avoid side effects from setuptools plugins or stale\n \\*.egg-info/SOURCES.txt files\n (`issue #1 <https://github.com/mgedmin/check-manifest/issues/1>`_).\n\n* Warn if `*.egg-info` or `*.mo` is actually checked into the VCS.\n\n* Don't complain if `*.mo` files are present in the sdist but not in the VCS\n (`issue #2 <https://github.com/mgedmin/check-manifest/issues/2>`_).\n\n\n0.8 (2013-03-06)\n----------------\n\n* Entry point for zest.releaser_. If you install both zest.releaser and\n check-manifest, you will be asked if you want to check your manifest during\n ``fullrelease``.\n\n.. _zest.releaser: https://pypi.python.org/pypi/zest.releaser\n\n\n0.7 (2013-03-05)\n----------------\n\n* First release available from the Python Package Index.\n\n* Moved from https://gist.github.com/4277075\n to https://github.com/mgedmin/check-manifest\n\n* Added README.rst, CHANGES.rst, setup.py, tox.ini (but no real tests yet),\n MANIFEST.in, and a Makefile.\n\n* Fixed a bug in error reporting (when setup.py failed, the user would get\n `TypeError: descriptor '__init__' requires an 'exceptions.Exception' object\n but received a 'str'`).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Check MANIFEST.in in a Python source package for completeness",
"version": "0.50",
"project_urls": {
"Homepage": "https://github.com/mgedmin/check-manifest"
},
"split_keywords": [
"distutils",
" setuptools",
" packaging",
" manifest",
" checker",
" linter"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "715592207fa9b92ac2ade5593b1280f804f2590a680b7fe96775eb26074eec6b",
"md5": "29cc7aab1909a76c83a9dc8eb6dcb1ab",
"sha256": "6ab3e3aa72a008da3314b432f4c768c9647b4d6d8032f9e1a4672a572118e48c"
},
"downloads": -1,
"filename": "check_manifest-0.50-py3-none-any.whl",
"has_sig": false,
"md5_digest": "29cc7aab1909a76c83a9dc8eb6dcb1ab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 20385,
"upload_time": "2024-10-09T08:09:59",
"upload_time_iso_8601": "2024-10-09T08:09:59.963436Z",
"url": "https://files.pythonhosted.org/packages/71/55/92207fa9b92ac2ade5593b1280f804f2590a680b7fe96775eb26074eec6b/check_manifest-0.50-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a8ab7607952f2c8d34c4124309dd3ea17c256fd3420a4ade01322daf9402b0b5",
"md5": "7b7b8f6d2c2a54c0656cc3101c5cee33",
"sha256": "d300f9f292986aa1a30424af44eb45c5644e0a810e392e62d553b24bb3393494"
},
"downloads": -1,
"filename": "check_manifest-0.50.tar.gz",
"has_sig": false,
"md5_digest": "7b7b8f6d2c2a54c0656cc3101c5cee33",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 44827,
"upload_time": "2024-10-09T08:10:01",
"upload_time_iso_8601": "2024-10-09T08:10:01.710239Z",
"url": "https://files.pythonhosted.org/packages/a8/ab/7607952f2c8d34c4124309dd3ea17c256fd3420a4ade01322daf9402b0b5/check_manifest-0.50.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-09 08:10:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mgedmin",
"github_project": "check-manifest",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"appveyor": true,
"tox": true,
"lcname": "check-manifest"
}