Skip to content

CI: vet does not cover tagged acceptance files, and there is no gofmt gate #388

Description

@leggetter

Summary

Two gaps remain in CI after #384 added go vet ./... to the unit-test job.

1. vet runs untagged only

go vet ./... does not build files behind build tags, and the acceptance suite has 22 of them (basic, metrics, connection, listen, project_use, manual, ...). So none of test/acceptance/ is vetted on a normal run.

go vet -tags basic ./... is clean today. The other 21 are unverified. Two real findings have already come out of that directory this week that vet would likely have caught earlier: two no-op append(sliceLiteral) calls, and an assertion reading the wrong stream.

Needs a decision on shape: a tag matrix, a comma-separated -tags list (risks duplicate symbols across tags), or vetting the acceptance package separately per tag.

2. No gofmt gate

Nothing checks formatting, which is how two files regressed during the 2026-09-01 work and were only noticed by hand.

This cannot simply be switched on: roughly 40 files on main are already unformatted, so a gate fails immediately. It needs a repo-wide gofmt -w first, which is a large mechanical diff best landed on its own rather than inside a feature branch.

Suggested order

  1. Repo-wide gofmt -w, alone, no behaviour changes.
  2. Add gofmt -l to the unit-test job, failing on non-empty output.
  3. Decide the tagged-vet shape and add it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions