Skip to content

Latest commit

 

History

History
68 lines (46 loc) · 3.87 KB

File metadata and controls

68 lines (46 loc) · 3.87 KB

Changelog

All notable changes to com.qtsurfer:sdk are documented here.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.4.1] — 2026-05-17

Fixed

  • Corrected JitPack dependency coordinate for api-client: com.qtsurfer:api-client-java:0.2.0 (JitPack uses the repo name as artifactId, not the pom artifactId).

[0.4.0] — 2026-05-17

Changed

  • Maven coordinates migrated to com.qtsurfer:sdk-java via JitPack custom domain (git.qtsurfer.com). Consumers should replace com.github.QTSurfer:sdk-java:v0.3.x with com.qtsurfer:sdk-java:0.4.1.
  • Java packages renamed from net.qtsurfer.api.sdk to com.qtsurfer.api.sdk throughout.
  • Dependency on com.qtsurfer:api-client-java:0.2.0 (previously com.github.QTSurfer:api-client-java:v0.1.2).
  • Tags no longer use the v prefix; CI release workflow updated accordingly.

[0.3.0] — 2026-05-17

Added

  • Exchange & instrument discovery:
    • QTSurfer#exchanges()List<Exchange> — list all exchanges available on the platform.
    • QTSurfer#instruments(String exchangeId)List<InstrumentDetail> — list instruments for a given exchange, including dataFrom/dataTo availability windows, lastPrice, and volume24h.
    • Both methods wrap com.qtsurfer.api.client.api.ExchangeApi (already generated in api-client v0.1.2) and surface failures as QTSError.

[0.2.0] — 2026-05-01

Added

  • Domain objects (Strategy, Backtest):
    • QTSurfer#compile(...) returns a reusable Strategy handle that can launch multiple backtests.
    • Strategy#backtest(...) returns a Backtest handle exposing id(), state(), progress() (a Flow.Publisher<BacktestProgress>), await(), and cancel().
    • QTSurfer#backtest(request, options) shortcut now composes compile → backtest → await over the new objects.
  • Hourly tickers/klines downloads:
    • QTSurfer#tickers(exchangeId, base, quote, hour[, format]) and QTSurfer#klines(...) — stream one hour of raw tickers or klines as InputStream.
    • DownloadFormat enum (LASTRA default, PARQUET for on-the-fly conversion).
    • QTSDownloadError (subclass of QTSError) — surfaced when the download fails (HTTP 4xx/5xx, transport error).

Changed

  • api-client dependency bumped to v0.1.2 (adds ExchangeBinaryDownloads).
  • Internal Backtest workflow class renamed to BacktestWorkflow to free the public Backtest name for the new domain handle.

Removed

  • Hardcoded staging URL from the integration test default; QTSURFER_API_URL is now required alongside JWT_API_TOKEN (the test skips when either is absent).
  • Javadoc and README examples use the public domain (api.qtsurfer.com) instead of internal/staging URLs.

[0.1.0] — 2026-04-15

Added

  • Initial release of net.qtsurfer:sdk, an opinionated Java SDK built on top of net.qtsurfer:api-client.
  • QTSurfer facade with a fluent builder (baseUrl, token, optional httpClient / executor).
  • QTSurfer.backtest(BacktestRequest, BacktestOptions) — orchestrates compile → prepare → execute and returns a CompletableFuture<ResultMap>.
  • Polling, exponential backoff, and per-stage timeouts delegated to Failsafe policies.
  • Best-effort server-side cancelExecution when the returned future is cancelled after the execute stage has started.
  • Error hierarchy: QTSError, QTSStrategyCompileError, QTSPreparationError, QTSExecutionError, QTSTimeoutError, QTSCanceledError.
  • Status normalizer handling casing drift between the OpenAPI spec and the live API (queued, completed, failed, aborted, …).
  • SLF4J API hook for logging (consumers bring their own binding).
  • Distribution via JitPack.