Skip to content

Org upkeep (.github#1): Go 1.27.1, Rust 1.98.1, goreleaser pin, core v0.1.5, JSON logs off a terminal, control-plane lint - #130

Merged
CMGS merged 7 commits into
mainfrom
upkeep/github-1
Sep 24, 2026
Merged

CMGS merged 7 commits into
mainfrom
upkeep/github-1

Conversation

@CMGS

@CMGS CMGS commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

Implements the per-repo part of cocoonstack/.github#1: revive default rules, nolintlint, Go 1.27.1, the pinned tool versions, projecteru2/core v0.1.5 and JSON log records when stderr is not a terminal (only the sections that apply here).

Commits

  • 3b99e7d build: go 1.27.1
  • eb255ce build: goreleaser v2.18.2
  • db6c2f3 log: JSON records when stderr is not a terminal
  • ab6a58b build: rust 1.98.1
  • 1cacbf7 deps: projecteru2/core v0.1.5
  • e180bea docs: package comment for the control-plane entry point
  • 915a937 lint: golangci-lint for control-plane

Notes

  • control-plane joins the family lint baseline: the shared .golangci.yml (one extra exclusion: goconst under internal/gateway/mock/, fixture strings), a make lint target that loops linux/darwin over ./... and --build-tags integration ./internal/integration, and CI runs it. The 17 findings are fixed in the same commit; the two cookie gosec hits are nolinted because Secure follows the documented CP_COOKIE_SECURE (default unchanged), and the argon2 key length is bounded two lines above its cast.
  • run()'s shutdown closure keeps its own shutdownErr: it runs concurrently with ListenAndServe, so reusing the named return would race.
  • core v0.1.5 requires golang.org/x/crypto v0.56.0, which lifts control-plane's direct requirement from v0.55.0; sentry-go and genproto/rpc move as indirect lines.
  • Rust 1.98.1: channel, rust-version and the Dockerfile base (digest from crane digest rust:1.98.1) move together.

JSON logs off a terminal

control-plane: stderr to a file gives {"level":"info","func":"main.run",...}; under script -q the console line has ANSI colour codes.

Gates

Run with GOWORK=off against the pinned golangci-lint v2.13.2 (built with go1.27.1):

fmt-check PASS
lint PASS
asl-linux PASS
asl-darwin PASS
vet PASS
test PASS
build PASS
rust PASS

gofumpt v0.12.0 / goimports v0.50.0 are held until the next golangci-lint release vendors them (see the issue).

core v0.1.5 requires golang.org/x/crypto v0.56.0, which lifts
control-plane's direct requirement.
Onboard the family config (vk-sandbox's .golangci.yml, plus one
goconst exclusion for gateway/mock's fixture strings) and fix the 10
findings it surfaces: one shared "status" JSON key constant, an
exitAfterDefer restructure in main, four govet shadow sites (reuse the
outer err where sequential control flow makes it equivalent, rename
the shutdown-log err to avoid racing the outer named return), and two
nolint annotations (argon2 key length is bounds-checked; cookie Secure
follows CP_COOKIE_SECURE by design).
@CMGS
CMGS merged commit 38d842c into main Sep 24, 2026
2 checks passed
@CMGS
CMGS deleted the upkeep/github-1 branch September 24, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant