cygnal/CONTRIBUTING.md

64 lines
2.0 KiB
Markdown
Raw Normal View History

Contributing
============
These are some infos which might be useful before contributing.
## TL;DR
We have a (rather standard) [code of conduct](CODE_OF_CONDUCT.md), please make
sure to review it prior to contributing.
The main language for working on this project is English. French is fine as
well, if you are more comfortable speaking French.
* Branch off `master`.
* One feature per commit.
* In case of changes request, amend your commit.
New issues and merge requests are better at
[Framagit](https://framagit.org/phyks/cyclassist).
You can contribute in many ways to Cycl'Assist, be it development,
translations or simply communicating around about this webapp!
There is also an ongoing issue concerning the general UX and design of the
webapp. If you have any knowledge on these subjects and want to help, feel
free to comment [this issue](https://framagit.org/phyks/cyclassist/issues/42)
(in French or in English).
## Development setup
The quickest way to get started is to simply run
```
API_BASE_URL=http://127.0.0.1:8081/ yarn dev
```
to spawn the client-side webapp, listening on `localhost:8080` and
```
python -m server
```
to spawn the server-side part, listening on `localhost:8081`.
## Useful scripts for dev
You can run `scripts/gps_to_gpx.py` on your GPX trace to create a
`src/tools/mock_gpx.json` file ready to be used as a mocking source for the
position data (just edit the `src/constants.js` file accordingly).
## Translating
Translation is done directly on [Zanata](https://translate.zanata.org/iteration/view/cyclassist/master?dswid=7345).
To add new strings to localize, edit the `src/i18n/en.json` file with your new
strings (and only this file). Then, you can run `yarn push-locales` to send
the updated locales to translate and `yarn pull-locales` to fetch the
translated files. To use these scripts you will need the
Translate-toolkit(`pip install translate-toolkit`) and the [Zanata Python CLI
client](https://github.com/zanata/zanata-python-client).