Skip to content

Commit 3596c12

Browse files
authored
Merge pull request pypa#1377 from jeanas/manifest
Remove "Using MANIFEST.in" guide, moved to setuptools docs
2 parents c6f37bf + d848d89 commit 3596c12

File tree

2 files changed

+4
-107
lines changed

2 files changed

+4
-107
lines changed

source/guides/section-build-and-publish.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ Building and Publishing
77

88
writing-pyproject-toml
99
distributing-packages-using-setuptools
10-
using-manifest-in
1110
single-sourcing-package-version
1211
dropping-older-python-versions
1312
packaging-binary-extensions

source/guides/using-manifest-in.rst

Lines changed: 4 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,9 @@
1-
.. _`Using MANIFEST.in`:
1+
:orphan:
22

33
============================================================
44
Including files in source distributions with ``MANIFEST.in``
55
============================================================
66

7-
When building a :term:`source distribution <Source Distribution (or "sdist")>`
8-
for your package, by default only a minimal set of files are included. You may
9-
find yourself wanting to include extra files in the source distribution, such
10-
as an authors/contributors file, a :file:`docs/` directory, or a directory of
11-
data files used for testing purposes. There may even be extra files that you
12-
*need* to include; for example, if your :file:`setup.py` computes your
13-
project's ``long_description`` by reading from both a README and a changelog
14-
file, you'll need to include both those files in the sdist so that people that
15-
build or install from the sdist get the correct results.
16-
17-
Adding & removing files to & from the source distribution is done by writing a
18-
:file:`MANIFEST.in` file at the project root.
19-
20-
21-
How files are included in an sdist
22-
==================================
23-
24-
The following files are included in a source distribution by default:
25-
26-
- all Python source files implied by the ``py_modules`` and ``packages``
27-
``setup()`` arguments
28-
- all C source files mentioned in the ``ext_modules`` or ``libraries``
29-
``setup()`` arguments
30-
- scripts specified by the ``scripts`` ``setup()`` argument
31-
- all files specified by the ``package_data`` and ``data_files`` ``setup()``
32-
arguments
33-
- the file specified by the ``license_file`` option in :file:`setup.cfg`
34-
(setuptools 40.8.0+)
35-
- all files specified by the ``license_files`` option in :file:`setup.cfg`
36-
(setuptools 42.0.0+)
37-
- all files matching the pattern :file:`test/test*.py`
38-
- :file:`setup.py` (or whatever you called your setup script)
39-
- :file:`setup.cfg`
40-
- :file:`README`
41-
- :file:`README.txt`
42-
- :file:`README.rst` (Python 3.7+ or setuptools 0.6.27+)
43-
- :file:`README.md` (setuptools 36.4.0+)
44-
- :file:`pyproject.toml` (setuptools 43.0.0+)
45-
- :file:`MANIFEST.in`
46-
47-
After adding the above files to the sdist, the commands in :file:`MANIFEST.in`
48-
(if such a file exists) are executed in order to add and remove further files
49-
to and from the sdist. Default files can even be removed from the sdist with the
50-
appropriate :file:`MANIFEST.in` command.
51-
52-
After processing the :file:`MANIFEST.in` file, setuptools removes the
53-
:file:`build/` directory as well as any directories named :file:`RCS`,
54-
:file:`CVS`, or :file:`.svn` from the sdist, and it adds a :file:`PKG-INFO`
55-
file and an :file:`*.egg-info` directory. This behavior cannot be changed with
56-
:file:`MANIFEST.in`.
57-
58-
59-
:file:`MANIFEST.in` commands
60-
============================
61-
62-
A :file:`MANIFEST.in` file consists of commands, one per line, instructing
63-
setuptools to add or remove some set of files from the sdist. The commands
64-
are:
65-
66-
========================================================= ==================================================================================================
67-
Command Description
68-
========================================================= ==================================================================================================
69-
:samp:`include {pat1} {pat2} ...` Add all files matching any of the listed patterns
70-
(Files must be given as paths relative to the root of the project)
71-
:samp:`exclude {pat1} {pat2} ...` Remove all files matching any of the listed patterns
72-
(Files must be given as paths relative to the root of the project)
73-
:samp:`recursive-include {dir-pattern} {pat1} {pat2} ...` Add all files under directories matching ``dir-pattern`` that match any of the listed patterns
74-
:samp:`recursive-exclude {dir-pattern} {pat1} {pat2} ...` Remove all files under directories matching ``dir-pattern`` that match any of the listed patterns
75-
:samp:`global-include {pat1} {pat2} ...` Add all files anywhere in the source tree matching any of the listed patterns
76-
:samp:`global-exclude {pat1} {pat2} ...` Remove all files anywhere in the source tree matching any of the listed patterns
77-
:samp:`graft {dir-pattern}` Add all files under directories matching ``dir-pattern``
78-
:samp:`prune {dir-pattern}` Remove all files under directories matching ``dir-pattern``
79-
========================================================= ==================================================================================================
80-
81-
The patterns here are glob-style patterns: ``*`` matches zero or more regular
82-
filename characters (on Unix, everything except forward slash; on Windows,
83-
everything except backslash and colon); ``?`` matches a single regular filename
84-
character, and ``[chars]`` matches any one of the characters between the square
85-
brackets (which may contain character ranges, e.g., ``[a-z]`` or
86-
``[a-fA-F0-9]``). Setuptools also has undocumented support for ``**`` matching
87-
zero or more characters including forward slash, backslash, and colon.
88-
89-
Directory patterns are relative to the root of the project directory; e.g.,
90-
``graft example*`` will include a directory named :file:`examples` in the
91-
project root but will not include :file:`docs/examples/`.
92-
93-
File & directory names in :file:`MANIFEST.in` should be ``/``-separated;
94-
setuptools will automatically convert the slashes to the local platform's
95-
appropriate directory separator.
96-
97-
Commands are processed in the order they appear in the :file:`MANIFEST.in`
98-
file. For example, given the commands:
99-
100-
.. code-block:: bash
101-
102-
graft tests
103-
global-exclude *.py[cod]
104-
105-
the contents of the directory tree :file:`tests` will first be added to the
106-
sdist, and then after that all files in the sdist with a ``.pyc``, ``.pyo``, or
107-
``.pyd`` extension will be removed from the sdist. If the commands were in the
108-
opposite order, then ``*.pyc`` files etc. would be only be removed from what
109-
was already in the sdist before adding :file:`tests`, and if :file:`tests`
110-
happened to contain any ``*.pyc`` files, they would end up included in the
111-
sdist because the exclusion happened before they were included.
7+
The information on this page has moved to
8+
:doc:`setuptools:userguide/miscellaneous` in the setuptools
9+
documentation.

0 commit comments

Comments
 (0)