Commit 0ddbf391 authored by Jason R. Coombs's avatar Jason R. Coombs

Merged in koterpillar/setuptools (pull request #183)

Remove CVS and Subversion references in include_package_data docs
parents 11fef285 741f3bbc
...@@ -258,10 +258,9 @@ unless you need the associated ``setuptools`` feature. ...@@ -258,10 +258,9 @@ unless you need the associated ``setuptools`` feature.
``include_package_data`` ``include_package_data``
If set to ``True``, this tells ``setuptools`` to automatically include any If set to ``True``, this tells ``setuptools`` to automatically include any
data files it finds inside your package directories, that are either under data files it finds inside your package directories that are specified by
CVS or Subversion control, or which are specified by your ``MANIFEST.in`` your ``MANIFEST.in`` file. For more information, see the section below on
file. For more information, see the section below on `Including Data `Including Data Files`_.
Files`_.
``exclude_package_data`` ``exclude_package_data``
A dictionary mapping package names to lists of glob patterns that should A dictionary mapping package names to lists of glob patterns that should
...@@ -785,17 +784,15 @@ e.g.:: ...@@ -785,17 +784,15 @@ e.g.::
) )
This tells setuptools to install any data files it finds in your packages. This tells setuptools to install any data files it finds in your packages.
The data files must be under CVS or Subversion control, or else they must be The data files must be specified via the distutils' ``MANIFEST.in`` file.
specified via the distutils' ``MANIFEST.in`` file. (They can also be tracked (They can also be tracked by a revision control system, using an appropriate
by another revision control system, using an appropriate plugin. See the plugin. See the section below on `Adding Support for Revision Control
section below on `Adding Support for Other Revision Control Systems`_ for Systems`_ for information on how to write such plugins.)
information on how to write such plugins.)
If you want finer-grained control over what files are included (for example,
If the data files are not under version control, or are not in a supported if you have documentation files in your package directories and want to exclude
version control system, or if you want finer-grained control over what files them from installation), then you can also use the ``package_data`` keyword,
are included (for example, if you have documentation files in your package e.g.::
directories and want to exclude them from installation), then you can also use
the ``package_data`` keyword, e.g.::
from setuptools import setup, find_packages from setuptools import setup, find_packages
setup( setup(
...@@ -853,8 +850,7 @@ converts slashes to appropriate platform-specific separators at build time. ...@@ -853,8 +850,7 @@ converts slashes to appropriate platform-specific separators at build time.
Python 2.4; there is `some documentation for the feature`__ available on the Python 2.4; there is `some documentation for the feature`__ available on the
python.org website. If using the setuptools-specific ``include_package_data`` python.org website. If using the setuptools-specific ``include_package_data``
argument, files specified by ``package_data`` will *not* be automatically argument, files specified by ``package_data`` will *not* be automatically
added to the manifest unless they are tracked by a supported version control added to the manifest unless they are listed in the MANIFEST.in file.)
system, or are listed in the MANIFEST.in file.)
__ http://docs.python.org/dist/node11.html __ http://docs.python.org/dist/node11.html
...@@ -887,8 +883,7 @@ included as a result of using ``include_package_data``. ...@@ -887,8 +883,7 @@ included as a result of using ``include_package_data``.
In summary, the three options allow you to: In summary, the three options allow you to:
``include_package_data`` ``include_package_data``
Accept all data files and directories matched by ``MANIFEST.in`` or found Accept all data files and directories matched by ``MANIFEST.in``.
in source control.
``package_data`` ``package_data``
Specify additional patterns to match files and directories that may or may Specify additional patterns to match files and directories that may or may
...@@ -1231,15 +1226,14 @@ Your Project's Dependencies ...@@ -1231,15 +1226,14 @@ Your Project's Dependencies
target audience isn't able to compile packages (e.g. most Windows users) target audience isn't able to compile packages (e.g. most Windows users)
and your package or some of its dependencies include C code. and your package or some of its dependencies include C code.
Subversion or CVS Users and Co-Developers Revision Control System Users and Co-Developers
Users and co-developers who are tracking your in-development code using Users and co-developers who are tracking your in-development code using
CVS, Subversion, or some other revision control system should probably read a revision control system should probably read this manual's sections
this manual's sections regarding such development. Alternately, you may regarding such development. Alternately, you may wish to create a
wish to create a quick-reference guide containing the tips from this manual quick-reference guide containing the tips from this manual that apply to
that apply to your particular situation. For example, if you recommend your particular situation. For example, if you recommend that people use
that people use ``setup.py develop`` when tracking your in-development ``setup.py develop`` when tracking your in-development code, you should let
code, you should let them know that this needs to be run after every update them know that this needs to be run after every update or commit.
or commit.
Similarly, if you remove modules or data files from your project, you Similarly, if you remove modules or data files from your project, you
should remind them to run ``setup.py clean --all`` and delete any obsolete should remind them to run ``setup.py clean --all`` and delete any obsolete
...@@ -1468,18 +1462,11 @@ Generating Source Distributions ...@@ -1468,18 +1462,11 @@ Generating Source Distributions
------------------------------- -------------------------------
``setuptools`` enhances the distutils' default algorithm for source file ``setuptools`` enhances the distutils' default algorithm for source file
selection, so that all files managed by CVS or Subversion in your project tree selection with pluggable endpoints for looking up files to include. If you are
are included in any source distribution you build. This is a big improvement using a revision control system, and your source distributions only need to
over having to manually write a ``MANIFEST.in`` file and try to keep it in include files that you're tracking in revision control, use a corresponding
sync with your project. So, if you are using CVS or Subversion, and your plugin instead of writing a ``MANIFEST.in`` file. See the section below on
source distributions only need to include files that you're tracking in `Adding Support for Revision Control Systems`_ for information on plugins.
revision control, don't create a ``MANIFEST.in`` file for your project.
(And, if you already have one, you might consider deleting it the next time
you would otherwise have to change it.)
(NOTE: other revision control systems besides CVS and Subversion can be
supported using plugins; see the section below on `Adding Support for Other
Revision Control Systems`_ for information on how to write such plugins.)
If you need to include automatically generated files, or files that are kept in If you need to include automatically generated files, or files that are kept in
an unsupported revision control system, you'll need to create a ``MANIFEST.in`` an unsupported revision control system, you'll need to create a ``MANIFEST.in``
...@@ -1501,12 +1488,6 @@ the options that the distutils' more complex ``sdist`` process requires. For ...@@ -1501,12 +1488,6 @@ the options that the distutils' more complex ``sdist`` process requires. For
all practical purposes, you'll probably use only the ``--formats`` option, if all practical purposes, you'll probably use only the ``--formats`` option, if
you use any option at all. you use any option at all.
(By the way, if you're using some other revision control system, you might
consider creating and publishing a `revision control plugin for setuptools`_.)
.. _revision control plugin for setuptools: `Adding Support for Other Revision Control Systems`_
Making your package available for EasyInstall Making your package available for EasyInstall
--------------------------------------------- ---------------------------------------------
...@@ -1687,9 +1668,10 @@ Of course, for this to work, your source distributions must include the C ...@@ -1687,9 +1668,10 @@ Of course, for this to work, your source distributions must include the C
code generated by Pyrex, as well as your original ``.pyx`` files. This means code generated by Pyrex, as well as your original ``.pyx`` files. This means
that you will probably want to include current ``.c`` files in your revision that you will probably want to include current ``.c`` files in your revision
control system, rebuilding them whenever you check changes in for the ``.pyx`` control system, rebuilding them whenever you check changes in for the ``.pyx``
source files. This will ensure that people tracking your project in CVS or source files. This will ensure that people tracking your project in a revision
Subversion will be able to build it even if they don't have Pyrex installed, control system will be able to build it even if they don't have Pyrex
and that your source releases will be similarly usable with or without Pyrex. installed, and that your source releases will be similarly usable with or
without Pyrex.
----------------- -----------------
...@@ -2569,15 +2551,21 @@ the ``cmd`` object's ``write_file()``, ``delete_file()``, and ...@@ -2569,15 +2551,21 @@ the ``cmd`` object's ``write_file()``, ``delete_file()``, and
those methods' docstrings for more details. those methods' docstrings for more details.
Adding Support for Other Revision Control Systems Adding Support for Revision Control Systems
------------------------------------------------- -------------------------------------------------
If you would like to create a plugin for ``setuptools`` to find files in If the files you want to include in the source distribution are tracked using
source control systems, you can do so by adding an Git, Mercurial or SVN, you can use the following packages to achieve that:
entry point to the ``setuptools.file_finders`` group. The entry point should
be a function accepting a single directory name, and should yield - Git and Mercurial: `setuptools_scm <https://pypi.python.org/pypi/setuptools_scm>`_
all the filenames within that directory (and any subdirectories thereof) that - SVN: `setuptools_svn <https://pypi.python.org/pypi/setuptools_svn>`_
are under revision control.
If you would like to create a plugin for ``setuptools`` to find files tracked
by another revision control system, you can do so by adding an entry point to
the ``setuptools.file_finders`` group. The entry point should be a function
accepting a single directory name, and should yield all the filenames within
that directory (and any subdirectories thereof) that are under revision
control.
For example, if you were going to create a plugin for a revision control system For example, if you were going to create a plugin for a revision control system
called "foobar", you would write a function something like this: called "foobar", you would write a function something like this:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment