# Contributing

## Translating

Translation is managed through [Transifex](https://www.transifex.com/openstreetmap/umap/).

## Bugs Triaging

You are very welcome to help us triaging [uMap issues](https://github.com/umap-project/umap/issues).

* Help other users by answering questions
* Give your point of view in discussions
* And so on...

## Development on Ubuntu

### Environnement setup

Choose one of the following two config:

#### Config global to your desktop

Follow the procedure [Ubuntu from scratch](ubuntu.md)

But instead using folders /etc/umap, you can create a ~/.umap folder.
This folder will contain the umap.conf file.

And for folder /srv/umap, you can create a ~/umap folder (We will remove this folder later)

You will have to set an env var, we will set it in your .bashrc:

    nano ~/.bashrc

Add the following at the end of file:

```
# uMap
export UMAP_SETTINGS=~/.umap/umap.conf
```

Then refresh your terminal

    source ~/.bashrc

Run your local uMap and check that it is working properly.

#### Config inside your local git repo

Follow the procedure [Ubuntu from scratch](ubuntu.md)

You can use the local.py.sample in the git repo and copy it to your local git repo to umap/settings/local.py

See [Installation](install.md)

### Hacking on the code

Create a workspace folder ~/wk and go into it.

"git clone" the main repository and go in the umap folder

Several commands, needs you to be in a virtualenv:

    virtualenv ~/wk/umap/venv --python=/usr/bin/python3.6
    source ~/wk/umap/venv/bin/activate

Now, command "umap" will be available

*Note: if you close your terminal, you will need to re-run command:*

    source /srv/umap/venv/bin/activate

To test your code, you will add to install umap from your git folder. Go to ~/wk/umap and run:

    pip install -e .
    # or pip install -e ~/wk/umap

This command, will check dependencies and install uMap from sources inside folder.

To start your local uMap:

    umap runserver 0.0.0.0:8000

### Update translations

Install needed tools:

    apt install gettext transifex-client

Pull the translations from transifex website:

    tx pull -f

Then you will need to update binary files with command:
    make compilemessages

Done. You can now review and commit modified/added files.
