Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install setuptools-git

How to install setuptools-git

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install setuptools-git
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.0 Available View build log
0.4.2 Available View build log
0.4.1 Available View build log
0.4.0 Available View build log
0.3.4 Available View build log
0.4.2
1.0Never BuiltWhy not?
0.4.2 Available View build log
0.4.1 Available View build log
Windows (64-bit)
1.0 Available View build log
0.4.2 Available View build log
0.4.1 Available View build log
0.4.0 Available View build log
0.3.4 Available View build log
0.4.2
1.0Never BuiltWhy not?
0.4.2 Available View build log
0.4.1 Available View build log
Mac OS X (10.5+)
1.0 Available View build log
0.4.2 Available View build log
0.4.1 Available View build log
0.4.0 Available View build log
0.3.4 Available View build log
0.4.2
1.0Never BuiltWhy not?
0.4.2 Available View build log
0.4.1 Available View build log
Linux (32-bit)
1.0 Available View build log
0.4.2 Available View build log
0.4.1 Available View build log
0.4.0 Available View build log
0.3.4 Available View build log
0.4.2
1.0Never BuiltWhy not?
0.4.2 Available View build log
0.4.1 Available View build log
Linux (64-bit)
1.0 Available View build log
0.4.2 Available View build log
0.4.1 Available View build log
0.4.0 Available View build log
0.3.4 Available View build log
0.4.2
1.0Never BuiltWhy not?
0.4.2 Available View build log
0.4.1 Available View build log
1.0 Available View build log
 
License
BSD
Imports
Lastest release
version 1.0 on Jul 9th, 2013

About

This is a plugin for setuptools that enables git integration. Once installed, Setuptools can be told to include in a package distribution all the files tracked by git. This is an alternative to explicit inclusion specifications with MANIFEST.in.

A package distribution here refers to a package that you create using setup.py, ex:

python setup.py sdist
python setup.py bdist_rpm
python setup.py bdist_egg

This package was formerly known as gitlsfiles. The name change is the result of an effort by the setuptools plugin developers to provide a uniform naming convention.

Installation

With easy_install:

easy_install setuptools_git

Alternative manual installation:

tar -zxvf setuptools_git-X.Y.Z.tar.gz
cd setuptools_git-X.Y.Z
python setup.py install

Where X.Y.Z is a version number.

Usage

To activate this plugin, you must first package your python module with setup.py and use setuptools. The former is well documented in the distutils manual.

To use setuptools instead of distutils, just edit setup.py and change:

from distutils.core import setup

to:

from setuptools import setup, find_packages

When Setuptools builds a source package, it always includes all files tracked by your revision control system, if it knows how to learn what those files are.

When Setuptools builds a binary package, you can ask it to include all files tracked by your revision control system, by adding these argument to your invocation of setup():

setup(...,
  packages=find_packages(),
  include_package_data=True,
  ...)

which will detect that a directory is a package if it contains a __init__.py file. Alternatively, you can do without __init__.py files and tell Setuptools explicitly which packages to process:

setup(...,
  packages=["a_package", "another_one"],
  include_package_data=True,
  ...)

This plugin lets setuptools know what files are tracked by your git revision control tool. Setuptools ships with support for cvs and subversion. Other plugins like this one are available for bzr, darcs, monotone, mercurial, and many others.

It might happen that you track files with your revision control system that you don't want to include in your packages. In that case, you can prevent setuptools from packaging those files with a directive in your MANIFEST.in, ex:

exclude .gitignore
recursive-exclude images *.xcf *.blend

In this example, we prevent setuptools from packaging .gitignore and the Gimp and Blender source files found under the images directory.

Files to exclude from the package can also be listed in the setup() directive. To do the same as the MANIFEST.in above, do:

setup(...,
    exclude_package_data = {'': ['.gitignore'],
                      'images': ['*.xcf', '*.blend']},
    ...)

Here is another example:

setup(...,
  exclude_package_data = {'': ['.gitignore', 'artwork/*'],
                          'model': ['config.py']},
   ...)

Gotchas

Be aware that for this module to work properly, git and the git meta-data must be available. That means that if someone tries to make a package distribution out of a non-git distribution of yours, say a tarball, setuptools will lack the information necessary to know which files to include. A similar problem will happen if someone clones your git repository but does not install this plugin.

Resolving those problems is out of the scope of this plugin; you should add relevant warnings to your documentation if those situations are a concern to you.

You can make sure that anyone who clones your git repository and uses your setup.py file has this plugin by adding a setup_requires argument:

setup(...,
  setup_requires = [ "setuptools_git >= 0.3", ],
  ...)

References

Thanks to Zooko O'Whielacronx for many improvements to the documentation.

Subscribe to package updates

Last updated Jul 9th, 2013

Download Stats

Last month:131

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.