PyBuilder - build automation for python
PyBuilder is a powerful software build tool written in Python programming language. Because of the way it was engineered, this library primarily targets Python projects, but due to its extensible nature it can be used for the building and management of software in other languages as well. PyBuilder provides reliable, stable, and powerful plugin mechanism that allows Python developers to extend the tool in an unlimited way.
PyBuilder is fully open-sourced, distributed under the Apache 2.0 License. It is compatible with Linux, Windows and Mac operating systems. PyBuilder runs on Python 2.6 to 3.3 and PyPy. Among the main out-of-the-box functionality provided by PyBuilder are the following features:
- Automatic execution of unit and integration tests on every build;
- Automatic analysis of the code coverage;
- Automatic execution and result interpretation of analysis tools, such as flake8;
- Automatic generation of distutils script setup.py.
PyBuilder supports concept of dependency based programming and it’s build logic is organized into tasks and actions. Both these parts of build logic are plain Python functions. Task is an enclosed block of build logic that can have a set of other tasks that it depends on. Only after all of its dependencies have been executed, the task is executed as a single unit. Actions are smaller pieces of build logic that are bound to the execution of task. Actions can be executed before or after a certain task.
PyBuilder is compatible with many tools and libraries that are extensively used during the building of Python projects. Plugins for them include standard coverage module to calculate unit test line coverage, support for developing Django applications and generating setup.py files. PyBuilder features support for flake8, pep8, and pychecker. PyBuilder can use plugins to generate project files to import projects into Eclipse PyDev and Jetbrains PyCharm, execute pylint on the sources, or provide visual feedback about unit tests through pytddmon. There are plugins that assist PyBuilder in executing unittest test cases, calculating several metrics using pymetrics, or executing python scripts as integrations tests.
PyBuilder provides powerful, portable, and easy-to-use build automation for Python. Like the famous tool Apache Maven PyBuilder was developed to be convenient to use from the command-line, while using an IDE integration might improve both workflow and speed. Using dependency based programming and powerful plugin mechanism, PyBuilder is a continuous build tool for multiple languages. Learn more on pybuilder.github.io.