Skip to content

Latest commit

 

History

History
86 lines (55 loc) · 2.68 KB

CONTRIBUTING.md

File metadata and controls

86 lines (55 loc) · 2.68 KB

Contributor Guide

Welcome to Rufio! We are really excited to have you. Please use the following guide on your contributing journey. Thanks for contributing!

Table of Contents


Context

Rufio is a Kubernetes controller for managing baseboard management state and actions.It is part of the Tinkerbell stack and provides the glue for machine provisioning by enabling machine restarts and setting next boot devices.

Prerequisites

DCO Sign Off

Please read and understand the DCO found here.

Code of Conduct

Please read and understand the code of conduct found here.

Setting up your development environment

  1. Install Go

    Rufio requires Go 1.17 or later.

  2. Install Docker

    Rufio uses Docker for protocol buffer code generation, container image builds and for the Ruby client example. Most versions of Docker will work.

The items below are nice to haves, but not hard requirements for development

  1. Install golangci-lint

    golangci-lint is used in CI for lint checking and should be run locally before creating a PR.

Pull Requests

Branching strategy

Rufio uses a fork and pull request model. See this doc for more details.

Quality

CI

Rufio uses GitHub Actions for CI. The workflow is found in .github/workflows/ci.yaml. It is run for each commit and PR. The container image building only happens once a PR is merged into the main line.

Code coverage

Rufio does run code coverage with each PR. Coverage thresholds are not currently enforced. It is always nice and very welcomed to add tests and keep or increase the code coverage percentage.

Pre PR Checklist

This checklist is a helper to make sure there's no gotchas that come up when you submit a PR.