Skip to content

Commit 4a31db5

Browse files
author
Alexis Destrez
committed
Improve documentation and fix golangci-lint broken upgrade
1 parent 64fa10c commit 4a31db5

File tree

11 files changed

+328
-199
lines changed

11 files changed

+328
-199
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,23 @@ jobs:
1414
steps:
1515
- uses: "cachix/install-nix-action@v22"
1616
with:
17-
nix_path: "nixpkgs=channel:nixos-22.11"
17+
nix_path: "nixpkgs=channel:nixos-unstable"
1818
- uses: "actions/checkout@v3"
1919
- name: "Print installed nixpkgs version"
2020
run: "nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'"
2121
- name: "Print flake metadata"
2222
run: "nix flake metadata"
2323
- name: "Setup shell"
2424
run: "nix develop --command true"
25-
- name: "Run go unit tests"
26-
run: "nix develop --command go test -v -race -count=1 ./..."
27-
- name: "Lint go files"
28-
run: "nix develop --command golangci-lint run --verbose"
25+
- name: "Lint nix files"
26+
run: "nix develop --command ./scripts/lint-nix.sh"
2927
- name: "Lint shell files"
3028
run: "nix develop --command shellcheck **/*.sh"
3129
- name: "Lint yaml files"
3230
run: "nix develop --command yamllint --config-file .yamllint.yml ."
31+
- name: "Lint go files"
32+
run: "nix develop --command ./scripts/lint-go.sh"
33+
- name: "Run go unit tests"
34+
run: "nix develop --command go test -v -race -count=1 ./..."
3335

3436
...

.golangci.yml

Lines changed: 84 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,18 @@ issues:
1212

1313
linters-settings:
1414
depguard:
15-
list-type: "denylist"
16-
packages-with-error-message:
17-
- github.com/stretchr/testify/require: "testing is done using gotest.tools/v3/assert"
18-
- github.com/stretchr/testify/assert: "testing is done using gotest.tools/v3/assert"
15+
rules:
16+
all:
17+
deny:
18+
- pkg: "reflect"
19+
desc: "by default reflect import is prohibited due to the high level of complexity it brings into the code"
20+
- pkg: "github.com/pkg/errors"
21+
desc: "use go1.13 errors"
22+
test:
23+
files: ["$test"]
24+
deny:
25+
- pkg: "github.com/stretchr/testify"
26+
desc: "testing should be done using gotest.tools/v3/assert"
1927
errcheck:
2028
check-blank: true
2129
exclude-functions:
@@ -70,61 +78,40 @@ linters-settings:
7078
nolintlint:
7179
require-explanation: true
7280
require-specific: true
81+
reassign:
82+
patterns: [".*"]
7383
revive:
84+
enable-all-rules: true
7485
rules:
75-
- name: "atomic"
76-
- name: "bare-return"
77-
- name: "blank-imports"
78-
- name: "bool-literal-in-expr"
79-
- name: "call-to-gc"
80-
- name: "constant-logical-expr"
81-
- name: "context-as-argument"
82-
- name: "context-keys-type"
83-
- name: "datarace"
84-
- name: "deep-exit"
85-
- name: "defer"
86-
- name: "defer"
86+
- name: "add-constant"
87+
disabled: true
88+
- name: "banned-characters"
89+
disabled: true
90+
- name: "cognitive-complexity"
91+
disabled: true
92+
- name: "cyclomatic"
93+
disabled: true
94+
- name: "file-header"
95+
disabled: true
96+
- name: "flag-parameter"
97+
disabled: true
98+
- name: "function-length"
99+
disabled: true
100+
- name: "imports-blacklist"
101+
disabled: true
102+
- name: "line-length-limit"
103+
disabled: true
104+
- name: "max-public-structs"
105+
disabled: true
106+
- name: "package-comments"
107+
disabled: true
108+
- name: "argument-limit"
109+
disabled: true
87110
- name: "defer"
88-
- name: "dot-imports"
89-
- name: "duplicated-imports"
90-
- name: "early-return"
91-
- name: "empty-block"
92-
- name: "empty-lines"
93-
- name: "error-naming"
94-
- name: "error-return"
95-
- name: "error-strings"
96-
- name: "errorf"
97-
- name: "exported"
98-
- name: "get-return"
99-
- name: "identical-branches"
100-
- name: "if-return"
101-
- name: "import-shadowing"
102-
- name: "increment-decrement"
103-
- name: "indent-error-flow"
104-
- name: "modifies-parameter"
105-
- name: "modifies-value-receiver"
106-
- name: "optimize-operands-order"
107-
- name: "range"
108-
- name: "range-val-address"
109-
- name: "range-val-in-closure"
110-
- name: "receiver-naming"
111-
- name: "redefines-builtin-id"
112-
- name: "string-of-int"
113-
- name: "struct-tag"
114-
- name: "superfluous-else"
115-
- name: "time-equal"
116-
- name: "time-naming"
117-
- name: "unconditional-recursion"
118-
- name: "unexported-naming"
119-
- name: "unexported-return"
120-
- name: "unnecessary-stmt"
121-
- name: "unreachable-code"
122-
- name: "unused-parameter"
123-
- name: "unused-receiver"
124-
- name: "useless-break"
125-
- name: "var-declaration"
126-
- name: "var-naming"
127-
- name: "waitgroup-by-value"
111+
arguments:
112+
- ["call-chain", "loop", "recover", "immediate-recover", "return"]
113+
- name: "function-result-limit"
114+
arguments: [3]
128115
stylecheck:
129116
checks: ["all", "-ST1000", "ST1020", "ST1021", "ST1022"]
130117
tagliatelle:
@@ -136,62 +123,47 @@ linters-settings:
136123
multi-func: true
137124

