Repository navigation
R6: dependency hygiene - #233
Merged
Merged
Conversation
Turn the four bullets into tasks D1-D4 with owned files and done-when checks, record what the code holds today (pgstore's unstarted cleanup and lib/pq, the Wrap(nil) trap in auth.go, .devin already gone), and list the owner decisions Q1-Q3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
…uire require keeps alecthomas's stop-on-first-failure behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Wrap(nil) returned nil; SetLoginAttempt now checks Save's error before wrapping it. Error texts are unchanged; the capitalized ones carry a nolint for ST1005, which only stdlib constructors trigger. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
go mod tidy drops alecthomas/assert (with repr and gotextdiff); pkg/errors stays as an indirect requirement of gogo. depguard refuses importing either. pkg/pgsession uses stdlib errors too. plan.txt's open ideas are GitHub issues #221-#227; dismissing RSS items and storing feed images in pcom's media already shipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
antonlindstrom/pgstore is replaced by gogo v0.3.0's sessions/pgstore, which reads the same rows and cookies, so nobody is logged out. Its table is now a migration, copied with gogo's pgstore-migrations command; a test fails when a gogo upgrade ships another. web serve deletes expired sessions every --session-cleanup-interval (pgstore's cleanup never ran), and the 30-day session age is --session-max-age. lib/pq leaves the binary; depguard refuses pgstore. Closes #232 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
A container restart leaves dockerd's managed-containerd pid file behind and dockerd then times out waiting for the dead pid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the R6 wave: no unmaintained or duplicate dependencies left from its list, and a lint rule that keeps them out. Closes #232.
Changes
alecthomas/assert→ testify. The last 9 test files move torequire, which stops at the first failure like alecthomas did. Assertions are unchanged.pkg/errors→ stdlib. 12 files move toerrors/fmt.Errorf("...: %w"), with every message unchanged.SetLoginAttemptnow checkssession.Save()before wrapping it:Wrap(nil)was nil,fmt.Errorfnever is.//nolint:staticcheck // ST1005.sessions/pgstore(Add sessions/pgstore: a gin session store in PostgreSQL gogo#8, gogo v0.3.0). This replacesantonlindstrom/pgstore.pgstore-migrationscommand (IF NOT EXISTS; production only records it), and a test fails when a gogo upgrade ships another migration.web servenow deletes expired sessions every--session-cleanup-interval(default 1h); pgstore's cleanup never ran.--session-max-age(default 720h).lib/pqis gone from it.go mod tidy;pkg/errorsstays indirect because gogo still requires it.alecthomas/assert,pkg/errorsandantonlindstrom/pgstore, next to R7's logging rule.plan.txtis removed; its open ideas are RSS output for the Explore page #221–Visibility for RSS subscriptions #227.docs/architecture.md,docs/gogo-extraction.mdanddocs/testing.mdare updated.wave-runcoverstask_prompt.py's guessedPKG=paths and lint findings in shared packages.docs/archive/history/r6.md.Left out:
jmoiron/sqlx(#229, after gogo drops it) and goldmark-highlighting/chroma v2 (#228).Testing
make check-qpasses (51 packages);make cover+make cover-checkpass, total 87.3% (floor 84.7%).Wrap(nil)login trap (D2), caught bypkg/forms;--session-max-age(D3);pkg/errorsimport (D4).make test-ui: everything passes except the three testsdocs/testing.mdlists as failing only in the sandbox (TestWriting_RenderedPostFeatures,TestWriting_PostVisibility,TestActions_ShareLifecycle); CI'sbrowserjob decides those.Merge note
On deploy,
release_commandruns thegogo-pgstoremigration, which is a no-op on the existinghttp_sessionstable apart from recording itself.🤖 Generated with Claude Code
https://claude.ai/code/session_01WLdnenF9tokN9o3SLsrZjG
Generated by Claude Code