G-Research / fasttrackml

Experiment tracking server focused on speed and scalability
https://fasttrackml.io/
Apache License 2.0
97 stars 18 forks source link

Add golangci-lint to pipeline #213

Closed Smaug123 closed 10 months ago

Smaug123 commented 1 year ago

There are a number of lint failures, of which these ones are pretty concerning because they indicate unchecked errors:

pkg/api/aim/encoding/encoder.go:86:16                                      errcheck     Error return value of `binary.Write` is not checked
pkg/api/aim/encoding/encoder.go:140:15                                     errcheck     Error return value of `binary.Write` is not checked
tests/integration/golang/helpers/client.go:96:23                           errcheck     Error return value of `resp.Body.Close` is not checked
tests/integration/golang/helpers/client.go:138:23                          errcheck     Error return value of `resp.Body.Close` is not checked
pkg/database/database.go:125:12                                            errcheck     Error return value of `DB.Close` is not checked
pkg/database/database.go:163:11                                            errcheck     Error return value of `DB.Close` is not checked
pkg/database/database.go:168:9                                             errcheck     Error return value of `DB.Use` is not checked
pkg/database/database.go:178:10                                            errcheck     Error return value of `DB.DB.DB` is not checked
pkg/database/database.go:185:13                                            errcheck     Error return value of `DB.Close` is not checked
pkg/api/mlflow/dao/convertors/helpers.go:10:5                              errcheck     Error return value of `rand.Int` is not checked
pkg/api/mlflow/dao/convertors/helpers.go:11:5                              errcheck     Error return value of `rand.Int` is not checked
pkg/api/mlflow/dao/convertors/helpers.go:12:5                              errcheck     Error return value of `rand.Int` is not checked
pkg/api/aim/query/clause.go:21:22                                          errcheck     Error return value of `builder.WriteString` is not checked
pkg/api/aim/query/clause.go:23:22                                          errcheck     Error return value of `builder.WriteString` is not checked
pkg/api/aim/query/clause.go:33:22                                          errcheck     Error return value of `builder.WriteString` is not checked
pkg/api/aim/runs.go:639:19                                                 errcheck     Error return value of `rows.Close` is not checked
pkg/api/aim/runs.go:841:19                                                 errcheck     Error return value of `rows.Close` is not checked
pkg/api/aim/runs.go:1039:15                                                errcheck     Error return value of `binary.Write` is not checked
pkg/ui/chooser/routes.go:17:7                                              errcheck     Error return value of `fs.Sub` is not checked
pkg/api/mlflow/controller/metric.go:73:19                                  errcheck     Error return value of `rows.Close` is not checked
pkg/api/mlflow/controller/metric.go:89:22                                  errcheck     Error return value of `writer.Close` is not checked
pkg/api/mlflow/controller/metric.go:96:13                                  errcheck     Error return value is not checked
pkg/cmd/decode.go:25:17                                                    errcheck     Error return value of `f.Close` is not checked
pkg/cmd/root.go:32:18                                                      errcheck     Error return value of `viper.BindPFlags` is not checked
pkg/cmd/server.go:50:16                                                    errcheck     Error return value of `db.Close` is not checked
pkg/cmd/server.go:205:30                                                   errcheck     Error return value of `(*github.com/spf13/pflag.FlagSet).MarkHidden` is not checked
pkg/cmd/server.go:207:30                                                   errcheck     Error return value of `(*github.com/spf13/pflag.FlagSet).MarkHidden` is not checked
pkg/cmd/server.go:208:15                                                   errcheck     Error return value of `viper.BindEnv` is not checked
pkg/cmd/server.go:209:15                                                   errcheck     Error return value of `viper.BindEnv` is not checked

Consider adding golangci-lint to the pipeline. (I generated the above with nix-shell -p golangci-lint -p go --command "golangci-lint run".)

jgiannuzzi commented 1 year ago

Thanks for reporting this @Smaug123!

Another way to run this within the devcontainer is by doing make lint.

We are aware of these issues and have been progressively fixing them, but we should indeed do one more push to fix all of them and enforce their absence in the CI pipeline. I have added this to the next sprint with a high priority.

jgiannuzzi commented 1 year ago

By the way, we do already enforce quite a bit of linting in the CI pipeline via gofumpt, goimports, go vet, and staticcheck!