-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
af7ae57
commit 192298b
Showing
2 changed files
with
38 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
# Contributing to Gobot | ||
|
||
## Target Branch | ||
|
||
**Please open all non-hotfix PRs against the `dev` branch!** | ||
|
||
Gobot follows a ["git flow"](http://nvie.com/posts/a-successful-git-branching-model/)-style model for managing development. | ||
|
@@ -19,30 +20,35 @@ This document will guide you through the contribution process. | |
|
||
What do you want to contribute? | ||
|
||
- I want to otherwise correct or improve the docs or examples | ||
- I want to report a bug | ||
- I want to add some feature or functionality to an existing hardware platform | ||
- I want to add support for a new hardware platform | ||
* I want to otherwise correct or improve the docs or examples | ||
* I want to report a bug | ||
* I want to add some feature or functionality to an existing hardware platform | ||
* I want to add support for a new hardware platform | ||
|
||
Descriptions for each of these will eventually be provided below. | ||
|
||
## General Guidelines | ||
|
||
* All active development is in the `dev` branch. New or updated features must be added to the `dev` branch. Hotfixes will be considered on the `master` branch in situations where it does not alter behaviour or features, only fixes a bug. | ||
* All active development is in the `dev` branch. New or updated features must be added to the `dev` branch. Hotfixes | ||
will be considered on the `master` branch in situations where it does not alter behavior or features, only fixes a bug. | ||
* All patches must be provided under the Apache 2.0 License | ||
* Please use the -S option in git to "sign off" that the commit is your work and you are providing it under the Apache 2.0 License | ||
* Please use the -S option in git to "sign off" that the commit is your work and you are providing it under the | ||
Apache 2.0 License | ||
* Submit a Github Pull Request to the appropriate branch and ideally discuss the changes with us in IRC. | ||
* We will look at the patch, test it out, and give you feedback. | ||
* Avoid doing minor whitespace changes, renamings, etc. along with merged content. These will be done by the maintainers from time to time but they can complicate merges and should be done seperately. | ||
* Avoid doing minor whitespace changes, renamings, etc. along with merged content. These will be done by the maintainers | ||
from time to time but they can complicate merges and should be done separately. | ||
* Take care to maintain the existing coding style. | ||
* `golint` and `go fmt` your code. | ||
* `golangci-lint` your code, see [instruction for local installation](https://golangci-lint.run/usage/install/#local-installation) | ||
* `go fmt` your code (with the go version of go.mod) | ||
* Add unit tests for any new or changed functionality. | ||
* All pull requests should be "fast forward" | ||
* If there are commits after yours use “git rebase -i <new_head_branch>” | ||
* If you have local changes you may need to use “git stash” | ||
* For git help see [progit](http://git-scm.com/book) which is an awesome (and free) book on git | ||
|
||
## Creating Pull Requests | ||
|
||
Because Gobot makes use of self-referencing import paths, you will want | ||
to implement the local copy of your fork as a remote on your copy of the | ||
original Gobot repo. Katrina Owen has [an excellent post on this workflow](https://splice.com/blog/contributing-open-source-git-repositories-go/). | ||
|
@@ -53,34 +59,38 @@ The basics are as follows: | |
|
||
2. `go get` the upstream repo and set it up as the `upstream` remote and your own repo as the `origin` remote: | ||
|
||
`go get gobot.io/x/gobot` | ||
`cd $GOPATH/src/gobot.io/x/gobot` | ||
`git remote rename origin upstream` | ||
`git remote add origin [email protected]/YOUR_GITHUB_NAME/gobot` | ||
`go get gobot.io/x/gobot` | ||
`cd $GOPATH/src/gobot.io/x/gobot` | ||
`git remote rename origin upstream` | ||
`git remote add origin [email protected]/YOUR_GITHUB_NAME/gobot` | ||
|
||
All import paths should now work fine assuming that you've got the | ||
proper branch checked out. | ||
All import paths should now work fine assuming that you've got the | ||
proper branch checked out. | ||
|
||
3. Get all the needed gobot's dependencies each of them at their needed version. Gobot uses [dep (Dependency management for Go)](https://golang.github.io/dep/) to manage the project's dependencies. To get all the correct dependencies: | ||
3. Get all the needed gobot's dependencies each of them at their needed version. Gobot uses | ||
[dep (Dependency management for Go)](https://golang.github.io/dep/) to manage the project's dependencies. To get all | ||
the correct dependencies: | ||
|
||
* Install dep tool. Follow the dep [installation](https://golang.github.io/dep/docs/installation.html) instructions in case you don't have it already installed. | ||
* `cd $GOPATH/src/gobot.io/x/gobot` | ||
* `dep ensure` will fetch all the dependencies at their needed version. | ||
* Install dep tool. Follow the dep [installation](https://golang.github.io/dep/docs/installation.html) instructions in | ||
case you don't have it already installed. | ||
* `cd $GOPATH/src/gobot.io/x/gobot` | ||
* `dep ensure` will fetch all the dependencies at their needed version. | ||
|
||
## Landing Pull Requests | ||
|
||
(This is for committers only. If you are unsure whether you are a committer, you are not.) | ||
|
||
1. Set the contributor's fork as an upstream on your checkout | ||
|
||
`git remote add contrib1 https://github.com/contrib1/gobot` | ||
`git remote add contrib1 https://github.com/contrib1/gobot` | ||
|
||
2. Fetch the contributor's repo | ||
|
||
`git fetch contrib1` | ||
`git fetch contrib1` | ||
|
||
3. Checkout a copy of the PR branch | ||
|
||
`git checkout pr-1234 --track contrib1/branch-for-pr-1234` | ||
`git checkout pr-1234 --track contrib1/branch-for-pr-1234` | ||
|
||
4. Review the PR as normal | ||
|
||
|
@@ -104,7 +114,8 @@ By making a contribution to this project, I certify that: | |
|
||
## Code of Conduct | ||
|
||
Gobot is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. [You can read about it here](CODE_OF_CONDUCT.md). | ||
Gobot is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. | ||
[You can read about it here](CODE_OF_CONDUCT.md). | ||
|
||
## Origins | ||
|
||
|