forked from ofri/Open-Knesset
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
82 lines (66 loc) · 4.47 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# Installation #
## Get the code ##
- Make sure you have git installed, and have an account on github.com. Sign into github. see http://linux.yyz.us/git-howto.html for a short list of options with git and github.com help for more.
- Fork the repository (https://github.com/ofri/Open-Knesset, top right of page). This creates a copy of the repository under your user.
- Clone the repository: `git clone https://github.com/your-username/Open-Knesset.git` . This creates a copy of the project on your local machine.
If you haven't done so already:
- `git config --local user.name "Your Name"`
- `git config --local user.email "your@email.com"`
## Prerequisites ##
- Python 2.x (including dev files)
- python-setuptools
In Ubuntu this can be done with:
sudo apt-get install python python-dev python-setuptools
## Installation process ##
- `python bootstrap.py`
- `bin/buildout` (if you have a problem, see "Trouble?" below)
- `bin/test`
- `bin/django syncdb --migrate` # do not create a superuser account
- `bin/django loaddata dev`
- `bin/django createsuperuser` # to create your superuser account
- `bin/django runserver`
- `vi src/knesset/local_settings.py` # create your local setting file to store a bunch of things that you do NOT want to push to everyone # NOTE: NEVER push settings.py with local changes!
- sample input for local_settings.py: `DATABASE_NAME = '<your-local-path>dev.db'` # Or path to database file if using sqlite3.
## Trouble? ##
- Some of the mirrors are flaky so you might need to run the buildout several times until all downloads succeed.
- currently using MySQL as the database engine is not supported
- on bin/buildout, problems with getting distribution for 'PIL' can be fixed
by installing the python-dev package
## Windows Users ##
Prerequisites:
- Download and install Python 2.7 from http://www.python.org/download/windows/
- Download and install git by following http://help.github.com/win-git-installation/
- Generate an ssh key to your git account by following http://help.github.com/msysgit-key-setup/
Running the installation instructions:
- open command line change dir to the Open-Knesset folder
- run the installation instructions above (Without the $ ofcourse and with backslashes)
# Working process #
## Before you code ##
Get your branch updated with the changes done by others. Please do this every time before you start developing:
- cd Open-Knesset
- git pull git://github.com/ofri/Open-Knesset.git master
- bin/buildout # only needed if the file buildout.cfg was changed; but can't hurt you if you run it every time.
- bin/django syncdb --migrate # do not create a superuser account
- bin/test # if there are any failures, contact the other developers to see if that's something you should worry about.
- bin/django runserver # now you can play with the site using your browser
if you get the add_persons_aliases alert try `bin/django migrate --fake persons 0001`
## When you code ##
### General ###
- Write tests for everything that you write.
- Keep performance in mind - test the number of db queries your code performs using `bin/django runserver` and access a page that runs the code you changed. See the output of the dev-server before and after your change.
### Adding a field to existing model ###
We use south to manage database migration. The work process looks something like:
- add the field you want to model sample_model in app sample_app
- bin/django schemamigration sample_app --auto # this generates a new migration under src/knesset/sample_app/migrations. You should review it to make sure it does what you expect.
- bin/django syncdb --migrate # run the migration.
- don't forget to git add/commit the migration file.
### Updating the translation strings ###
Currently, there is no need to update translation (po) files. Its a real headache to merge when there are conflicts, so simply add a note to the commit message "need translations" if you added any _('...') or {% trans '...' %} to the code.
## After you code ##
- bin/test # make sure you didn't break anything
- git status # to see what changes you made
- git diff filename # to see what changed in a specific file
- git add filename # for each file you changed/added.
- git commit -m "commit message" # Please write a sensible commit message, and include "fix#: [number]" of the issue number you're working on (if any).
- git push # push changes to git repo
- go to github.com and send a "pull request" so your code will be reviewed and pulled into the main branch.