Metadata-Version: 2.1
Name: check-manifest
Version: 0.46
Summary: Check MANIFEST.in in a Python source package for completeness
Home-page: https://github.com/mgedmin/check-manifest
Author: Marius Gedminas
Author-email: marius@gedmin.as
License: MIT
Description: 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.46"
                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.  If you have additional ``build-system.requires`` outside of pip /
        setuptools / wheel you will want to list those in ``additional_dependencies``.
        
        .. code-block:: yaml
        
            repos:
            -   repo: https://github.com/mgedmin/check-manifest
                rev: ...  # pick a valid tag / revision
                hooks:
                -   id: check-manifest
                    args: [--no-build-isolation]
                    additional_dependencies: [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.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'`).
        
Keywords: distutils,setuptools,packaging,manifest,checker,linter
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Provides-Extra: test
