coder / coder/envbuilder

Linters for Envbuilder aren't catching some common concerns that we have

Aperta
#399 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
ci
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.