mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-12 10:04:29 +02:00
8dcabc3ef9
* feat(ci): Add codespell to Makefile and GitHub Actions This is a followup from https://github.com/open-telemetry/opentelemetry-go/pull/3980 to add the automation for checking for code spelling errors to a different PR. [Codespell][] makes use of the `.codespellrc` file automatically as a config file for convenience. The configuration file specifies directories and flags to pass to `codespell`. Codespell also makes use of the `.codespellignore` file to ignore certain word spellings. There is a new section in `Makefile` for installing python tooling. It is similar to how the go tools are installed. It sets up a virtualenv in `venv `and installs python tooling there if it hasn't been installed yet. The new [codespell workflow][] will run in pull requests to annotate misspelled words. It is set up to only warn the user with annotations in the pull request if there are typos, but we can fail the pull request as well if we want to by deleting the [warn_only][] key. [codespell]: https://github.com/codespell-project/codespell [codespell workflow]: https://github.com/codespell-project/actions-codespell [warn_only]: https://github.com/codespell-project/actions-codespell#parameter-only_warn * Use docker to run python and codespell Since this is a Go project, having a dependency on python seemed disconcerting. So, docker is used to create a virtual environment with a python image and also run the tools that were installed. * Remove wording on requirement for python * Apply suggestions from code review Co-authored-by: Damien Mathieu <42@dmathieu.com> * Pin versions into requirements.txt * Pin version in requirements.txt * Fix typo in license * Revert typo fix on deleted file * Update .github/workflows/codespell.yaml Co-authored-by: Robert Pająk <pellared@hotmail.com> * Update codespell.yaml * Update codespell.yaml --------- Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com> Co-authored-by: Damien Mathieu <42@dmathieu.com> Co-authored-by: Robert Pająk <pellared@hotmail.com> Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
247 lines
9.2 KiB
YAML
247 lines
9.2 KiB
YAML
# See https://github.com/golangci/golangci-lint#config-file
|
|
run:
|
|
issues-exit-code: 1 #Default
|
|
tests: true #Default
|
|
|
|
linters:
|
|
# Disable everything by default so upgrades to not include new "default
|
|
# enabled" linters.
|
|
disable-all: true
|
|
# Specifically enable linters we want to use.
|
|
enable:
|
|
- depguard
|
|
- errcheck
|
|
- godot
|
|
- gofmt
|
|
- goimports
|
|
- gosimple
|
|
- govet
|
|
- ineffassign
|
|
- misspell
|
|
- revive
|
|
- staticcheck
|
|
- typecheck
|
|
- unused
|
|
|
|
issues:
|
|
# Maximum issues count per one linter.
|
|
# Set to 0 to disable.
|
|
# Default: 50
|
|
# Setting to unlimited so the linter only is run once to debug all issues.
|
|
max-issues-per-linter: 0
|
|
# Maximum count of issues with the same text.
|
|
# Set to 0 to disable.
|
|
# Default: 3
|
|
# Setting to unlimited so the linter only is run once to debug all issues.
|
|
max-same-issues: 0
|
|
# Excluding configuration per-path, per-linter, per-text and per-source.
|
|
exclude-rules:
|
|
# TODO: Having appropriate comments for exported objects helps development,
|
|
# even for objects in internal packages. Appropriate comments for all
|
|
# exported objects should be added and this exclusion removed.
|
|
- path: '.*internal/.*'
|
|
text: "exported (method|function|type|const) (.+) should have comment or be unexported"
|
|
linters:
|
|
- revive
|
|
# Yes, they are, but it's okay in a test.
|
|
- path: _test\.go
|
|
text: "exported func.*returns unexported type.*which can be annoying to use"
|
|
linters:
|
|
- revive
|
|
# Example test functions should be treated like main.
|
|
- path: example.*_test\.go
|
|
text: "calls to (.+) only in main[(][)] or init[(][)] functions"
|
|
linters:
|
|
- revive
|
|
include:
|
|
# revive exported should have comment or be unexported.
|
|
- EXC0012
|
|
# revive package comment should be of the form ...
|
|
- EXC0013
|
|
|
|
linters-settings:
|
|
depguard:
|
|
# Check the list against standard lib.
|
|
# Default: false
|
|
include-go-root: true
|
|
# A list of packages for the list type specified.
|
|
# Default: []
|
|
packages:
|
|
- "crypto/md5"
|
|
- "crypto/sha1"
|
|
- "crypto/**/pkix"
|
|
ignore-file-rules:
|
|
- "**/*_test.go"
|
|
additional-guards:
|
|
# Do not allow testing packages in non-test files.
|
|
- list-type: denylist
|
|
include-go-root: true
|
|
packages:
|
|
- testing
|
|
- github.com/stretchr/testify
|
|
ignore-file-rules:
|
|
- "**/*_test.go"
|
|
- "**/*test/*.go"
|
|
- "**/internal/matchers/*.go"
|
|
godot:
|
|
exclude:
|
|
# Exclude links.
|
|
- '^ *\[[^]]+\]:'
|
|
# Exclude sentence fragments for lists.
|
|
- '^[ ]*[-•]'
|
|
# Exclude sentences prefixing a list.
|
|
- ':$'
|
|
goimports:
|
|
local-prefixes: go.opentelemetry.io
|
|
misspell:
|
|
locale: US
|
|
ignore-words:
|
|
- cancelled
|
|
revive:
|
|
# Sets the default failure confidence.
|
|
# This means that linting errors with less than 0.8 confidence will be ignored.
|
|
# Default: 0.8
|
|
confidence: 0.01
|
|
rules:
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#blank-imports
|
|
- name: blank-imports
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr
|
|
- name: bool-literal-in-expr
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr
|
|
- name: constant-logical-expr
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument
|
|
# TODO (#3372) re-enable linter when it is compatible. https://github.com/golangci/golangci-lint/issues/3280
|
|
- name: context-as-argument
|
|
disabled: true
|
|
arguments:
|
|
allowTypesBefore: "*testing.T"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type
|
|
- name: context-keys-type
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit
|
|
- name: deep-exit
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer
|
|
- name: defer
|
|
disabled: false
|
|
arguments:
|
|
- ["call-chain", "loop"]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#dot-imports
|
|
- name: dot-imports
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports
|
|
- name: duplicated-imports
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return
|
|
- name: early-return
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-block
|
|
- name: empty-block
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines
|
|
- name: empty-lines
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming
|
|
- name: error-naming
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return
|
|
- name: error-return
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings
|
|
- name: error-strings
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf
|
|
- name: errorf
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported
|
|
- name: exported
|
|
disabled: false
|
|
arguments:
|
|
- "sayRepetitiveInsteadOfStutters"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#flag-parameter
|
|
- name: flag-parameter
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches
|
|
- name: identical-branches
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return
|
|
- name: if-return
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement
|
|
- name: increment-decrement
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow
|
|
- name: indent-error-flow
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-shadowing
|
|
- name: import-shadowing
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments
|
|
- name: package-comments
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range
|
|
- name: range
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure
|
|
- name: range-val-in-closure
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address
|
|
- name: range-val-address
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id
|
|
- name: redefines-builtin-id
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format
|
|
- name: string-format
|
|
disabled: false
|
|
arguments:
|
|
- - panic
|
|
- '/^[^\n]*$/'
|
|
- must not contain line breaks
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag
|
|
- name: struct-tag
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else
|
|
- name: superfluous-else
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal
|
|
- name: time-equal
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming
|
|
- name: var-naming
|
|
disabled: false
|
|
arguments:
|
|
- ["ID"] # AllowList
|
|
- ["Otel", "Aws", "Gcp"] # DenyList
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration
|
|
- name: var-declaration
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion
|
|
- name: unconditional-recursion
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
|
|
- name: unexported-return
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
|
|
- name: unhandled-error
|
|
disabled: false
|
|
arguments:
|
|
- "fmt.Fprint"
|
|
- "fmt.Fprintf"
|
|
- "fmt.Fprintln"
|
|
- "fmt.Print"
|
|
- "fmt.Printf"
|
|
- "fmt.Println"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt
|
|
- name: unnecessary-stmt
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
|
|
- name: useless-break
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value
|
|
- name: waitgroup-by-value
|
|
disabled: false
|