We have a Cookiecutter template for our Django projects and I decided to replace the Makefile with invoke. Everything works very well, invoke is more flexible than the previous solution. Thanks for the great software!
Unfortunately the tasks package I created works only with Python 2. Python 3 raises a "RuntimeError: maximum recursion depth exceeded while calling a Python object". I was able to track down the cause. It's invoke.tasks.call being used to build a list of pre-targets. The task wrapped with invoke.tasks.call works stand alone. Maybe my solution to build the pre-tasks list is not correct?