It makes Waffles (and other tasty things)!
To develop on this project follow these steps:
- Download the code
- Vagrant up!
- Create the database schema
- Run Batter
- Contribute changes!
You can get the most recent copy of Batter by cloning this repository:
git clone git://github.com/wafflesfm/batter.git
which will copy all of Batter into a new folder called batter
.
Vagrant is a way to create and configure lightweight, reproducible, and
portable development environments. We use it to keep the Batter runtime
in sync across our machines. Download it
and then cd vagrant
followed by vagrant up
to create your working
development environment. Once your environment has been created, run
vagrant ssh
and follow the next two instructions.
In your terminal, type
(batter) $ python batter/batter/manage.py syncdb
(batter) $ python batter/batter/manage.py migrate
In your terminal, type
(batter) $ python batter/batter/manage.py runserver 0.0.0.0:8000
You should now be able to open your browser to http://localhost:8080/ and use the site.
Yes, you're running the server on port 8000 in your vagrant environment, but vagrant port-forwards environment:8000 to localhost:8080.
So you want to contribute to Batter, you devilishly smart and attractive person? Awesome!
First off, fork the wafflesfm/batter
repository to your own github account. After you've cloned your own fork,
add the wafflesfm repo as the upstream
remote with
$ git remote add upstream git@github.com:wafflesfm/batter
(If you have commit access to wafflesfm/batter, you don't need to fork or add the upstream remote. The rest of this section still applies to you!)
Please follow these coding standards when writing code:
- Poocoo [styleguide] poocoo for all Python code.
- For Django-specific code follow internal Django [coding style] django.
- Additionally, since we want Batter to be Python3 compatible, make sure your code complies with Django [guidelines] python3 on Python3 compatibility.
We want Batter to be translatable, so please use Django's builtin internationalization helpers for all strings displayed to the user.
We use git-flow for our git workflow.
Debian/Ubuntu users can sudo aptitude install git-flow
, and users of
other operating systems can find installation instructions
here.
Once you have git-flow installed, you need to set it up for your batter repository. Setting up git-flow is a one-time thing. After you clone the repository and installed git-flow, navigate to your batter project folder and run
$ git flow init
Accept all the defaults. After the setup wizard is done, your "stable" branch should be master, "development" branch should be develop, "feature" prefix should be feature, "release" prefix should be release, "hotfix" prefix should be hotfix, and "support" prefix should be support.
After this, you can use git flow to work on new features or fix existing ones. The following articles should help you understand how git-flow works.
-
http://nvie.com/posts/a-successful-git-branching-model/ - the original blog post introducing the git workflow
-
http://yakiloo.com/getting-started-git-flow/ - a practical introduction to using the git-flow plugin
-
http://qq.is/article/git-flow-on-github - using git-flow in tandem with GitHub pull requests.
It is strongly recommended that even committers who have access to the repository use GitHub pull requests to merge their code. If you do this, then our code testing and code coverage tools will automatically tell you if what you are about to merge is going to break everything, and will automatically remind you to write any necessary tests.