Skip to content

Commit

Permalink
VER: Release 0.16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
threecgreen authored Mar 1, 2024
2 parents 065bcb6 + 30d3e09 commit 9fba855
Show file tree
Hide file tree
Showing 19 changed files with 533 additions and 68 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
# pcre is a dependency of cppcheck
run: |
Expand All @@ -27,8 +27,8 @@ jobs:
cd cppcheck
cmake -S. -B build \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_MATCHCOMPILER=1 \
-DHAVE_RULES=1
-DUSE_MATCHCOMPILER=On \
-DHAVE_RULES=ON
cmake --build build --config Release
sudo cmake --install build --prefix /usr
- name: Install gtest
Expand All @@ -54,7 +54,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
run: brew install cmake cppcheck googletest openssl@3 ninja zstd
# Don't enable clang-tidy on macOS because it's incredibly slow
Expand All @@ -77,9 +77,9 @@ jobs:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-vcpkg
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

Expand Down
73 changes: 70 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,32 @@
# Changelog

## 0.15.0 - 2023-01-16
## 0.16.0 - 2024-03-01

### Enhancements
- Added new publisher values for consolidated DBEQ.MAX
- Added constructor to `WithTsOut` that updates `length` to the correct value to account
for the extra 8 bytes
- Upgrade default cpp-httplib version to 0.14.3 (last to still support OpenSSL 1.1)
- Upgrade default nlohmann_json version to 3.11.3

### Breaking changes
- Changed default `upgrade_policy` to `Upgrade` so by default the primary record types
can always be used
- Renamed `dummy` field in `ImbalanceMsg` and `StatMsg` to `reserved`

### Bug fixes
- Fixed handling of `ts_out` when decoding DBNv1 and upgrading to version 2
- Fixed missing logic to upgrade `ErrorMsgV1` and `SystemMsgV1` when decoding DBN with
`VersionUpgradePolicy::Upgrade`
- Added missing `StatType::Vwap` variant used in the ICE datasets
- Added missing `ToString` and `operator<<` handling for `StatType::ClosePrice` and
`StatType::NetChange`
- Fixed potential for invalid reads when decoding C strings in `DbnDecoder`

## 0.15.0 - 2024-01-16

### Breaking changes

- Increased size of `SystemMsg` and `ErrorMsg` to provide better messages from Live
gateway
- Increased length of `err` and `msg` fields for more detailed messages
Expand All @@ -16,10 +40,12 @@
## 0.14.1 - 2023-12-18

### Enhancements

- Added `PitSymbolMap` helper for keeping track of symbology mappings in Live
- Added new publisher value for OPRA MIAX Sapphire

### Bug fixes

- Fixed misaligned read undefined behavior when decoding records

## 0.14.0 - 2023-11-23
Expand All @@ -35,6 +61,7 @@ On a future date, the Databento live and historical APIs will stop serving DBN v
This release is fully compatible with both DBN v1 and v2, and so should be seamless for most users.

### Enhancements

- Added support for DBN encoding version 2 (DBNv2), affecting `SymbolMappingMsg`,
`InstrumentDefMsg`, and `Metadata`
- Version 1 structs can be converted to version 2 structs with the `ToV2()` method
Expand All @@ -51,10 +78,11 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
length of fixed-length symbol strings in different DBN versions
- Added new publisher values in preparation for IFEU.IMPACT and NDEX.IMPACT datasets
- Added new publisher values for consolidated DBEQ.BASIC and DBEQ.PLUS
- Added `kMaxRecordLen` constant for the the length of the largest record type
- Added `kMaxRecordLen` constant for the length of the largest record type
- Added ability to convert `FlagSet` to underlying representation

### Breaking changes

- The old `InstrumentDefMsg` is now `InstrumentDefMsgV1` in `compat.hpp`
- The old `SymbolMappingMsg` is now `SymbolMappingMsgV1` in `compat.hpp`
- Converted the following enums to enum classes to allow safely adding new variants:
Expand All @@ -65,21 +93,25 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Removed deprecated `SecurityUpdateAction::Invalid` variant

## 0.13.1 - 2023-10-23

### Enhancements

