coder / coder/envbuilder

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

Offen
#399 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
ci
Vorherrschende Sprache
Go
Sterne
300
Forks
64
Ø Merge
20 Min.
Gemergte PRs (30 T.)
1

Beschreibung

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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne mit der Überprüfung der Linting-Konfiguration und vergleiche sie mit der Konfiguration von coder/coder. Führe anschließend den aktuellen Linter gegen envbuilder.go, devcontainer/devcontainer.go und devcontainer/script.go aus. Füge die vereinbarten Regeln für die Dokumentation exportierter Elemente und parallelisierbare Tests hinzu, behebe die daraus resultierenden Verstöße und stelle sicher, dass die Lint- und Testbefehle des Projekts erfolgreich ausgeführt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
go
Bereich
testing, tooling
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.