Style Guide

Go

We use Effective Go as a general guideline for Go code.

Command Line Intefrace (CLI) Guide

We use clig.dev guidelines when working on command line interface parts of Pyroscope.

Project Structure

We use golang-standards/project-layout as the standard for where different parts of the system should go.

Linting

We use revive for linting. We recommend that you use an editor integration. You can find more on that here

Documentation

We use Google developer documentation style guide as a general guideline for all documentation in this repo and the website.

Diagrams

To make diagrams we recommend using app.diagrams.net

Other Considerations

When contributing to pyroscope, make sure your text editor adds new lines at the end of files. See this stack overflow answer for context on why this is important.

To make VS Code do this automatically, set files.insertFinalNewline to true.