github.com/ld86/docker@v1.7.1-rc3/docs/project/coding-style.md (about) 1 <!--[metadata]> 2 +++ 3 title = "Coding style checklist" 4 description = "List of guidelines for coding Docker contributions" 5 keywords = ["change, commit, squash, request, pull request, test, unit test, integration tests, Go, gofmt, LGTM"] 6 [menu.main] 7 parent = "smn_contribute" 8 weight=7 9 +++ 10 <![end-metadata]--> 11 12 # Coding style checklist 13 14 This checklist summarizes the material you experienced working through [make a 15 code contribution](/project/make-a-contribution) and [advanced 16 contributing](/project/advanced-contributing). The checklist applies to both 17 program code and documentation code. 18 19 ## Change and commit code 20 21 * Fork the `docker/docker` repository. 22 23 * Make changes on your fork in a feature branch. Name your branch `XXXX-something` 24 where `XXXX` is the issue number you are working on. 25 26 * Run `gofmt -s -w file.go` on each changed file before 27 committing your changes. Most editors have plug-ins that do this automatically. 28 29 * Update the documentation when creating or modifying features. 30 31 * Commits that fix or close an issue should reference them in the commit message 32 `Closes #XXXX` or `Fixes #XXXX`. Mentions help by automatically closing the 33 issue on a merge. 34 35 * After every commit, run the test suite and ensure it is passing. 36 37 * Sync and rebase frequently as you code to keep up with `docker` master. 38 39 * Set your `git` signature and make sure you sign each commit. 40 41 * Do not add yourself to the `AUTHORS` file. This file is autogenerated from the 42 Git history. 43 44 ## Tests and testing 45 46 * Submit unit tests for your changes. 47 48 * Make use of the builtin Go test framework built. 49 50 * Use existing Docker test files (`name_test.go`) for inspiration. 51 52 * Run <a href="../test-and-docs" target="_blank">the full test suite</a> on your 53 branch before submitting a pull request. 54 55 * Run `make docs` to build the documentation and then check it locally. 56 57 * Use an <a href="http://www.hemingwayapp.com" target="_blank">online grammar 58 checker</a> or similar to test you documentation changes for clarity, 59 concision, and correctness. 60 61 ## Pull requests 62 63 * Sync and cleanly rebase on top of Docker's `master` without multiple branches 64 mixed into the PR. 65 66 * Before the pull request, squash your commits into logical units of work using 67 `git rebase -i` and `git push -f`. 68 69 * Include documentation changes in the same commit so that a revert would 70 remove all traces of the feature or fix. 71 72 * Reference each issue in your pull request description (`#XXXX`) 73 74 ## Respond to pull requests reviews 75 76 * Docker maintainers use LGTM (**l**ooks-**g**ood-**t**o-**m**e) in PR comments 77 to indicate acceptance. 78 79 * Code review comments may be added to your pull request. Discuss, then make 80 the suggested modifications and push additional commits to your feature 81 branch. 82 83 * Incorporate changes on your feature branch and push to your fork. This 84 automatically updates your open pull request. 85 86 * Post a comment after pushing to alert reviewers to PR changes; pushing a 87 change does not send notifications. 88 89 * A change requires LGTMs from an absolute majority maintainers of an 90 affected component. For example, if you change `docs/` and `registry/` code, 91 an absolute majority of the `docs/` and the `registry/` maintainers must 92 approve your PR. 93 94 ## Merges after pull requests 95 96 * After a merge, [a master build](https://master.dockerproject.org/) is 97 available almost immediately. 98 99 * If you made a documentation change, you can see it at 100 [docs.master.dockerproject.org](http://docs.master.dockerproject.org/).