Skip to content

Latest commit

 

History

History
146 lines (89 loc) · 12 KB

CONTRIBUTING.md

File metadata and controls

146 lines (89 loc) · 12 KB

Thanks for your interest in contributing to StreetComplete! 👍 There are many easy tasks you can do, even without programming knowledge, to create a better app for all users of StreetComplete and drive the OpenStreetMap project forward.

Even if you do not find something to do in this list, using StreetComplete, testing it and giving constructive feedback is always a valuable contribution too.

Content:

Translating the app

You can translate StreetComplete at POEditor. You can add missing translations and improve existing ones. Discuss translations at POEditor.

The only required skills here are ability to read English text and write in your own language.

Follow this link to improve the translations:

POEditor

After joining, the main site of the POEditor should list StreetComplete for logged in users.

Before each release, translations are pulled in from POEditor. Please, use POEditor for translating. Manual changes submitted as Pull Requests will not be merged as they do not help the project.

Once 100% or close to 100% of text is translated, the given language becomes enabled. Translations which are not maintained are removed. Typically languages which are less than 60% translated will be considered as not maintained and such translation will be disabled.

The source translation is in US English (in app/src/main/res/values/strings.xml). POEditor has a list of modifications in dialects such as UK English and Australian English, listed as separate languages.

iD presets

Some translations are from iD presets. For example in "Is this still here (Bench)" text "Is this still here ()" will be translated as part of StreetComplete, but translation for bench is taken from iD presets.

For iD preset translation see their documentation.

Solving notes

As you probably noticed, you can choose "Cannot answer" in StreetComplete and thus leave a note on OpenStreetMap.

You can help with processing OSM notes opened by StreetComplete users. While processing and solving notes, it may become apparent that there is a systematic problem in that users misunderstand the UI or the wording when solving StreetComplete quests.

If you find such user experience problems, please report them back in the issue tracker of StreetComplete. Do not forget to add links to examples, e.g. the notes StreetComplete mappers submitted.

Testing and reporting issues

If you experience problems, crashes or a quest is not clear to you, feel free to open an issue for that. Remember to open one issue for one matter, so do not open one issue "I have found several problems", but one for each problem. Before you open an issue, please consider:

  1. If you have questions, remember to read the FAQ first.
  2. Remember to report map style issues in the appropriate repository.
  3. Look whether your issue has already been reported (remember to check closed issues too, it may have already been fixed and is due to appear in the next release).

Issues with dependencies

StreetComplete depends on some projects for the app. Try to report them in the appropriate place.

  • Map style issues should be reported in a separate repository. Examples of such issues are missing elements on the map, display errors on the map, etc. As a rule of thumb, you can report everything that happens "behind" the quest icon markers there.

Note that this app has other dependencies. For reporting issues in these, you have to have some technical knowledge. So if you are not sure that the component listed below is responsible for the issue you have, it is often better to report them in the general StreetComplete issue tracker. People will then let you know whether this issue is solvable by StreetComplete or if it is an issue with Tangram-ES or another project. The full list of dependencies and other StreetComplete-related projects is listed at the end of this file.

Suggesting new quests

Not all ideas for quests are actually eligible to be included in this app. So, before you suggest a new quest, it is very important that you read the Quest Guidelines for StreetComplete.

If you can code, see also how to develop your own quest.

Improving documentation

You can also help to keep the OpenStreetMap wiki up-to-date for StreetComplete. For example:

Development

If you would like to help and are able to contribute code, you are most welcome.

There are many feature requests and ideas for new question types in the issue tracker which you can use. If you have own ideas on how to improve this app and want to make sure that the pull request will be merged, it is strongly suggested you open an issue first to discuss the feature, especially if you aim to add a new quest, see below.

Note that StreetComplete also uses some dependencies, where contributions are likely also accepted and help StreetComplete, too.

If you need to find things where help is especially appreciated have a look at the issues tagged with "help wanted".

To build and test StreetComplete download and install Android Studio which comes bundled with all tools needed, checkout and open the project in this application and click on the green play button on the top. If your first build fails due to missing dependencies, make sure you have accepted the required license agreements.

Developing new quests

You want to contribute a new quest right away? That's great! However, we strongly suggest you open an issue discussing the quest, before creating a PR, so we can see if your quest idea meets the criteria and can be included in StreetComplete.

In case you don't have an idea of a quest? Look at the existing issues. Sorted by 👍 reactions you can also see which are the most requested quests.

Always remember to pay attention to the quest guidelines of StreetComplete! It also has tips for implementing a quest.

See also this far more detailed guide to making a new quest.

Code style

Inheritance and class hierarchy should be avoided if possible. It is preferable to extract shared code to helper file such as KerbUtil.kt.

It is recommended to install the Ktlint (unofficial) Android Studio plugin which highlights lint issues (e.g. inconsistent spacing) directly inline while writing code.

Hints for more active people

See "Efficiently working together" which is addressed to people highly active in this project.

If you are making your first issue or pull request then you can definitely skip reading it.

Materials in res/documentation also may be useful, it includes

StreetComplete-related projects

Dependencies

Created for StreetComplete

You may find more projects under the StreetComplete tag on GitHub.