pulumi/sdk/go/common/workspace
Will Jones c496921d44
Enable some more linting rules (#17456)
Issue #10659 lists a number of extra linting checks that we could enable
in order to make our Go code more robust. This commit implements as many
as seem sensible:

* `durationcheck`, which checks for multiplication of `time.Duration`s,
which can lead to unexpected behaviour (e.g. `time.Second * time.Second`
is *not* one second)
* `goprintffuncname`, which checks that `Printf`-like functions are
appropriately suffixed with `f` to indicate as such
* `tenv`, which checks for `os.Setenv` in tests where `t.Setenv` is
generally a better solution
* `wastedassign`, which checks for assignments whose values are never
used (such as initial values before an `if` where both branches then
overwrite the value)
* `whitespace`, which checks for blank lines at the beginning and end of
blocks such as functions, `if`s, `for`s and so on.

This commit does *not* enable the following checks listed in #10659:

* `wrapcheck`, which insists that third-party library errors are always
`%w`rapped -- we have a lot of cases where we don't do this and it's
probably a bit more involved than "just wrap them" in terms of making
sure we don't break anything (maybe)
* `predeclared`, which checks for shadowing of existing Go identifiers
-- we use `old` and `new` a lot, especially in step generation, so this
is probably a slightly bigger clean-up/one we might want to opt out of
* `mnd` (magic number detection) -- we have a lot of failures on this
* `nilnil` -- we only have a couple of failures on this; these could
probably be handled with `//nolint` but for now I've opted not to take
this route.
2024-10-03 17:37:13 +00:00
..
config.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
creds.go Recover from zero-byte `credentials.json` files (#17186) 2024-09-06 09:57:33 +00:00
creds_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
loaders.go New deployment settings wizards and environment variables management comands (#16564) 2024-07-03 20:24:26 +00:00
loaders_test.go ignore unexpected types instead of erroring out (#14149) 2023-10-11 16:39:16 +00:00
paths.go Just use errors.Is instead of As and Is (#17250) 2024-09-12 23:52:26 +00:00
paths_test.go Don't search upwards for policy packs when determining required plugins (#16865) 2024-08-02 11:49:16 +00:00
plugins.go Invalidate GITHUB_TOKEN on 401 (#17351) 2024-09-26 20:28:27 +00:00
plugins_install_nodejs_test.go ci: Use reduced smoke testing on Windows & macOS targets 2022-09-21 09:55:06 -07:00
plugins_install_python_test.go ci: Use reduced smoke testing on Windows & macOS targets 2022-09-21 09:55:06 -07:00
plugins_install_test.go Refactor: move plugin kind to apitype (#15946) 2024-04-25 17:30:30 +00:00
plugins_test.go Invalidate GITHUB_TOKEN on 401 (#17351) 2024-09-26 20:28:27 +00:00
project.go Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00
project.json [sdk] add optional display name and tag fields to project templates (#14587) 2023-11-18 19:04:13 +00:00
project_test.go Preserve ordering when editing stack config. (#17452) 2024-10-02 13:31:10 +00:00
settings.go move pkg/workspace -> sdk/go/common/workspace 2020-03-18 14:35:53 -07:00
templates.go Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00
templates_test.go Use EqualError/ErrorContains instead of Error (#14737) 2023-12-08 06:40:14 +00:00
templates_zip.go Check zipped templates for `Pulumi.yaml` files (#17437) 2024-10-01 12:44:07 +00:00
templates_zip_test.go Check zipped templates for `Pulumi.yaml` files (#17437) 2024-10-01 12:44:07 +00:00
workspace.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00