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. The same applies if you want to sign a CLA for your whole company.
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.
For companies that would like that their developers work for us, we need an additional corporate CLA signed.
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:
- Java indent is 4 spaces
- Line width is 100 characters
- The rest is left to Java coding standards but disable "auto-format on save" to prevent unnecessary format changes.
- Currently we do not care about import section that much, avoid changing it
- Unix line endings (should be handled via git)
- See discussion in #770
And in case we didn't emphasize it enough: we love tests!