Skip to main content

PyBuilder

Project description

PyBuilder
=========

`PyBuilder <http://pybuilder.github.io>`_

`|Build Status| <http://travis-ci.org/pybuilder/pybuilder>`_ `|Windows
build status| <https://ci.appveyor.com/project/mriehl/pybuilder>`_
`|PyPI version| <https://warehouse.python.org/project/pybuilder/>`_
`|Coverage
Status| <https://coveralls.io/r/pybuilder/pybuilder?branch=master>`_
`|Ready in backlog| <https://waffle.io/pybuilder/pybuilder>`_ `|Open
bugs| <https://waffle.io/pybuilder/pybuilder>`_

PyBuilder is a software build tool written in 100% pure Python, mainly
targeting Python applications.

PyBuilder is based on the concept of dependency based programming, but
it also comes with a powerful plugin mechanism, allowing the
construction of build life cycles similar to those known from other
famous (Java) build tools.

PyBuilder is running on the following versions of Python: 2.6, 2.7, 3.3,
3.4, 3.5 and PyPy.

See the `Travis Build <https://travis-ci.org/pybuilder/pybuilder>`_ for
version specific output.

Installing
----------

PyBuilder is available using pip:

::

$ pip install pybuilder

For development builds use:

::

$ pip install --pre pybuilder

See the `Cheeseshop
page <https://warehouse.python.org/project/pybuilder/>`_ for more
information.

Getting started
---------------

PyBuilder emphasizes simplicity. If you want to build a pure Python
project and use the recommended directory layout, all you have to do is
create a file build.py with the following content:

::

from pybuilder.core import use_plugin

use_plugin("python.core")
use_plugin("python.unittest")
use_plugin("python.coverage")
use_plugin("python.distutils")

default_task = "publish"

See the `PyBuilder homepage <http://pybuilder.github.com/>`_ for more
details.

Plugins
-------

PyBuilder provides a lot of plugins out of the box that utilize tools
and libraries commonly used in Python projects:

- `python.coverage <http://pybuilder.github.com/documentation/plugins.html#Measuringunittestcoverage>`_
- Uses the standard
`coverage <https://warehouse.python.org/project/coverage/>`_ module
to calculate unit test line coverage.
- `python.distutils <http://pybuilder.github.com/documentation/plugins.html#BuildingaPythonpackage>`_
- Provides support to generate and use
`setup.py <https://warehouse.python.org/project/setuptools/>`_ files.
- **python.django** - Provides support for developing
`Django <https://www.djangoproject.com/>`_ applications.
- `python.frosted <http://pybuilder.github.io/documentation/plugins.html#Frostedplugin>`_
- Lint source files with
`frosted <https://github.com/timothycrosley/frosted>`_
- `python.flake8 <http://pybuilder.github.io/documentation/plugins.html#Flake8plugin>`_
- Provides support for
`flake8 <https://warehouse.python.org/project/flake8/>`_
- `python.pep8 <http://pybuilder.github.io/documentation/plugins.html#Pep8plugin>`_
- Provides support for
`pep8 <https://warehouse.python.org/project/pep8/>`_
- `python.install\_dependencies <http://pybuilder.github.io/documentation/plugins.html#Installingdependencies>`_
- Installs the projects build and runtime dependencies using ``pip``
- `python.pychecker <http://pybuilder.github.io/documentation/plugins.html#Pycheckerplugin>`_
- Provides support for
`pychecker <http://pychecker.sourceforge.net/>`_
- `python.Pydev <http://pybuilder.github.io/documentation/plugins.html#ProjectfilesforEclipsePyDev>`_
- Generates project files to import projects into `Eclipse
PyDev <http://pydev.org/>`_
- `python.PyCharm <http://pybuilder.github.io/documentation/plugins.html#ProjectfilesforJetbrainsPyCharm>`_
- Generates project files to import projects into `Jetbrains
PyCharm <http://www.jetbrains.com/pycharm/>`_
- `python.pylint <http://pybuilder.github.io/documentation/plugins.html#Pylintplugin>`_
- Executes `pylint <https://bitbucket.org/logilab/pylint/>`_ on your
sources.
- `python.pymetrics <http://pybuilder.github.io/documentation/plugins.html#Pymetricsplugin>`_
- Calculates several metrics using
`pymetrics <http://sourceforge.net/projects/pymetrics/>`_
- `python.unittest <http://pybuilder.github.com/documentation/plugins.html#RunningPythonUnittests>`_
- Executes `unittest <http://docs.python.org/library/unittest.html>`_
test cases
- `python.integrationtest <http://pybuilder.github.com/documentation/plugins.html#RunningPythonIntegrationTests>`_
- Executes python scripts as integrations tests
- `python.pytddmon <http://pybuilder.github.io/documentation/plugins.html#Visualfeedbackfortests>`_
- Provides visual feedback about unit tests through
`pytddmon <http://pytddmon.org/>`_
- `python.cram <http://pybuilder.github.io/documentation/plugins.html#RunningCramtests>`_
- Runs `cram <https://warehouse.python.org/project/cram/>`_ tests
- `python.sphinx <http://pybuilder.github.io/documentation/plugins.html#Creatingdocumentationwithsphinx>`_
- Build your documentation with `sphinx <http://sphinx-doc.org/>`_
- `python.sonarqube <http://pybuilder.github.io/documentation/plugins.html#SonarQubeintegration>`_
- Analyze your project with `SonarQube <http://www.sonarqube.org/>`_.
- python.snakefood - Analyze your code dependencies with
`snakefood <https://bitbucket.org/blais/snakefood>`_.

In addition, a few common plugins are provided:

- `copy\_resources <http://pybuilder.github.io/documentation/plugins.html#Copyingresourcesintoadistribution>`_
- Copies files.
- `filter\_resources <http://pybuilder.github.io/documentation/plugins.html#Filteringfiles>`_
- Filters files by replacing tokens with configuration values.
- `source\_distribution <http://pybuilder.github.io/documentation/plugins.html#Creatingasourcedistribution>`_
- Bundles a source distribution for shipping.

External plugins: \*
`pybuilder\_aws\_plugin <https://github.com/immobilienscout24/pybuilder_aws_plugin>`_
- handle AWS functionality

Release Notes
-------------

The release notes can be found
`here <http://pybuilder.github.com/releasenotes/>`_. There will also be
a git tag with each release. Please note that we do not currently
promote tags to GitHub "releases".

Development
-----------

See `developing
PyBuilder <http://pybuilder.github.io/documentation/developing_pybuilder.html>`_

.. |Build
Status| image:: https://secure.travis-ci.org/pybuilder/pybuilder.png?branch=master
.. |Windows build
status| image:: https://ci.appveyor.com/api/projects/status/e8fbgcyc7bdqbko3?svg=true
.. |PyPI version| image:: https://badge.fury.io/py/pybuilder.png
.. |Coverage
Status| image:: https://coveralls.io/repos/pybuilder/pybuilder/badge.png?branch=master
.. |Ready in
backlog| image:: https://badge.waffle.io/pybuilder/pybuilder.png?label=ready&title=Ready
.. |Open
bugs| image:: https://badge.waffle.io/pybuilder/pybuilder.png?label=bug&title=Open%20Bugs

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybuilder-0.11.10.tar.gz (71.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page