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:
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:
$ virtualenv --python=python2.7
$ bin/pip install zc.buildout
$ bin/buildout
Run py.test to verify that everything works fine:
$ 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.