- Added new publisher values in preparation for DBEQ.PLUS
- Added `ToIso8601` for `UnixNanos` for converting to human-readable ISO8601 datetime
string
- Added `kUndefTimestamp` and `kUndefStatQuantity` constants
- Added flag `kTob` for top-of-book messages

## 0.13.0 - 2023-09-21

### Enhancements

- Added `pretty_px` option for `BatchSubmitJob`, which formats prices to the correct
scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text
encodings)
- Added `pretty_ts` option for `BatchSubmitJob`, which formats timestamps as ISO 8601
strings (available for CSV and JSON text encodings)
- Added `map_symbols` option to `BatchSubmitJob`, which appends appends the raw symbol
- Added `map_symbols` option to `BatchSubmitJob`, which appends the raw symbol
to every record (available for CSV and JSON text encodings) reducing the need to look
at the `symbology.json` file
- Added `split_symbols` option for `BatchSubmitJob`, which will split files by raw symbol
Expand All @@ -90,27 +122,33 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Added `ClosePrice` and `NetChange` `StatType`s used in the `OPRA.PILLAR` dataset

### Breaking changes

- Remove `default_value` parameter from `Historical::SymbologyResolve`

## 0.12.1 - 2023-08-25

### Bug fixes

- Fixed typo in `BATY.PITCH.BATY` publisher

## 0.12.0 - 2023-08-24

##### Enhancements

- Added the `Publisher`, `Venue`, and `Dataset` enums
- Added `Publisher` getters to `Record` and `RecordHeader` to convert the
`publisher_id` to its enum

## 0.11.0 - 2023-08-10

#### Enhancements

- Added `raw_instrument_id` to definition schema
- Added `operator==` and `operator!=` implementations for `DatasetConditionDetail` and
`DatasetRange`

#### Breaking changes

- Changed `MetadataListPublishers` to return a `vector<PublisherDetail>`
- `MetadataListFields`:
- Changed return type to `vector<FieldDetail>`
Expand All @@ -122,13 +160,15 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Removed `mode` and `schema` parameters

#### Bug fixes

- Fixed installation of `nlohmann_json` when using bundled version
- Added missing `operator!=` implementations for `Metadata`, `MappingInterval`, and
`SymbolMapping`

## 0.10.0 - 2023-07-20

#### Enhancements

- Added preliminary support for Windows
- Added `LiveThreaded::BlockForStop` to make it easier to wait for one or more records
before closing the session
Expand All @@ -139,27 +179,32 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
length limit

#### Breaking changes

- Changed size-related fields and `limit` parameters to use `std::uint64_t` for consistency
across architectures

#### Bug fixes

- Removed usage of non-portable `__PRETTY_FUNCTION__`

## 0.9.1 - 2023-07-11

#### Enhancements

- Added constants for dataset codes for Databento Equity Basic and OPRA Pillar
- Added `const char*` getters to records for fixed-length `char` arrays
- Added `RType` getter to `Record`

#### Bug fixes

- Added batching for live subscriptions to avoid hitting max message length
- Fixed bug in Zstd decompression
- Fixed `Historical::BatchDownload` truncating file before writing each chunk

## 0.9.0 - 2023-06-13

#### Enhancements

- Added `Reconnect` methods to `LiveBlocking` and `LiveThreaded`
- Added optional `exception_callback` argument to `LiveThreaded::Start` to improve
error handling options
Expand All @@ -168,24 +213,29 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Relaxed 10 minute minimum request time range restriction

#### Breaking changes

- Changed `use_ts_out` default to `false`

#### Bug fixes

- Fixed missing definition for `operator==` for `ImbalanceMsg`

## 0.8.0 - 2023-05-16

#### Enhancements

- Changed `end` and `end_date` to optional to support new forward-fill behaviour

#### Breaking changes

- Renamed `booklevel` MBP field to `levels` for brevity and consistent naming
- Removed `open_interest_qty` and `cleared_volume` fields from definition schema
that were always unset

## 0.7.0 - 2023-04-28

#### Enhancements

- Added initial support for live data with `LiveBlocking` and `LiveThreaded` clients
- Added support for statistics schema
- Added `SystemMsg` and `ErrorMsg` records for use in live data
Expand All @@ -203,6 +253,7 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Added optional `compression` parameter to `BatchSubmitJob`

