Paver is a Python-based software project scripting tool along the lines of Make or Rake. It is not designed to handle the dependency tracking requirements of, for example, a C program. It is designed to help out with all of your other repetitive tasks (run documentation generators, moving files around, downloading things), all with the convenience of Python’s syntax and massive library of code.
If you’re developing applications in Python, you get even more... Most public Python projects use distutils or setuptools to create source tarballs for distribution. (Private projects can take advantage of this, too!) Have you ever wanted to generate the docs before building the source distribution? With Paver, you can, trivially. Here’s a complete pavement.py:
from paver.easy import * from paver.setuputils import setup setup( name="MyCoolProject", packages=['mycool'], version="1.0", url="http://www.blueskyonmars.com/", author="Kevin Dangoor", author_email="firstname.lastname@example.org" ) @task @needs(['html', "distutils.command.sdist"]) def sdist(): """Generate docs and source distribution.""" pass
With that pavement file, you can just run paver sdist, and your docs will be rebuilt automatically before creating the source distribution. It’s also easy to move the generated docs into some other directory (and, of course, you can tell Paver where your docs are stored, if they’re not in the default location.)
See how it works! Check out the Getting Started Guide.
Paver has been in use in production settings since mid-2008, and significant attention is paid to backwards compatibility since the release of 1.0.
See the changelog for more information about recent improvements.
pip install Paver
Without setuptools, it’s still pretty easy. Download the Paver .tgz file from Paver’s Cheeseshop page, untar it and run:
python setup.py install
You can get help from the mailing list.
If you’d like to help out with Paver, you can check the code out from github:
git clone https://github.com/paver/paver.git
Ideally, create a fork, fix an issue from Paver’s list of issues (or create an issue Yourself) and send a pull request.
Your help is appreciated!
Paver contains both unit and integration test suite. Unittests are run by either paver test or paver unit. Integration tests can be run by paver integrate.
Using older, system-wide installed paver to run tests on development version can lead to bad interactions (see issue 33). Please, run paver test suite using development version itself, by:
Paver is licensed under a BSD license. See the LICENSE.txt file in the distribution.