It makes Waffles (and other tasty things)!
To develop on this project follow these steps:
- Download the code
- Create your working environment
- Install dependencies
- Create the database schema
- Run Batter
- Contribute changes!
If you're familiar with Vagrant, then simply
check the code out, cd vagrant
, then vagrant up
and you'll have a
working development environment. You'll still need to perform steps 4 and 5
from inside the vagrant ssh
shell.
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
.
First, make sure you have downloaded virtualenv.
Once that's installed, create a new virtualenv inside of the batter
folder:
$ cd batter
$ virtualenv --distribute venv
$ source venv/bin/activate
Your terminal prompt should now look like this:
(venv) $
In your terminal, type
(venv) $ pip install -r requirements/local.txt
You should see a list of packages being downloaded and installed.
In your terminal, type
(venv) $ python batter/manage.py syncdb
(venv) $ python batter/manage.py migrate
In your terminal, type
(venv) $ python batter/manage.py runserver
You should now be able to open your browser to http://localhost:8000/ and use the site.
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 [email protected]: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!)
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.