check-manifest


Namecheck-manifest JSON
Version 0.50 PyPI version JSON
download
home_pagehttps://github.com/mgedmin/check-manifest
SummaryCheck MANIFEST.in in a Python source package for completeness
upload_time2024-10-09 08:10:01
maintainerNone
docs_urlNone
authorMarius Gedminas
requires_python>=3.7
licenseMIT
keywords distutils setuptools packaging manifest checker linter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            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"
}
        
Elapsed time: 0.52880s