Skip to main content

Contribution

This community hopes to get help from developers from all over the world, so I also hope you'd take a few minutes to read this guild before filling an issue or pull request.

Bug fixed

Go-Micro uses Github Issues to manage issues. If you want to submit a bug report or help fix a bug, please to make sure to search the existing issues and pull requests.

When submitting a bug report, please use the issue template we provide to clearly describe the problem encountered and how to reproduce it. If it is convenient, it's best to provide a minimal reproduction warehouse.

How to submit code

If you have never committed code on Github, please follow the steps below:

  • First, please fork the project into your own Github account.
  • Then create a new feature branch based on the main branch and named it after the feature like: feature-test
  • Write your code.
  • Submit the code to the remote branch
  • Submit a PR request in Github
  • Merge into main branch after waiting for review

Commit rules

Follow Conventional Commits to normalize the commit message

Note that: when you submit a PR request, first ensure that the code uses the correct coding specification and has a complete test cases. It's best to associate the related issues in the submitted PR information to reduce the workload of reviewers.

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

type

There are the following commit types:

Main types

  • fix: A fix bugs
  • feat: A new feature
  • deps: Changes external dependencies
  • break: Changes has break change

Other types

  • docs: Documentation only changes
  • refactor: A code change that neither fixes a bug nor adds a feature
  • style: Changes that do not affect the meaning of the code (white-space, formatting, etc)
  • test: Adding missing tests or correcting existing tests
  • chore Daily work, examples, etc.
  • ci: Changes to our CI configuration files and scripts

scope

The following is the list of supported scopes:

  • transport
  • examples
  • middleware
  • config
  • cmd
  • etc.

description

Clearly describe what the submitted code does in short sentences.

body

Extra notes, used to describe reasons, purposes, implementation logic, etc., can be omitted.

  • When there is an incompatible (breaking change) update, it is necessary to describe the reason and the scope of impact.
  • Associate related issues, such as Refs #123.
  • Links to PRs for documentation updates and updates for other modules that may be involved.

Commit examples

Commit message only

fix: The log debug level should be -1

Needs attention

refactor!(transport/http): replacement underlying implementation

Contains all structures

fix(log): [BREAKING-CHANGE] unable to meet the requirement of log Library

Explain the reason, purpose, realization method, etc.

Close #111
Doc change on doc/#222
BREAKING CHANGE:
Breaks log.info api, log_api.log should be used instead