138125
linters:
139-
disable-all: true
140-
enable:
141-
- "asciicheck"
142-
- "bidichk"
143-
- "containedctx"
144-
- "contextcheck"
145-
- "depguard"
146-
- "dupl"
147-
- "dupword"
148-
- "durationcheck"
149-
- "errcheck"
150-
- "errchkjson"
151-
- "errname"
152-
- "errorlint"
153-
- "execinquery"
154-
- "exhaustive"
155-
- "exportloopref"
156-
- "gci"
157-
- "gochecknoglobals"
158-
- "gochecknoinits"
159-
- "goconst"
160-
- "gocritic"
161-
- "godot"
162-
- "godox"
163-
- "gofumpt"
164-
- "gomnd"
165-
- "goprintffuncname"
166-
- "gosec"
167-
- "gosimple"
168-
- "govet"
169-
- "grouper"
170-
- "importas"
171-
- "ineffassign"
172-
- "interfacebloat"
173-
- "misspell"
174-
- "nakedret"
175-
- "nestif"
176-
- "nilerr"
177-
- "nilnil"
178-
- "noctx"
179-
- "nolintlint"
180-
- "nonamedreturns"
181-
- "nosprintfhostport"
182-
- "predeclared"
183-
- "revive"
184-
- "staticcheck"
185-
- "stylecheck"
186-
- "tagliatelle"
187-
- "tenv"
188-
- "testableexamples"
189-
- "typecheck"
190-
- "unconvert"
191-
- "unparam"
192-
- "unused"
193-
- "usestdlibvars"
194-
- "whitespace"
126+
enable-all: true
127+
disable:
128+
- "bodyclose"
129+
- "cyclop"
130+
- "deadcode"
131+
- "decorder"
132+
- "dogsled"
133+
- "exhaustivestruct"
134+
- "exhaustruct"
135+
- "forbidigo"
136+
- "forcetypeassert"
137+
- "funlen"
138+
- "ginkgolinter"
139+
- "gocognit"
140+
- "gocyclo"
141+
- "goerr113"
142+
- "goheader"
143+
- "golint"
144+
- "ifshort"
145+
- "interfacer"
146+
- "ireturn"
147+
- "lll"
148+
- "loggercheck"
149+
- "maintidx"
150+
- "makezero"
151+
- "maligned"
152+
- "nlreturn"
153+
- "nosnakecase"
154+
- "paralleltest"
155+
- "prealloc"
156+
- "promlinter"
157+
- "scopelint"
158+
- "structcheck"
159+
- "testpackage"
160+
- "thelper"
161+
- "tparallel"
162+
- "varcheck"
163+
- "varnamelen"
164+
- "wrapcheck"
165+
- "wsl"
166+
- "zerologlint"
195167

196168
run:
197169
skip-dirs:

0 commit comments

Comments
 (0)