pbr - Python Build Reasonableness

A library for managing setuptools packaging needs in a consistent manner.

pbr reads and then filters the setup.cfg data through a setup hook to fill in default values and provide more sensible behaviors, and then feeds the results in as the arguments to a call to setup.py - so the heavy lifting of handling Python packaging needs is still being done by setuptools.

Note that we don’t support the easy_install aspects of setuptools: while we depend on setup_requires, for any install_requires we recommend that they be installed prior to running setup.py install - either by hand, or by using an install tool such as pip.

pbr can and does do a bunch of things for you:

  • Version: Manage version number based on git revisions and tags

  • AUTHORS: Generate AUTHORS file from git log

  • ChangeLog: Generate ChangeLog from git log

  • Manifest: Generate a sensible manifest from git files and some standard files

  • Release Notes: Generate a release notes file using reno

  • Requirements: Store your dependencies in a pip requirements file

  • long_description: Use your README file as a long_description

  • Smart find_packages: Smartly find packages under your root package

  • Sphinx Autodoc: Generate autodoc stub files for your whole module