The minimum software packages you need for setting up a development environment include git and a Python interpreter along with the pip installer. Consult the specifics for your operating system in order to get each package installed successfully.
Once you have the basic requirements in place, you will need to install Pootle’s dependencies, which come in shape of Python packages. Instead of installing them system-wide, we recommend using virtualenv (and virtualenvwrapper for easing the management of multiple virtualenvs). This way you can install all the dependencies at specific versions without interfering with system-wide packages. You can test on different Python/Django versions in parallel as well.
For installing the dependencies in an isolated environment, we will use virtualenv – more specifically virtualenvwrapper, which eases the process of managing and switching between multiple virtual environments. Install virtualenwrapper as follows for bash (examine platform specific installation instructions for other environments):
$ sudo pip install virtualenvwrapper
virtualenvwrapper will need to be configured in order to specify where to store the created environments:
$ export WORKON_HOME=~/envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh # Or /usr/bin/virtualenvwrapper.sh
Note
You may want to add the above-mentioned commands and environment
variables to your .bashrc
file (or whatever file your shell uses for
initializing user customizations).
Now that the commands provided by virtualenv and virtualenvwrapper are available, we can create our virtual environment.
$ mkvirtualenv pootle_env
Replace pootle_env
with a meaningful name that describes the environment
you are creating. mkvirtualenv
accepts any options that virtualenv accepts. We could for example
specify to use the Python 3.3 interpreter by passing the -p python3.3 option.
Note
After running mkvirtualenv, the newly created environment is activated. To deactivate it just run:
(pootle_env) $ deactivate
To activate a virtual environment again use workon as follows:
$ workon pootle_env
First, upgrade the version of pip and setuptools as follows:
(pootle_env) $ pip install --upgrade pip setuptools
Time to clone Pootle’s source code repository. The main repository lives under translate/pootle in GitHub.
Note
If you have a GitHub account, fork the main translate/pootle
repository and replace the repository URL with your own fork.
(pootle_env) $ git clone https://github.com/translate/pootle.git
Install Pootle and its development dependencies into your virtualenv. This
makes it easy to run Pootle locally and is needed for various development
actitivies. The [dev]
target will install some extra packages to aid
development (you can examine these in requirements/dev.txt
).
(pootle_env) $ pip install -e .[dev]
Note
Some requirements may depend on external packages. For these you may need to install extra packages on your system in order to complete their installation.
With all the dependencies installed within the virtual environment, Pootle is almost ready to run. In development environments you will want to use settings that differ from those used in production environments.
(pootle_env) $ pootle init --dev
Note
To learn more about how settings work in Pootle read the settings documentation.
Once the configuration is in place, you’ll need to setup the database schema and add initial data.
(pootle_env) $ pootle migrate
(pootle_env) $ pootle initdb
Now ensure that you have built the assets by following the instructions for frontend development.
Finally, run the development server.
(pootle_env) $ pootle runserver
Once all is done, you can start the development server anytime by enabling the
virtual environment (using the workon
command) and running the pootle runserver
command.
Happy hacking!!