How to Help =========== batou is under active development, and contributions are more than welcome! #. Check for open issues or open a fresh issue to start a discussion around a bug. #. Fork `the repository `_ on Bitbucket and start making your changes to a new branch. #. Write a test which shows that the bug or feature works fine. #. Send a pull request and bug the maintainer until it gets merged and published. :) Make sure to add yourself to ``AUTHORS``. Ideas ----- * A continuous deployment server would be nice. I started experimenting with a new project that would be called "Aramaki". Contact @theuni if you are interested. * Documentation improvements are always welcome. Especially if you're missing something or would like to understand things. We'll be happy to explain things in depth -- a good deed would then be to improve our documentation. * Switching from the Component base class to an explicit API to avoid namespace collisions would be nice. The idea would be to create components using a class decorator: .. code-block:: python from batou import component @component class MyApp(object): def configure(self, b): self += File(...) def verify(self, b): b.assert_no_subcomponent_changes('touch asdf') def verify(self, b): b.cmd('rm -rf /') ``b`` is an API object bound to the component that provides the standard API. This way, you can use any names on your environment without the hassle of potential namespace collisions. * More pre-defined, reusable components are welcome. Check the `batou_ext `_ repository. * Supporting provisioning for platforms aside from Vagrant: e.g. Amazon, Flying Circus, ... Development Dependencies ------------------------ We use zc.buildout to manage the batou build environment: .. code-block:: console $ virtualenv --python=python2.7 $ bin/pip install zc.buildout $ bin/buildout Run py.test to verify that everything works fine: .. code-block:: console $ bin/py.test ================= test session starts ================== platform darwin -- Python 2.7.10 -- py-1.4.26 -- pytest-2.6.4 plugins: cache, capturelog, codecheckers, cov, timeout collected 426 items src/batou/__init__.py .. src/batou/_output.py .. src/batou/agent.py .. src/batou/bootstrap.py .. src/batou/buildout.py .. src/batou/c.py .. src/batou/component.py .. ... Runtime Environments -------------------- We will likely not accept patches that are related to Windows. We are open to good arguments, though. Downstream Repackaging ---------------------- batou is not intended for downstream repackaging.