README Join the chat at

doit - automation tool

doit comes from the idea of bringing the power of build-tools to execute any kind of task

Project Details


The MIT License Copyright (c) 2008-2015 Eduardo Naufel Schettino

see LICENSE file

developers / contributors

see AUTHORS file


doit is tested on python 3.3, 3.4, 3.5.

The last version supporting python 2 is version 0.29.

$ python install


  • cloudpickle
  • pyinotify (linux)
  • macfsevents (mac)

Tools required for development:

  • git * VCS
  • py.test * unit-tests
  • mock * unit-tests
  • coverage * code coverage
  • epydoc * API doc generator
  • sphinx * doc tool
  • pyflakes * syntax checker
  • doit-py * helper to run dev tasks

development setup

The best way to setup an environment to develop doit itself is to create a virtualenv...

doit$ virtualenv dev
(dev)doit$ dev/bin/activate

install doit as "editable", and add development dependencies from dev_requirements.txt:

(dev)doit$ pip install --editable .
(dev)doit$ pip install --requirement dev_requirements.txt


Windows developers: Due to a bug in wheel distributions pytest must not be installed from a wheel.


pip install pytest --no-use-wheel

See for more information:


Use py.test -

$ py.test


doc folder contains ReST documentation based on Sphinx.

doc$ make html

They are the base for creating the website. The only difference is that the website includes analytics tracking. To create it (after installing doit):

$ doit website

The website will also includes epydoc generated API documentation.

spell checking

All documentation is spell checked using the task spell:

$ doit spell

It is a bit annoying that code snippets and names always fails the check, these words must be added into the file doc/dictionary.txt.

The spell checker currently uses hunspell, to install it on debian based systems install the hunspell package: apt-get install hunspell.


python -m cProfile -o output.pstats `which doit` list

gprof2dot -f pstats output.pstats | dot -Tpng -o output.png


On github create pull requests using a named feature branch.