contributing.rst 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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::
  14. mkdir lsup # or whatever you may want to call it
  15. cd lsup
  16. python3 -m venv venv
  17. source bin/activate
  18. git clone --recurse-submodules https://github.com/scossu/lakesuperior.git src
  19. cd src
  20. pip install -e .
  21. This will allow to alter the code without having to re-run ``pip install``
  22. after changes (unless one is changing the Cython modules; see below).
  23. Modifying Cython Modules
  24. ------------------------
  25. Cython files must be recompiled into C files and then into binary files every
  26. time they are changed. To recompile Lakesuperior modules, run::
  27. python setup.py --build_ext --inplace
  28. For a faster compilation while testing, the environment variable ``CFLAGS``
  29. can set to ``-O0`` to turn off compiler optimization. The runtime code may run
  30. slower so this is not recommended for performance benchmarking.
  31. Refer to the `Cython documentation
  32. <http://docs.cython.org/en/latest/src/userguide/source_files_and_compilation.html>`__
  33. for a detailed description of the Cython compilation process.
  34. Contribution Guidelines
  35. -----------------------
  36. You can contribute by (from least to most involved):
  37. - Installing the repository and reporting any issues
  38. - Testing on other platforms (OS X, Windows, other Linux distros)
  39. - Loading some real-world data set and sharing interesting results
  40. - Amending incorrect documentation or adding missing one
  41. - Adding test coverage (**HOT**)
  42. - Browsing the list of open issues and picking a ticket that you may find
  43. interesting and within your reach
  44. - Suggesting new functionality or improvements and/or implementing them
  45. Please open a ticket and discuss the issue you are raising before opening a PR.
  46. Documentation is critical. If you implement new modules, class or methods, or
  47. modify them, please document them thoroughly and verify that the API docs are
  48. displaying and linking correctly.
  49. Likewise, please add mindful testing to new fatures or bug fixes.
  50. Development is done on the ``development`` branch. If you have any suggested
  51. addition to the code, please fork the repo, create a new branch for your topic
  52. and open a pull request against development. In case you find a critical bug,
  53. a hotfix can be proposed against master if agreed in the related issue
  54. discussion.
  55. Last but not least, read carefully the `Code of
  56. Conduct <../../code_of_conduct.md>`__.