Releases: tbeason/DatabentoAPI.jl
Releases · tbeason/DatabentoAPI.jl
Release list
v0.3.1
v0.3.0
DatabentoAPI v0.3.0
Breaking changes
This is a 0.x minor release (0.2.0 → 0.3.0) and carries behavioral/dependency changes:
- Minimum
DatabentoBinaryEncodingis now 0.1.4 (was 0.1.2). 0.3.0 relies on the new symbol-resolution helpers (symbol_map/symbol_for/add_symbol_column!) and the MBP-1/MBP-10/BBOrecords_to_dataframefix that first ship in DBN 0.1.4. Environments pinned to an olderDatabentoBinaryEncodingmust upgrade. - Default HTTP read timeout raised from 100s to 600s. Long-range
get_rangequeries can spend minutes in server-side assembly (continuous-symbol resolution, day-partitioned scans) before the first byte streams, so the old 100s default killed them. The timeout is inactivity-based, so a genuinely hung connection now takes up to ~10 minutes to surface. Override withHistorical(timeout = ...). - Read (inactivity) timeouts are no longer retried and now raise
BentoTimeoutError(aBentoErrorsubtype) instead of HTTP.jl's bareTimeoutError. Server-side assembly time is deterministic for a given query shape, so retrying only burned the same timeout again. Connect errors and transient 429/5xx statuses are still retried as before.
New features (non-breaking)
to_dataframe(store; symbols=true)joins the human-readableraw_symbolonto records viametadata.mappings;symbol_map/symbol_for/add_symbol_column!re-exported for streaming consumers.- Chunked + concurrent
get_range(chunk/concurrencykwargs; newDBNStore.failed_rangesfield for targeted retry).
See the full changelog for the complete list.
Closed issues:
- Typed get_range/foreach_record throw on interleaved non-schema records (gateway ErrorMsg/SystemMsg) (#30)
- Default 100s read timeout too low for long-range get_range — 15-year STATISTICS pulls always fail (#31)
- Docs: foreach_record example calls a nonexistent method (positional record type) (#32)
- Feature: chunked + concurrent get_range helper for long ranges (and CSV encoding escape hatch) (#33)
v0.2.0
DatabentoAPI v0.2.0
Breaking changes
- The time-range keyword arguments
start/end_are renamed tostart_dt/end_dt, for symmetry (the trailing underscore only existed becauseendis a Julia reserved word). Affectsget_range,foreach_record,submit_job,get_record_count,get_billable_size,get_cost, and the Livesubscribe!/live_sessionsubscription /stream_to_file/stream_multi_to_filesstartkeyword. Update call sites fromstart = …, end_ = …tostart_dt = …, end_dt = …. The Databento wire parameters (start/end) are unchanged.
Added
- Automatic HTTP retries on the Historical API: HTTP
429/5xxand connection/timeout errors are retried with full-jitter exponential backoff, honoring aRetry-Afterheader. Configurable via the newmax_retrieskeyword onHistorical(...)(default 3).
Changed
foreach_recordnow applies real backpressure and tears the connection down deterministically on every exit path (no unbounded buffering of the payload, no leaked producer task on early return or consumer error).
Merged pull requests:
v0.1.2
DatabentoAPI v0.1.2
Merged pull requests:
- Release v0.1.1: consolidate post-0.1.0 work into one version (#20) (@tbeason)
- ci(docs): add workflow_dispatch trigger to documentation.yml (#21) (@tbeason)
- Live-layer reconnect supervisor with immediate-then-backoff retry (#22) (@tbeason)
- Require DatabentoBinaryEncoding 0.1.2 (fixes v3 SType-255 read crash) (#23) (@tbeason)
Closed issues:
- Move reconnect logic into Live (session-style client), add reconnect callback (#17)
v0.1.1
DatabentoAPI v0.1.1
Merged pull requests:
- Unified-Live multi-schema streaming (#12) (@tbeason)
- Reconnect: exponential backoff with jitter + max_reconnect_attempts (#16) (@tbeason)
- Live durability: do-block, frame rotation, writer wrapper (#18) (@tbeason)
- docs: Documenter.jl site, CHANGELOG, full export coverage (#19) (@tbeason)
- Release v0.1.1: consolidate post-0.1.0 work into one version (#20) (@tbeason)
v0.1.0
DatabentoAPI v0.1.0
Merged pull requests:
- Build(deps): Bump actions/checkout from 4 to 6 (#1) (@dependabot[bot])
- Build(deps): Bump julia-actions/cache from 2 to 3 (#2) (@dependabot[bot])
- Build(deps): Bump julia-actions/setup-julia from 2 to 3 (#3) (@dependabot[bot])
- Build(deps): Bump codecov/codecov-action from 4 to 6 (#4) (@dependabot[bot])
- Build(deps): Update TOML requirement to 1.0.3 (#5) (@dependabot[bot])
- Build(deps): Update SHA requirement to 0.7.0 (#6) (@dependabot[bot])
- Typed live channels (F1b) (#7) (@tbeason)
- Fix typed channel routing: per-schema, not per-record-type (#8) (@tbeason)
- CI: fix DBN.jl clone URL (tylerbeason → tbeason) (#9) (@tbeason)
- chore: gitignore .claude/ (#10) (@tbeason)
- reader: treat mid-stream EOFError as clean end-of-stream (#11) (@tbeason)
- Adopt renamed DBN dependency: DatabentoBinaryEncoding (#13) (@tbeason)