contributing.rst 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. Contributing to Lakesuperior
  2. ============================
  3. Lakesuperior has been so far a single person’s off-hours project (with much
  4. valuable input from several sides). In order to turn into anything close
  5. to a Beta release and eventually to a production-ready implementation, it
  6. needs some community love.
  7. Contributions are welcome in all forms, including ideas, issue reports,
  8. or even just spinning up the software and providing some feedback.
  9. Lakesuperior is meant to live as a community project.
  10. .. _dev_setup:
  11. Development Setup
  12. -----------------
  13. To set up the software for developing code, documentation, or tests, start in
  14. an empty project folder::
  15. python3 -m venv venv
  16. source venv/bin/activate
  17. git clone --recurse-submodules https://github.com/scossu/lakesuperior.git src
  18. cd src
  19. pip install -e .
  20. This will allow to alter the code without having to re-run ``pip install``
  21. after changes (unless one is changing the Cython modules; see below).
  22. Modifying Cython Modules
  23. ------------------------
  24. Cython files must be recompiled into C files and then into binary files every
  25. time they are changed. To recompile Lakesuperior modules, run::
  26. python setup.py build_ext --inplace
  27. For a faster compilation while testing, the environment variable ``CFLAGS``
  28. can set to ``-O0`` to turn off compiler optimization. The runtime code may run
  29. slower so this is not recommended for performance benchmarking.
  30. Refer to the `Cython documentation
  31. <http://docs.cython.org/en/latest/src/userguide/source_files_and_compilation.html>`__
  32. for a detailed description of the Cython compilation process.
  33. Contribution Guidelines
  34. -----------------------
  35. You can contribute by (from least to most involved):
  36. - Installing the repository and reporting any issues
  37. - Testing on other platforms (OS X, Windows, other Linux distros)
  38. - Loading some real-world data set and sharing interesting results
  39. - Amending incorrect documentation or adding missing one
  40. - Adding test coverage (**HOT**)
  41. - Browsing the list of open issues and picking a ticket that you may find
  42. interesting and within your reach
  43. - Suggesting new functionality or improvements and implementing them
  44. Please open a ticket and discuss the issue you are raising before opening a PR.
  45. Documentation is critical. If you implement new modules, classes or methods, or
  46. modify them, please document them thoroughly and verify that the API docs are
  47. displaying and linking correctly.
  48. Likewise, please add mindful testing to new fatures or bug fixes.
  49. Development is done on the ``master`` branch. If you have an addition to the
  50. code that you have previously discussed by opening an issue, please fork the
  51. repo, create a new branch for your topic and open a pull request against
  52. master.
  53. Last but not least, read carefully the `Code of Conduct
  54. <https://github.com/scossu/lakesuperior/blob/master/code_of_conduct.md>`__.