Submit a new issue only if you are sure it is a missing feature or a bug. For questions or if you are unsure discuss the topic in our forum.
For new translations or fixes to existing translations, please refer to this documentation.
Issues for newcomers are tagged with ‘good first issue’ and documentation issues are tagged with ‘documentation’.
Fork the repo and create a branch for your new feature or bug fix.
Run the tests. We only take pull requests with passing tests:
mvn clean test verify
Add at least one test for your change. Only refactoring and documentation changes require no new tests. Also make sure you submit a change specific to exactly one issue. If you have ideas for multiple changes please create separate pull requests.
Make the test(s) pass.
Push to your fork and submit a pull request. A button should appear on your fork its github page afterwards.
For contributions like pull requests, bug fixes and translations please read the GraphHopper License Agreement, which includes our contributor covenant code of conduct. Send us an email with the signed print out of this CLA. Or, if you prefer the faster electronically method via signaturit.com, please send us an email with a request for this - keep in mind that this requires storing your Email there.
For companies that would like that their developers work for us, we need an additional corporate CLA signed.
Note, our CLA does not influence your rights on your contribution but it makes sure for others that you agree to the Apache License, Version 2. After this you’ll appear in the contributors list and your pull request can also be discussed technically.
Read more in this issue why it is not that easy to make this CLA-signing process simpler for first-time contributors and maintainers.
We use IntelliJ defaults and a very similar configuration for NetBeans defined in the root pom.xml. For eclipse there is this configuration. Also for other IDEs it should be simple to match:
And in case we didn’t emphasize it enough: we love tests!