Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 2.32 KB

CONTRIBUTING.md

File metadata and controls

44 lines (30 loc) · 2.32 KB

Contributing to gpxpy

gpxpy aims to be a full featured library for handling gpx files defined by the GPX 1.0 and 1.1 schemas. Specifically:

  • Be able to lossless read any well-formed and valid gpx (1.0 or 1.1)
  • Be able to manipulate all gpx fields defined by the schema
  • Provide convenience functions for common computations and manipulations
  • Be able to lossless write out any well-formed and valid gpx

Bug fixes, feature additions, tests, documentation and more can be contributed via issues and/or pull requests. All contributions are welcome.

Bug fixes, feature additions, etc.

Please send a pull requests for new features or bugfixes to the dev branch. Minor changes or urgent hotfixes can be sent to master. Please include tests for new features. Tests or documentation without bug fixes or feature additions are welcome too. Feel free to ask questions via issues.

  • Fork the gpxpy repository.
  • Create a branch from master.
  • Develop bug fixes, features, tests, etc.
  • Run the test suite on both Python 2.x and 3.x. You can enable Travis CI on your repo to catch test failures prior to the pull request, and Coveralls to see if the changed code is covered by tests.
  • Create a pull request to pull the changes from your branch to the gpxpy master.

If you plan a big refactory, open an inssue for discussion before starting it.

Guidelines

Library code is read far more than it is written. Keep your code clean and understandable.

  • Provide tests for any newly added code.
  • Follow PEP8 and use pycodestyle for new code.
  • Follow PEP257 and use pydocstyle. Additionally, docstrings should be styled like Google's Python Style Guide
  • New code should pass flake8
  • Avoid decreases in Coverage

Reporting Issues

When reporting issues, please include code that reproduces the issue and whenever possible, a gpx that demonstrates the issue. The best reproductions are self-contained scripts with minimal dependencies.

Provide details

  • What did you do?
  • What did you expect to happen?
  • What actually happened?
  • What versions of gpxpy, lxml and Python are you using?