Skip to content

Latest commit

 

History

History
56 lines (37 loc) · 2.09 KB

CONTRIBUTING.md

File metadata and controls

56 lines (37 loc) · 2.09 KB

Contributing

Expectations

When contributing you must adhere to the Code of Conduct. All contributions must be signed off in accordance with the Developer Certificate of Origin.

Developing

Pre-requisits

Developer workflow

All builds happen via the Makefile at the root of the project. make help provides the set of most commonly used targets with short descriptions.

When developing, ensure you write unit tests and leverage the various test Makefile targets to validate your code.

The CI invokes little more than a Makefile target for each job. The one exception is image building as we optimize for cross-platform builds. In brief, we cross compile using the Go toolchain before constructing the image by copying the appropriate binary for the target platform.

Package structure

Given Hegel is not a library of reusable components most of its code lives in /internal. Appropriate justification will be required to create packages outside /internal.

The main() func for Hegel is located in /cmd/hegel. It is extremely short with the core command logic residing in /internal/cmd.

Hegel is split into frontends and backends. The frontends are the core domain logic while the backends are clients into a particular kind of backend. Frontends declare the models they require and the backends are responsible for retrieving and supplying the data in the required format. See the [frontend-backend][frontend-backend] Plant UML for a depiction.

How to submit change requests

Please submit change requests and features via Issues.

How to report bugs

Please submit bugs via Issues.