Short and single-letter names in application code become full words (tests
keep theirs). Wrapped calls, signatures and composite literals put one item
per line, and one-line function bodies are expanded. Exported names and
groups of constants get doc comments, and comments refer to the renamed
identifiers.
Log messages are lower-case event names with their details as key/value
attributes ("error" for errors), in place of formatted strings.
Loggable package take a WithLogger option as part of their "New*" call,
defaulting to slog.Default(). Each tags its lines with its `component`.
Some debug loggers print directly rather than using slog when in
terminal logging mode.
gci is configured with the sections standard, default and localmodule, and
goimports with the module path as its local prefix, so both formatters
agree.
- Convert OCDS releases to types.Opportunity (internal/types); FetchOnce
and FetchAll now return opportunities, built from each ocid's latest
release
- Include each item's main classification as well as its additional ones
- Return ErrUnexpectedStatus for non-200 responses and
ErrRateLimitExceeded for a repeated 429; close discarded bodies
- Stop fetchAll on a repeated next link and close each page's body once
read rather than deferring in the loop
- Default a zero Since to 24 hours ago
- Merge date repair and releaseIDs into api.go
- Filter --planning/--opportunities/--awards on each procedure's current
stage, using OCDS release tags; --opportunities previously matched a
nonexistent "opportunity" tag and returned nothing
- Reject conflicting filters before fetching (cobra flag group)