Thank you for investing your time in contributing to our project!
When contributing to this repository, please first discuss the change you wish to make via GitHub Issues or Discussions as to ensure the change aligns with the project's long-term plans.
- Install the plugins needed to generated Go code with
protoc
:go install google.golang.org/protobuf/cmd/protoc-gen-go@vlatest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
We Use GitHub Flow
Please use the following workflow to make changes to the Emporous Client codebase:
- Fork the repo and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes (Run
make test-unit
) - Make sure your code lints (Run
make sanity
) - Create a pull request against the
emporous
main
branch.
When applicable, we encourage draft pull requests for early feedback and better communication.
Note: In the Makefile, there are code and file generation targets. If any changes are made to the gRPC API in the api/services
directory, run make generate-protobuf
. This operation assumes the protobuf compiler and Go plugins are installed. If any changes are made
to the client CLI under cmd/client
, run make generate-usage-docs
to update the documentation under docs/usage
.
Report bugs and feature ideas using GitHub's issues
Each issue type has a template attached to guide the submission.
- Run
go fmt
- Run
golangci-lint
- Use
go-imports
- (This should be configured to group the standard library, third-party, and
emporous-go
module imports separately)
- (This should be configured to group the standard library, third-party, and
By contributing, you agree that your contributions will be licensed under its Apache 2.0 License.