CONTRIBUTING.md 2.54 KB
Newer Older
1
# On Contributing
David Haynes's avatar
David Haynes committed
2

3
## git
4

5 6 7
First take a look at [github flow](https://guides.github.com/introduction/flow/)
as this page gives a good starting point on understanding how to work with `git`
in an open source repo.
David Haynes's avatar
David Haynes committed
8

9 10 11 12
**Note:**

You will need to be a member before making any contributions. Join the slack #go channel and ask nicely.

13
### Branches
David Haynes's avatar
David Haynes committed
14

15 16 17
Each branch off of the development branch serves one and only one purpose: to
add, modify, or remove features/bugs from Go. Our list of tasks can be found on
the issues page.
David Haynes's avatar
David Haynes committed
18

19
If you decide to take on an issue for Go you will need to work in a branch off
20
of the current development branch (ie. `2.3-dev` with 2.3 being the version in
David Haynes's avatar
David Haynes committed
21
development).
David Haynes's avatar
David Haynes committed
22

23
This can be done with the following chain of `git` commands within `go/`:
David Haynes's avatar
David Haynes committed
24

David Haynes's avatar
David Haynes committed
25 26 27 28 29
```sh
git pull
git checkout 2.3-dev
git checkout -B ##-shortdescription
```
David Haynes's avatar
David Haynes committed
30

31 32 33 34 35 36 37 38
**Note:**

Replace `##` with the issue number that you are working on, and replace
`shortdescription` with a few words (<=4) that in brief describe what the branch
does.

**Example:**

David Haynes's avatar
David Haynes committed
39 40 41 42 43
```sh
git pull
git checkout 2.3-dev
git checkout -B 102-readmeUpdates
```
44 45 46

If you are working on something that does not have an issue please open a new
issue before creating your branch.
David Haynes's avatar
David Haynes committed
47 48 49

### Commits & Their Messages

50 51
It is important to commit more often than not such that if we run into issues we
can narrow down which commit started to cause issues.
David Haynes's avatar
David Haynes committed
52 53 54 55 56

Commit messages should follow the format:

#### Title -

57
Should fill in the blank:
David Haynes's avatar
David Haynes committed
58

59
    This commit ______
David Haynes's avatar
David Haynes committed
60

61 62 63 64 65 66 67
Additionally, if you are closing an issue include:

    (Closes #issue_number_here)

Example commit title:

    Complete the about page + TOS (Closes #36)
68

David Haynes's avatar
David Haynes committed
69
#### Description -
70

David Haynes's avatar
David Haynes committed
71 72 73 74
Bullet points of some highlights from the commit.

They don't have to be super serious (see any of my commits) though just a tad bit of info is nice.

75 76 77 78 79 80
Example commit description:

    - mostly talk about how great SRCT (and :dhaynes:) is
    - plus a short blurb on how we can ban you

[Example full commit](https://git.gmu.edu/srct/go/commit/db89af2e4ffd06a6044d3301a3f7a45ced74799a)
David Haynes's avatar
David Haynes committed
81

82
### Merging to the current development branch
83

84 85 86 87 88 89 90
Once you've finished work in a branch you will need to push your commits to gitlab.

    git push origin ##-branchname

`Origin` is gitlab.

Open a [merge request](https://git.gmu.edu/srct/go/merge_requests/new)
91 92 93
to start the process of getting your code into the repo. Your code wil be reviewed
by another member before being merged. Your code must pass our tests and include
in the description:
94

95
    Closes #issue_number_here
David Haynes's avatar
David Haynes committed
96

97
[Example pull request](https://git.gmu.edu/srct/go/merge_requests/25)