Linters for Envbuilder aren't catching some common concerns that we have
- Lingua principale
- Go
- Stelle
- 300
- Fork
- 64
- Merge medio
- 20m
- PR unite (30g)
- 1
Descrizione
Suggestion: It's best practice for exported functions to have documentation (`// EnvWithBuildSecretPrefix ...`). It's part of the original Go linter (https://pkg.go.dev/github.com/golang/lint) and [CodeReviewComments](https://go.dev/wiki/CodeReviewComments#doc-comments)/[Effective Go](https://go.dev/doc/effective_go#commentary), so a bit surprising that it's not caught.
```
❯ golint ./...
envbuilder.go:43:2: a blank import should be only in a main or test package, or have a comment justifying it
devcontainer/devcontainer.go:34:6: exported type Spec should have comment or be unexported
devcontainer/devcontainer.go:50:6: exported type LifecycleScripts should have comment or be unexported
devcontainer/devcontainer.go:57:6: exported type BuildSpec should have comment or be unexported
devcontainer/devcontainer.go:78:1: exported function SubstituteVars should have comment or be unexported
devcontainer/script.go:16:6: exported type LifecycleScript should have comment or be unexported
devcontainer/script.go:21:1: exported method LifecycleScript.IsEmpty should have comment or be unexported
```
It seems `golint` is marked deprecated in `golangci-lint` though, so I guess the alternative linters aren't enforcing this rule. 😔 I always found it slightly annoying but ultimately worth the annoyance 😄.
_Originally posted by @mafredri in https://github.com/coder/envbuilder/pull/391#discussion_r1818991909_
---
There seem to be some linting rules that we'd value here. Two of them are:
* Tests should run in parallel when they can
* Exported functions should be documented
There may be others. It would be worth checking coder/coder's linting config to see what else we're missing. We should add the linters we deem important and ensure the project conforms to them.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia esaminando la configurazione del linting e confrontandola con la configurazione di coder/coder, quindi esegui il linter attuale su envbuilder.go, devcontainer/devcontainer.go e devcontainer/script.go. Aggiungi le regole concordate per la documentazione degli elementi esportati e per i test parallelizzabili, risolvi le violazioni risultanti e verifica che i comandi di lint e test del progetto vadano a buon fine.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- go
- Ambito
- testing, tooling
- Tipo di issue
- Refactoring
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100