Document our linting practices
Signed-off-by: Nic Cope <negz@rk0n.org>
This commit is contained in:
		
							parent
							
								
									78199c28a2
								
							
						
					
					
						commit
						8c6a6395e2
					
				|  | @ -52,17 +52,49 @@ This is a rough outline of what a contributor's workflow looks like: | |||
| - Make your changes and arrange them in readable commits. | ||||
| - Make sure your commit messages are in the proper format (see below). | ||||
| - Push your changes to the branch in your fork of the repository. | ||||
| - Make sure all tests pass, and add any new tests as appropriate. | ||||
| - Make sure all linters and tests pass, and add any new tests as appropriate. | ||||
| - Submit a pull request to the original repository. | ||||
| 
 | ||||
| ## Building | ||||
| 
 | ||||
| Details about building crossplane can be found in [INSTALL.md](INSTALL.md). | ||||
| 
 | ||||
| ## Coding Style | ||||
| ## Coding Style and Linting | ||||
| 
 | ||||
| Crossplane projects are written in golang and follows the style guidelines dictated by | ||||
| the go fmt as well as go vet tools. | ||||
| Crossplane projects are written in Go. Coding style is enforced by | ||||
| [golangci-lint](https://github.com/golangci/golangci-lint). Crossplane's linter | ||||
| configuration is [documented here](.golangci.yml). Builds will fail locally and | ||||
| in CI if linter warnings are introduced: | ||||
| 
 | ||||
| ```bash | ||||
| $ make build | ||||
| ==> Linting /REDACTED/go/src/github.com/crossplaneio/crossplane/cluster/charts/crossplane | ||||
| [INFO] Chart.yaml: icon is recommended | ||||
| 
 | ||||
| 1 chart(s) linted, no failures | ||||
| 20:31:42 [ .. ] helm dep crossplane 0.1.0-136.g2dfb012.dirty | ||||
| No requirements found in /REDACTED/go/src/github.com/crossplaneio/crossplane/cluster/charts/crossplane/charts. | ||||
| 20:31:42 [ OK ] helm dep crossplane 0.1.0-136.g2dfb012.dirty | ||||
| 20:31:42 [ .. ] golangci-lint | ||||
| pkg/clients/azure/redis/redis.go:35:7: exported const `NamePrefix` should have comment or be unexported (golint) | ||||
| const NamePrefix = "acr" | ||||
|       ^ | ||||
| 20:31:55 [FAIL] | ||||
| make[2]: *** [go.lint] Error 1 | ||||
| make[1]: *** [build.all] Error 2 | ||||
| make: *** [build] Error 2 | ||||
| ``` | ||||
| 
 | ||||
| Note that Jenkins builds will not output linter warnings in the build log. | ||||
| Instead `upbound-bot` will leave comments on your pull request when a build | ||||
| fails due to linter warnings. You can run `make lint` locally to help determine | ||||
| whether you've fixed any linter warnings detected by Jenkins. | ||||
| 
 | ||||
| In some cases linter warnings will be false positives. `golangci-lint` supports | ||||
| `//nolint[:lintername]` comment directives in order to quell them. Please | ||||
| include an explanatory comment if you must add a `//nolint` comment. You may | ||||
| also submit a PR against [`.golangci.yml`](.golangci.yml) if you feel | ||||
| particular linter warning should be permanently disabled. | ||||
| 
 | ||||
| ## Comments | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								build
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								build
								
								
								
								
							|  | @ -1 +1 @@ | |||
| Subproject commit 1f3b6b720f96f6c82445e331af98ca61502adb12 | ||||
| Subproject commit ea382a1202c8f83f9f9e93f8130eab5fd5b442c2 | ||||
		Loading…
	
		Reference in New Issue