#### Breaking changes

- Removed `related` and `related_security_id` from `InstrumentDefMsg`
- Renamed `BatchJob.cost` to `cost_usd` and value now expressed as US dollars
- Renamed `SType::ProductId` to `SType::InstrumentId` and `SType::Native` to
Expand All @@ -214,38 +265,46 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Changed some fields to enums in `InstrumentDefMsg`

#### Deprecations

- Deprecated `SType::Smart` to split into `SType::Parent` and `SType::Continuous`

#### Bug fixes

- Fixed parsing of `BatchSubmitJob` response
- Fixed invalid read in `DbnDecoder`
- Fixed memory leak in `TryCreateDir`

## 0.6.1 - 2023-03-28

#### Breaking changes

- Removed usage of unreliable `std::ifstream::readsome`

#### Bug fixes

- Fixed Zstd decoding of files with multiple frames

## 0.6.0 - 2023-03-24

#### Enhancements

- Added support for imbalance schema
- Added support for decoding `ts_out` field
- Added flags `kSnapshot` and `kMaybeBadBook`

#### Breaking changes

- Removed `record_count` from `Metadata`
- Changed `Historical::BatchDownload` to return the paths of the downloaded files

## 0.5.0 - 2023-03-13

#### Enhancements

- Added `Historical::MetadataGetDatasetRange`

#### Breaking changes

- Changed `MetadataGetDatasetCondition` to return `vector<DatasetConditionDetail>`
- Removed `MetadataListCompressions` (redundant with docs)
- Removed `MetadataListEncodings` (redundant with docs)
Expand All @@ -268,6 +327,7 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Disabled unit testing by default

#### Breaking changes

- Removed `is_full_universe` and `is_example` fields from `BatchJob`
- Refactored rtypes
- Introduced separate rtypes for each OHLCV schema
Expand All @@ -277,34 +337,41 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
- Changed `kAllSymbols` representation

#### Bug fixes

- Fixed usage of as a system library

## 0.3.0 - 2023-01-06

#### Enhancements

- Added support for definition schema
- Added option for CMake to download gtest
- Updated `Flag` enum

#### Breaking changes

- Standardized getter method names to pascal case
- Renamed `is_full_book` to `is_full_universe`
- Renamed `TickMsg` to `MboMsg`
- Changed `flags` fields to unsigned

#### Bug fixes

- Fixed cancellation in `Historical::TimeseriesStream`
- Fixed race condition in `Historical::TimeseriesStream` exception handling
- Fixed gtest linker error on macOS

## 0.2.0 - 2022-12-01

#### Enhancements

- Added `Historical::MetadataGetDatasetCondition`
- Improved Zstd CMake integration

#### Bug fixes

- Fixed requesting all symbols for a dataset

## 0.1.0 - 2022-11-07

- Initial release with support for historical data
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.14)
# Project details
#

project("databento" VERSION 0.15.0 LANGUAGES CXX)
project("databento" VERSION 0.16.0 LANGUAGES CXX)
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)

#
Expand Down Expand Up @@ -121,7 +121,7 @@ include(FetchContent)
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_JSON)
find_package(nlohmann_json REQUIRED)
else()
set(json_version 3.11.2)
set(json_version 3.11.3)
# Required to correctly install nlohmann_json
set(JSON_Install ON)
if(CMAKE_VERSION VERSION_LESS 3.24)
Expand All @@ -145,7 +145,7 @@ endif()
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_HTTPLIB)
find_package(httplib REQUIRED)
else()
set(httplib_version 0.13.1)
set(httplib_version 0.14.3)
if(CMAKE_VERSION VERSION_LESS 3.24)
FetchContent_Declare(
httplib
Expand Down
1 change: 0 additions & 1 deletion example/live/simple.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ int main() {
.SetLogReceiver(log_receiver.get())
.SetKeyFromEnv()
.SetDataset(databento::dataset::kGlbxMdp3)
.SetUpgradePolicy(databento::VersionUpgradePolicy::Upgrade)
.BuildThreaded();

// Set up signal handler for Ctrl+C
Expand Down
Loading

0 comments on commit 9fba855

Please sign in to comment.