Finish the lint remediation: script/cibuild exits 0 (closes #61) #77
30
TODO.md
30
TODO.md
@@ -14,16 +14,36 @@ pre-1.0
|
||||
|
||||
# Next Step
|
||||
|
||||
Reconcile the uncommitted ARCHITECTURE.md edits on main: finish and
|
||||
commit, or revert.
|
||||
Triage the stale remote branches (issue #71): for each, merge the work
|
||||
or delete the branch.
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-08-09: Finished the lint remediation under the canonical
|
||||
`.golangci.yml` (issue #61, which also unblocks issue #59). The
|
||||
remaining findings were fixed behavior-preservingly: `wsl_v5`
|
||||
whitespace, `sqlclosecheck`, and `prealloc`. The `sqlclosecheck` sites
|
||||
now close `sql.Rows` in a deferred closure instead of via the
|
||||
`CloseRows` helper, which the linter could not see through. Only the
|
||||
`revive` package-name findings remain suppressed, with per-site
|
||||
`//nolint` directives; the package-rename question behind them is
|
||||
tracked in issue #76. Verified with `script/cibuild`, which exits 0 —
|
||||
that is the only trustworthy gate, because `script/lint` runs whatever
|
||||
`golangci-lint` happens to be on `PATH` rather than the pinned
|
||||
v2.12.2 that CI and the `Dockerfile` use, so `make check` can report
|
||||
green on findings CI still fails. That tooling gap is tracked in issue
|
||||
#78.
|
||||
- 2026-08-09: The earlier next step "reconcile the uncommitted
|
||||
`ARCHITECTURE.md` edits on `main`" needed no work: the working tree is
|
||||
clean and `ARCHITECTURE.md` is committed on `main`.
|
||||
- 2026-08-07: Updated golangci-lint to v2.12.2 everywhere it is pinned
|
||||
(`Dockerfile` lint stage, `Makefile` deps target), replaced
|
||||
`.golangci.yml` with the canonical config (v2 schema, `default: all`),
|
||||
and remediated all lint findings it surfaced (issue #61):
|
||||
behavior-preserving fixes across every package, `make check` green.
|
||||
and remediated the bulk of the lint findings it surfaced (issue #61):
|
||||
behavior-preserving fixes across every package, 2,990 findings down to
|
||||
80. `make test` and `make fmt-check` were green at that point but
|
||||
`make lint` was still red; the commit message claiming `make check`
|
||||
was green was wrong.
|
||||
- 2026-08-07: Added the standard `.golangci.yml` and `.editorconfig`
|
||||
(issue #59); lint findings under the new config are tracked in issue
|
||||
#61. `script/bootstrap` now installs sqlite3 (needed by tests).
|
||||
@@ -49,6 +69,4 @@ commit, or revert.
|
||||
|
||||
# Future Steps
|
||||
|
||||
- Review stale local branches (add-godoc-to-cli-package,
|
||||
feature/pluggable-storage-backend) and merge or delete them.
|
||||
- Define remaining scope for a first tagged release and cut v0.1.0.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Package crypto provides thread-safe age encryption and decryption
|
||||
// helpers used to protect blob and metadata content.
|
||||
package crypto
|
||||
package crypto //nolint:revive,nolintlint // stdlib crypto unused; see #76
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Package log provides the application-wide structured logger: slog
|
||||
// with a colorized TTY handler on terminals and JSON output otherwise.
|
||||
package log
|
||||
package log //nolint:revive,nolintlint // stdlib log unused here; see #76
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -69,7 +69,7 @@ func Initialize(cfg Config) {
|
||||
Level: level,
|
||||
}
|
||||
|
||||
// Check if stdout is a TTY
|
||||
// Check if stdout is a TTY.
|
||||
if term.IsTerminal(int(os.Stdout.Fd())) {
|
||||
// Use colorized TTY handler
|
||||
logger = slog.New(NewTTYHandler(os.Stdout, opts))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package log
|
||||
package log //nolint:revive,nolintlint // stdlib log unused here; see #76
|
||||
|
||||
import (
|
||||
"go.uber.org/fx"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package log
|
||||
package log //nolint:revive,nolintlint // stdlib log unused here; see #76
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
@@ -624,9 +624,10 @@ func (s *Scanner) collectBatchFlushData(
|
||||
|
||||
collectStart := time.Now()
|
||||
|
||||
// Every pending file contributes at least one file-chunk and one
|
||||
// chunk-file mapping, so the file count is a safe lower bound for the
|
||||
// initial capacity of both slices.
|
||||
// A pending file contributes one mapping of each kind per chunk, and
|
||||
// an empty file contributes none, so the file count is only a rough
|
||||
// starting capacity for the mapping slices; append grows them as
|
||||
// needed. It is exact for the file and file-ID slices.
|
||||
allFileChunks := make([]database.FileChunk, 0, len(canFlush))
|
||||
allChunkFiles := make([]database.ChunkFile, 0, len(canFlush))
|
||||
allFileIDs := make([]types.FileID, 0, len(canFlush))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// vaultik codebase. Using distinct types for IDs, hashes, paths, and
|
||||
// credentials prevents accidental mixing of semantically different values
|
||||
// that happen to share the same underlying type.
|
||||
package types
|
||||
package types //nolint:revive,nolintlint // rename decision tracked in #76
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
|
||||
Reference in New Issue
Block a user