- Project scaffolding: go.mod, Makefile, .golangci.yaml, doc.go - README, ARCHITECTURE, PROJECT_PLAN, PROGRESS documentation - db package: Open (WAL, FK, busy timeout, 0600 permissions), Migrate (sequential, transactional, idempotent), SchemaVersion, Snapshot (VACUUM INTO) - 11 tests covering open, migrate, and snapshot Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
95 lines
1.8 KiB
YAML
95 lines
1.8 KiB
YAML
# golangci-lint v2 configuration for mcdsl.
|
|
# Principle: fail loudly. Security and correctness issues are errors, not warnings.
|
|
|
|
version: "2"
|
|
|
|
run:
|
|
timeout: 5m
|
|
tests: true
|
|
|
|
linters:
|
|
default: none
|
|
enable:
|
|
# --- Correctness ---
|
|
- errcheck
|
|
- govet
|
|
- ineffassign
|
|
- unused
|
|
|
|
# --- Error handling ---
|
|
- errorlint
|
|
|
|
# --- Security ---
|
|
- gosec
|
|
- staticcheck
|
|
|
|
# --- Style / conventions ---
|
|
- revive
|
|
|
|
settings:
|
|
errcheck:
|
|
check-blank: false
|
|
check-type-assertions: true
|
|
|
|
govet:
|
|
enable-all: true
|
|
disable:
|
|
- shadow
|
|
- fieldalignment
|
|
|
|
gosec:
|
|
severity: medium
|
|
confidence: medium
|
|
excludes:
|
|
- G104
|
|
|
|
errorlint:
|
|
errorf: true
|
|
asserts: true
|
|
comparison: true
|
|
|
|
revive:
|
|
rules:
|
|
- name: error-return
|
|
severity: error
|
|
- name: unexported-return
|
|
severity: error
|
|
- name: error-strings
|
|
severity: warning
|
|
- name: if-return
|
|
severity: warning
|
|
- name: increment-decrement
|
|
severity: warning
|
|
- name: var-naming
|
|
severity: warning
|
|
- name: range
|
|
severity: warning
|
|
- name: time-naming
|
|
severity: warning
|
|
- name: indent-error-flow
|
|
severity: warning
|
|
- name: early-return
|
|
severity: warning
|
|
# exported and package-comments enabled — this is a shared library,
|
|
# exported symbols should have documentation.
|
|
- name: exported
|
|
severity: warning
|
|
|
|
formatters:
|
|
enable:
|
|
- gofmt
|
|
- goimports
|
|
|
|
issues:
|
|
max-issues-per-linter: 0
|
|
max-same-issues: 0
|
|
|
|
exclusions:
|
|
paths:
|
|
- vendor
|
|
rules:
|
|
- path: "_test\\.go"
|
|
linters:
|
|
- gosec
|
|
text: "G101"
|