Workflow

The following is a list of things you’ll probably need to do at some point while working on Pontoon.

Running Tests

You can run the automated test suite with the following command:

python manage.py test

Updating Your Local Instance

When changes are merged to the main Pontoon repository, you’ll want to update your local development instance to reflect the latest version of the site. You can use Git as normal to pull the latest changes, but if the changes add any new dependencies or alter the database, you’ll want to install any new libraries and run any new migrations.

If you’re unsure what needs to be run, it’s safe to just perform all of these steps, as they don’t affect your setup if nothing has changed:

# Pull latest code (assuming you've already checked out master).
git pull origin master

# Install new dependencies or update existing ones.
pip install -U --force --require-hashes -r requirements.txt

# Run database migrations.
python manage.py migrate

Building the Documentation

You can build the documentation with the following command:

# Enter the docs/ subdirectory
cd docs
make html

After running this command, the documentation should be available at docs/_build/html/index.html.

Note

Pontoon uses GraphViz as part of the documentation generation, so you’ll need to install it to generate graphs that use it. Most package managers, including Homebrew, have a package available for install.

Adding New Dependencies

Pontoon uses peep to install dependencies. Peep is a wrapper around pip that checks downloaded packages to ensure they haven’t been tampered with.

Because of this, adding a new library to requirements.txt is a bit more work as you need to add hashes for each library you want to install. To help make this easier, you can use the peepin tool to add new dependencies to the requirements file.