| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- = Contributions
- Contributions are very welcome - code, docs, whatever they might be! If this is
- your first contribution to an Open Source project or you're a core maintainer
- of multiple projects, your time and interest in contributing is most welcome.
- If you're not sure where to get started, raise an issue in the project.
- Ideas may be discussed, purely on their merits and issues. Our Code of Conduct
- (CoC) is straightforward - it's important that contributors feel comfortable in
- discussion throughout the whole process. This project respects the
- link:https://www.kernel.org/doc/html/latest/process/code-of-conduct.html[Linux Kernel code of conduct].
- == If you're not sure, ask!
- Don't be afraid to ask for advice before working on a
- contribution. If you're thinking about a bigger change, especially that might
- affect the core working or architecture, it's almost essential to talk and ask
- about what you're planning might affect things. Some of the larger future plans may not be
- documented well so it's difficult to understand how your change might affect
- the general direction and roadmap of this project without asking.
- The preferred way to communicate is probably via Discord or GitHub issues.
- === Dev environment setup and clean build - Fedora
- ```
- dnf install git go protobuf-compiler make -y
- git clone https://github.com/OliveTin/OliveTin.git
- cd OliveTin
- # For each dependency in tools.go;
- go install "github.com/bufbuild/buf/cmd/buf"
- go install ...
- buf generate
- make
- ./OliveTin
- ```
- === Getting started to contribute;
- The project layout is reasonably straightforward;
- * 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).
- * The API is defined in protobuf+grpc - you will need to `make grpc`.
- * The Go daemon is built from the `cmd` and `internal` directories mostly.
- * 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.
- == Mechanics of submitting a pull request
- When you are ready for a PR, please see the link:.github/PULL_REQUEST_TEMPLATE.md[pull request template].
|