github.com/nf/docker@v1.8.1/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 * Run `golint` on each changed file before 30 committing your changes. 31 32 * Update the documentation when creating or modifying features. 33 34 * Commits that fix or close an issue should reference them in the commit message 35 `Closes #XXXX` or `Fixes #XXXX`. Mentions help by automatically closing the 36 issue on a merge. 37 38 * After every commit, run the test suite and ensure it is passing. 39 40 * Sync and rebase frequently as you code to keep up with `docker` master. 41 42 * Set your `git` signature and make sure you sign each commit. 43 44 * Do not add yourself to the `AUTHORS` file. This file is autogenerated from the 45 Git history. 46 47 ## Tests and testing 48 49 * Submit unit tests for your changes. 50 51 * Make use of the builtin Go test framework built. 52 53 * Use existing Docker test files (`name_test.go`) for inspiration. 54 55 * Run <a href="../test-and-docs" target="_blank">the full test suite</a> on your 56 branch before submitting a pull request. 57 58 * Run `make docs` to build the documentation and then check it locally. 59 60 * Use an <a href="http://www.hemingwayapp.com" target="_blank">online grammar 61 checker</a> or similar to test you documentation changes for clarity, 62 concision, and correctness. 63 64 ## Pull requests 65 66 * Sync and cleanly rebase on top of Docker's `master` without multiple branches 67 mixed into the PR. 68 69 * Before the pull request, squash your commits into logical units of work using 70 `git rebase -i` and `git push -f`. 71 72 * Include documentation changes in the same commit so that a revert would 73 remove all traces of the feature or fix. 74 75 * Reference each issue in your pull request description (`#XXXX`) 76 77 ## Respond to pull requests reviews 78 79 * Docker maintainers use LGTM (**l**ooks-**g**ood-**t**o-**m**e) in PR comments 80 to indicate acceptance. 81 82 * Code review comments may be added to your pull request. Discuss, then make 83 the suggested modifications and push additional commits to your feature 84 branch. 85 86 * Incorporate changes on your feature branch and push to your fork. This 87 automatically updates your open pull request. 88 89 * Post a comment after pushing to alert reviewers to PR changes; pushing a 90 change does not send notifications. 91 92 * A change requires LGTMs from an absolute majority maintainers of an 93 affected component. For example, if you change `docs/` and `registry/` code, 94 an absolute majority of the `docs/` and the `registry/` maintainers must 95 approve your PR. 96 97 ## Merges after pull requests 98 99 * After a merge, [a master build](https://master.dockerproject.org/) is 100 available almost immediately. 101 102 * If you made a documentation change, you can see it at 103 [docs.master.dockerproject.org](http://docs.master.dockerproject.org/).