Skip to content

Latest commit

 

History

History
90 lines (77 loc) · 3.63 KB

Onboarding.md

File metadata and controls

90 lines (77 loc) · 3.63 KB

Onboarding

Purpose

This document is a collection of all onboarding-related information, tips & tricks, etc. for first-time SDK contributors.

Learning Resources

The internet contains a plethora of learning resources for the Go language. Below are sources that we find useful:

Local Environment Setup

Below is a breakdown of the setup:

  1. Install Go - download
  2. Install Git - download
  3. Install Visual Studio Code - download
  4. Set up Git access for your machine
  5. Install the Go Extension for VS Code
    • In VS Code, open the Extensions menu and search for "Go". The developer should be "Go Team at Google".
  6. Install any suggested Go tools as prompted by Visual Studio
  7. Clone the ec-sdk-go repository.
  8. Set golangci-lint as your linter:
    • Navigate to VS Code's settings.
    • Search for go.lintTool.
    • In the Go: Lint Tool dropdown, select golangci-lint.
  9. Set up VS Code to run gofumpt automatically when saving a .go file:

Install

go install mvdan.cc/gofumpt@latest

Open VS Code's settings and search for gopls. Click the link to edit settings.json directly and add the following:

  "go.useLanguageServer": true,
  "gopls": {
    "formatting.gofumpt": true,
  },

Development Workflow

Create a branch off of main and begin coding!

Testing

Unit Testing

Ensure that all unit tests pass before submitting a pull request.

  1. Open a terminal at the root of the repository.
  2. Run go test ./… from the repository root.

Regression Testing

Consider the scope of changes in your PR and whether it is necessary to run some or all of the example files located in the example folder as end-to-end tests to identify regressions.

Release

Create a new release in GitHub with the appropriate vM.m.r semantic version e.g. v0.1.8 via the releases tab. Ensure to create a tag on the release screen using the same name. This process will be replaced with a GitHub action in the future.

In your release, be sure to include each section below. If there are no changes for a section, omit it. Refer to existing releases.

  • Breaking Changes
    • Alert consumers of the SDK of any changes that can break their code.
  • New Features
  • Bug Fixes and Enhancements
    • Enhancements can include performance improvements, code optimization, etc.