Skip to content

Latest commit

 

History

History
67 lines (39 loc) · 2.43 KB

CONTRIBUTING.md

File metadata and controls

67 lines (39 loc) · 2.43 KB

Contributing to Breakpoint

Where to Start

You can find good issues to tackle with labels good first issue and help wanted.

Issues tracking and Pull Requests

We don't enforce any rigid contributing procedure. We appreciate you spending time improving breakpoint!

If in doubt, please open a new Issue on GitHub. One of the maintainers will reach out soon, and you can discuss the next steps with them.

Please include relevant GitHub Issues in the PR message when opening a Pull Request.

Development

Developing breakpoint requires nix and optionally docker. We use nix to ensure reproducible development flow: it guarantees the identical versions of dependencies and tools. While docker is required only if you plan to build the Docker image of the Rendezvous server.

Follow the instructions to install them for your operating system:

When nix is installed, you can:

  • Run nix develop to enter a shell with every dependency pre-setup (e.g. Go, buf, etc.)
  • Use the "nix environment selector" VSCode extension to apply a nix environment in VSCode.

Building

Compiling the Go binaries:

$ go build -o . ./cmd/...

# Binaries available in the current working directory

$ ls breakpoint; ls rendezvous;

Installing the Go binaries:

$ go install ./cmd/...

# Binaries installed in $GOPATH

$ which breakpoint; which rendezvous;

Building the Docker image of Rendezvous server:

$ docker build . -t rendezvous:latest

Protos

Breakpoint uses gRPC and protos to implement both internal and public API. Internal API is used between the breakpoint wait process and the rest of CLI commands. The public API is provided by the rendezvous server to accept incoming breakpoint registrations.

Whenever you change the protos definition under the api/ folder, then you must also regenerate the Go code:

$ buf generate

This will add changes to the Go files under the api/ folder. Include them in your commit.