Skip to content

Latest commit

 

History

History
54 lines (36 loc) · 2.59 KB

CONTRIBUTING.md

File metadata and controls

54 lines (36 loc) · 2.59 KB

Contributing to the Emporous Client and Libraries

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.

Required Tools

  1. git: For source control.

  2. go

  3. make

  4. protoc: To make changes to the gRPC API.

  • 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

Pull Request Process

Please use the following workflow to make changes to the Emporous Client codebase:

  1. Fork the repo and create your branch from main.
  2. If you've added code that should be tested, add tests.
  3. If you've changed APIs, update the documentation.
  4. Ensure the test suite passes (Run make test-unit)
  5. Make sure your code lints (Run make sanity)
  6. 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.

Code Styling

  • 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)

License

By contributing, you agree that your contributions will be licensed under its Apache 2.0 License.