Add linter rules to prevent usage of context.Background() and
context.TODO() in test files - t.Context() should be used instead.
The rules only apply to *_test.go files, not production code.
Note: os.Setenv is not covered by forbidigo due to a limitation where
it only catches calls when the return value is assigned. However,
errcheck will flag unchecked os.Setenv calls.
Assisted-By: cagent
Signed-off-by: David Gageot <david.gageot@docker.com>
Most files already grouped imports into "stdlib -> other -> local",
but some files didn't. The gci formatter is similar to goimports, but
has better options to make sure imports are grouped in the expected
order (and to make sure no additional groups are present).
This formatter has a 'fix' function, so code can be re-formatted auto-
matically;
golangci-lint run -v --fix
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
capturing loop variables is no longer needed in go1.22 and higher;
https://go.dev/blog/loopvar-preview
This path enables the copyloopvar linter, which finds places where capturing
is no longer needed, and removes locations where they could be removed.
Also made some minor changes, and renamed some vars in places where
we could use a shorter name that's less likely to conflict with imports.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Eliminate direct dependency on gopkg.in/yaml.v2
* Add gopkg.in/yaml.v2 as a restricted import
* Add github.com/distribution/distribution as a restricted dependency in favor of distribution/reference which is the subset of functionality that Compose needs
* Remove an unused exclusion
NOTE: This does change the `compose config` output slightly but does NOT change the semantics:
* YAML indentation is slightly different for lists (this is a `v2` / `v3` thing)
* JSON is now "minified" instead of pretty-printed (I think this generally desirable and more consistent with other JSON command outputs)
Signed-off-by: Milas Bowman <milas.bowman@docker.com>