Skip to content

Latest commit

 

History

History
53 lines (37 loc) · 2.71 KB

CONTRIBUTING.md

File metadata and controls

53 lines (37 loc) · 2.71 KB

Contributing Guidelines

source{d} go-git project is Apache 2.0 licensed and accepts contributions via GitHub pull requests. This document outlines some of the conventions on development workflow, commit message formatting, contact points, and other resources to make it easier to get your contribution accepted.

Support Channels

The official support channels, for both users and contributors, are:

*Before opening a new issue or submitting a new pull request, it's helpful to search the project - it's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of.

How to Contribute

Pull Requests (PRs) are the main and exclusive way to contribute to the official go-git project. In order for a PR to be accepted it needs to pass a list of requirements:

  • You should be able to run the same query using git. We don't accept features that are not implemented in the official git implementation.
  • The expected behavior must match the official git implementation.
  • The actual behavior must be correctly explained with natural language and providing a minimum working example in Go that reproduces it.
  • All PRs must be written in idiomatic Go, formatted according to gofmt, and without any warnings from go lint nor go vet.
  • They should in general include tests, and those shall pass.
  • If the PR is a bug fix, it has to include a suite of unit tests for the new functionality.
  • If the PR is a new feature, it has to come with a suite of unit tests, that tests the new functionality.
  • In any case, all the PRs have to pass the personal evaluation of at least one of the maintainers of go-git.

Branches

The master branch is currently used for maintaining the v5 major release only. The accepted changes would be dependency bumps, bug fixes and small changes that aren't needed for v6. New development should target the v6-exp branch, and if agreed with at least one go-git maintainer, it can be back ported to v5 by creating a new PR that targets master.

Format of the commit message

Every commit message should describe what was changed, under which context and, if applicable, the GitHub issue it relates to:

plumbing: packp, Skip argument validations for unknown capabilities. Fixes #623

The format can be described more formally as follows:

<package>: <subpackage>, <what changed>. [Fixes #<issue-number>]