next -> main #46
Reference in New Issue
Block a user
Delete Branch "next"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Milestone branch for the current cycle. Further commits will accumulate here.
Commits
60442cebuild: add amake buildtarget, drop README's rawgo build(closes #19)e3ab4abbuild: add amake covertarget for per-function coverage (closes #17)What changed
Makefilegainsbuild,coverandcover-html. Every generated artifact goes underbuild/, which.gitignorecovers as a whole:make build→build/roguemake cover→build/coverage.out, then the per-function report on stdoutmake cover-html→build/coverage.htmlNone of the three is in
checkortest;checkis still exactlyfmt-check lint test. All three write files, so adding any of them tocheckwould break the rule thatcheckdoes not modify the working tree — thecheckrecipe carries a comment saying so.README.md: the "Building and running" block and the run examples usemake build/./build/rogue, and the make-target list namesbuild,coverandcover-html. No rawgoinvocation is left in the file..dockerignoreexcludes/build/. Not asked for in either issue: the new targets put a multi-megabyte binary inside the repo, which would otherwise ship into the lint build context. Nothing excluded is a Go source,go.mod/go.sumor.golangci.yml.TODO.mdgets a Completed Steps entry per commit. "Next Step" is not rotated.No Go source changes.
.golangci.ymluntouched (git diffover it is empty across both commits).Verification
GOFLAGS=-count=1 make checkon the rebased head, withbuild/deleted first:The lint layer reports
DONE 13.2s, notCACHED, so it executed. No test line carries(cached); the durations are real runs under-race.git status --porcelainis empty afterwards.Artifacts, created after that
check:git status --porcelainempty with all three present, so none is committable.make coveroutput is per-function, e.g.game/weapons.go:109: wield 0.0%,term/tcell.go:94: ReadChar 0.0%..dockerignorechange confirmed by build-context size: the run before it transferred 6.25MB withbuild/roguepresent; after it, 72.32kB.Note
golangci-lintemits a deprecation warning on every run —gomodguarddeprecated since v2.12.0, replaced bygomodguard_v2. Not touched here:.golangci.ymlis out of scope for both issues.next -> mainto next -> mainReview: PASS
Independent review of
e3ab4abin a fresh clone. Both definitions of done are met (#19, #17); no defects found. Verified:.dockerignoregate intact (below),checkstill exactlyfmt-check lint test, cleangit statusaftercheck/build/cover/cover-html, working binary atbuild/rogue, genuine 607-line per-function report plus HTML, no rawgoinREADME.md, one TODO entry per commit with "Next Step" unrotated, exact(closes #19)/(closes #17)titles, no Go or.golangci.ymlchanges, no scaffold additions, prettier clean, merges cleanly tomain, no Claude/Anthropic references or trailers..dockerignoregate, verified behaviourally not by reasoningPlanted two real violations (an unused over-length global in the tracked
game/misc.go, and a brand-new self-containedgame/probe_*.goreferenced by nothing) plus one in a Go file underbuild/, then ranmake lint. Result: both normal-source violations were caught and the build failed (3 issues: lll 1, unused 2); only thebuild/one was invisible.lllfiring at 88 columns proves.golangci.ymlreached and was applied, andgo mod downloadprovesgo.mod/go.sumdid. Probes reverted; tree clean.The exclusion cannot become the silent-drop trap the file warns about, because
/build/is also in.gitignore—git add build/x.gois refused, so no Go source under that path can ever exist in a tracked state. Effectiveness confirmed too: with 6MB of artifacts present the lint context transferred 15.85kB.Anomalies and disclosures
make coveris subject to Go's test cache and prints(cached)on a repeat run. Probed rather than assumed: with the profile deleted, a fully-cached run still regeneratesbuild/coverage.outand the report is cache-keyed to the sources, so it cannot go stale. Not a defect, but a cachedcoverlooks like nothing ran..dockerignoreevidence (6.25MB → 72.32kB) is a BuildKit incremental-context delta, not absolute context size. On a fresh clone the full transfer is 835.77kB. The conclusion stands; the figures are not reproducible as absolutes.make check, which I ran green in full: lint layerDONE 21.6swith0 issues.(notCACHED), testscmd/rogue 1.022s/game 3.461sunderGOFLAGS=-count=1with zero(cached)markers..gitignore:/build/landed in commit 1 (and*.outpredates both), so a stray profile is uncommittable either way.gomodguarddeprecation warning noted in the PR body is real and correctly left alone —.golangci.ymlis byte-identical to the canonical shared config perMEMORY.mdand must not be edited, so it belongs upstream or in its own issue.covercomment ("The percentagemake testprints is a per-package total and cannot answer that") is rationale rather than a trap, so it sits on the line the 2026-08-10 comment rule draws.Labels left unchanged for the caller.