CONTRIBUTING.adoc 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. = Contributions
  2. Contributions are very welcome - code, docs, whatever they might be! If this is
  3. your first contribution to an Open Source project or you're a core maintainer
  4. of multiple projects, your time and interest in contributing is most welcome.
  5. If you're not sure where to get started, raise an issue in the project.
  6. Ideas may be discussed, purely on their merits and issues. Our Code of Conduct
  7. (CoC) is straightforward - it's important that contributors feel comfortable in
  8. discussion throughout the whole process. This project respects the
  9. link:https://www.kernel.org/doc/html/latest/process/code-of-conduct.html[Linux Kernel code of conduct].
  10. == If you're not sure, ask!
  11. Don't be afraid to ask for advice before working on a
  12. contribution. If you're thinking about a bigger change, especially that might
  13. affect the core working or architecture, it's almost essential to talk and ask
  14. about what you're planning might affect things. Some of the larger future plans may not be
  15. documented well so it's difficult to understand how your change might affect
  16. the general direction and roadmap of this project without asking.
  17. The preferred way to communicate is probably via Discord or GitHub issues.
  18. === Dev environment setup and clean build - Fedora
  19. ```
  20. dnf install git go protobuf-compiler make -y
  21. git clone https://github.com/OliveTin/OliveTin.git
  22. cd OliveTin
  23. # For each dependency in tools.go;
  24. go install "github.com/bufbuild/buf/cmd/buf"
  25. go install ...
  26. buf generate
  27. make
  28. ./OliveTin
  29. ```
  30. === Getting started to contribute;
  31. The project layout is reasonably straightforward;
  32. * See the `Makefile` for common targets. This project was originally created on top of Fedora, but it should be usable on Debian/your faveourite distro with minor changes (if any).
  33. * The API is defined in protobuf+grpc - you will need to `make grpc`.
  34. * The Go daemon is built from the `cmd` and `internal` directories mostly.
  35. * The webui is just a single page application with a bit of Javascript in the `webui` directory. This can happily be hosted on another webserver.
  36. == Mechanics of submitting a pull request
  37. When you are ready for a PR, please see the link:.github/PULL_REQUEST_TEMPLATE.md[pull request template].