Depend on invopop/at instead of carrying a copy - #3
Merged
Conversation
The at package moves to github.com/invopop/at. It was here for historical reasons, which meant anything wanting millisecond timestamps had to depend on a CouchDB library, and left two structurally identical but distinct copies in circulation (couch/at and lib/at) that callers had to convert between at package boundaries. Breaking for importers of couch/at: the import path changes, the type does not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The
atpackage moves out to invopop/at (v0.1.0) and this library depends on it.Why
It was here for historical reasons, which had two costs. Anything wanting millisecond timestamps had to depend on a CouchDB library to get them. And there were two structurally identical but distinct copies in circulation —
couch/atandlib/at— so a model built on one could not satisfy an interface declared with the other. In access that meant every model being archived had to be wrapped to convert between them, which is the kind of hack that ends up load-bearing.invopop/libdrops its copy in the same round (lib#32), so there is now oneTimestamptype.What changed
couch/atis deleted andmodel.goimportsgithub.com/invopop/at. Same code, same behaviour, same JSON — the tests moved upstream with the implementation.Breaking
Importers of
github.com/invopop/couch/atneedgithub.com/invopop/at. The type is identical, only the path changes. Wants a minor tag, since v0.2.0 consumers won't compile against it.Known importers:
access(updated on refactor/migrate-couch, access#279).gobl-netandgobl.lookupuse couch but notcouch/at.Testing
Build, full suite and
golangci-lintpass. README updated to point at the new home.🤖 Generated with Claude Code