NewMockLogger/MockLogger move from the main logging package to a new same-module logging/logtest sub-package (mirroring the existing middleware/ convention), so the production logging package's import graph is testify-free (go list -deps . → 0). testify stays in the module's go.mod because logtest and the library's own _test.go files use it — consumers only compile it if they import logtest.
Breaking import change
logging.NewMockLogger → logtest.NewMockLogger. All call sites in the ~12 backend services are in _test.go files; they'll be swept (import swap + go.mod bump to this release) in follow-up PRs. feat: (no !) so the shared Release.yml cuts a minor v0.2.0 (v0.x breaking → minor), not v1.0.0.
Review
Go Backend Expert: clean, no Critical/High/Medium. Verified verbatim move, all packages test green under -race, root production graph testify-free, gofumpt/vet clean, go.mod unchanged (testify retained as a test dep). Same-module sub-package confirmed correct over a nested module.
## 019ecc67 — logtest sub-package
`NewMockLogger`/`MockLogger` move from the main `logging` package to a new same-module `logging/logtest` sub-package (mirroring the existing `middleware/` convention), so the **production `logging` package's import graph is testify-free** (`go list -deps .` → 0). `testify` stays in the module's `go.mod` because `logtest` and the library's own `_test.go` files use it — consumers only compile it if they import `logtest`.
### Breaking import change
`logging.NewMockLogger` → `logtest.NewMockLogger`. All call sites in the ~12 backend services are in `_test.go` files; they'll be swept (import swap + go.mod bump to this release) in follow-up PRs. `feat:` (no `!`) so the shared Release.yml cuts a minor **v0.2.0** (v0.x breaking → minor), not v1.0.0.
### Review
Go Backend Expert: clean, no Critical/High/Medium. Verified verbatim move, all packages test green under -race, root production graph testify-free, gofumpt/vet clean, go.mod unchanged (testify retained as a test dep). Same-module sub-package confirmed correct over a nested module.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
NewMockLogger/MockLogger move from the main `logging` package to a new
`logging/logtest` sub-package, so the production `logging` package's import
graph no longer pulls in testify — only consumers that import logtest do.
testify stays in the module's go.mod (used by logtest and the library's own
tests).
Breaking import change for consumers: `logging.NewMockLogger` becomes
`logtest.NewMockLogger`. The backend services that reference it are updated to
the logtest import alongside their go.mod bump to this release.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
argoyle
scheduled this pull request to auto merge when all checks succeed 2026-06-19 16:37:26 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
019ecc67 — logtest sub-package
NewMockLogger/MockLoggermove from the mainloggingpackage to a new same-modulelogging/logtestsub-package (mirroring the existingmiddleware/convention), so the productionloggingpackage's import graph is testify-free (go list -deps .→ 0).testifystays in the module'sgo.modbecauselogtestand the library's own_test.gofiles use it — consumers only compile it if they importlogtest.Breaking import change
logging.NewMockLogger→logtest.NewMockLogger. All call sites in the ~12 backend services are in_test.gofiles; they'll be swept (import swap + go.mod bump to this release) in follow-up PRs.feat:(no!) so the shared Release.yml cuts a minor v0.2.0 (v0.x breaking → minor), not v1.0.0.Review
Go Backend Expert: clean, no Critical/High/Medium. Verified verbatim move, all packages test green under -race, root production graph testify-free, gofumpt/vet clean, go.mod unchanged (testify retained as a test dep). Same-module sub-package confirmed correct over a nested module.
🤖 Generated with Claude Code
Coverage Report
Total coverage: 93%