Skip to content

Commit 9fba855

Browse files
authored
VER: Release 0.16.0
2 parents 065bcb6 + 30d3e09 commit 9fba855

File tree

19 files changed

+533
-68
lines changed

19 files changed

+533
-68
lines changed

.github/workflows/build.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: Checkout repository
18-
uses: actions/checkout@v3
18+
uses: actions/checkout@v4
1919
- name: Install dependencies
2020
# pcre is a dependency of cppcheck
2121
run: |
@@ -27,8 +27,8 @@ jobs:
2727
cd cppcheck
2828
cmake -S. -B build \
2929
-DCMAKE_BUILD_TYPE=Release \
30-
-DUSE_MATCHCOMPILER=1 \
31-
-DHAVE_RULES=1
30+
-DUSE_MATCHCOMPILER=On \
31+
-DHAVE_RULES=ON
3232
cmake --build build --config Release
3333
sudo cmake --install build --prefix /usr
3434
- name: Install gtest
@@ -54,7 +54,7 @@ jobs:
5454
runs-on: macos-latest
5555
steps:
5656
- name: Checkout repository
57-
uses: actions/checkout@v3
57+
uses: actions/checkout@v4
5858
- name: Install dependencies
5959
run: brew install cmake cppcheck googletest openssl@3 ninja zstd
6060
# Don't enable clang-tidy on macOS because it's incredibly slow
@@ -77,9 +77,9 @@ jobs:
7777
runs-on: windows-latest
7878
steps:
7979
- name: Checkout repository
80-
uses: actions/checkout@v3
80+
uses: actions/checkout@v4
8181
- name: Cache dependencies
82-
uses: actions/cache@v3
82+
uses: actions/cache@v4
8383
env:
8484
cache-name: cache-vcpkg
8585
with:

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818

1919
steps:
2020
- name: Checkout repository
21-
uses: actions/checkout@v3
21+
uses: actions/checkout@v4
2222
with:
2323
fetch-depth: 2
2424

CHANGELOG.md

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,32 @@
11
# Changelog
22

3-
## 0.15.0 - 2023-01-16
3+
## 0.16.0 - 2024-03-01
4+
5+
### Enhancements
6+
- Added new publisher values for consolidated DBEQ.MAX
7+
- Added constructor to `WithTsOut` that updates `length` to the correct value to account
8+
for the extra 8 bytes
9+
- Upgrade default cpp-httplib version to 0.14.3 (last to still support OpenSSL 1.1)
10+
- Upgrade default nlohmann_json version to 3.11.3
11+
12+
### Breaking changes
13+
- Changed default `upgrade_policy` to `Upgrade` so by default the primary record types
14+
can always be used
15+
- Renamed `dummy` field in `ImbalanceMsg` and `StatMsg` to `reserved`
16+
17+
### Bug fixes
18+
- Fixed handling of `ts_out` when decoding DBNv1 and upgrading to version 2
19+
- Fixed missing logic to upgrade `ErrorMsgV1` and `SystemMsgV1` when decoding DBN with
20+
`VersionUpgradePolicy::Upgrade`
21+
- Added missing `StatType::Vwap` variant used in the ICE datasets
22+
- Added missing `ToString` and `operator<<` handling for `StatType::ClosePrice` and
23+
`StatType::NetChange`
24+
- Fixed potential for invalid reads when decoding C strings in `DbnDecoder`
25+
26+
## 0.15.0 - 2024-01-16
427

528
### Breaking changes
29+
630
- Increased size of `SystemMsg` and `ErrorMsg` to provide better messages from Live
731
gateway
832
- Increased length of `err` and `msg` fields for more detailed messages
@@ -16,10 +40,12 @@
1640
## 0.14.1 - 2023-12-18
1741

1842
### Enhancements
43+
1944
- Added `PitSymbolMap` helper for keeping track of symbology mappings in Live
2045
- Added new publisher value for OPRA MIAX Sapphire
2146

2247
### Bug fixes
48+
2349
- Fixed misaligned read undefined behavior when decoding records
2450

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

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

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

6795
## 0.13.1 - 2023-10-23
96+
6897
### Enhancements
98+
6999
- Added new publisher values in preparation for DBEQ.PLUS
70100
- Added `ToIso8601` for `UnixNanos` for converting to human-readable ISO8601 datetime
71101
string
72102
- Added `kUndefTimestamp` and `kUndefStatQuantity` constants
73103
- Added flag `kTob` for top-of-book messages
74104

75105
## 0.13.0 - 2023-09-21
106+
76107
### Enhancements
108+
77109
- Added `pretty_px` option for `BatchSubmitJob`, which formats prices to the correct
78110
scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text
79111
encodings)
80112
- Added `pretty_ts` option for `BatchSubmitJob`, which formats timestamps as ISO 8601
81113
strings (available for CSV and JSON text encodings)
82-
- Added `map_symbols` option to `BatchSubmitJob`, which appends appends the raw symbol
114+
- Added `map_symbols` option to `BatchSubmitJob`, which appends the raw symbol
83115
to every record (available for CSV and JSON text encodings) reducing the need to look
84116
at the `symbology.json` file
85117
- Added `split_symbols` option for `BatchSubmitJob`, which will split files by raw symbol
@@ -90,27 +122,33 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
90122
- Added `ClosePrice` and `NetChange` `StatType`s used in the `OPRA.PILLAR` dataset
91123

92124
### Breaking changes
125+
93126
- Remove `default_value` parameter from `Historical::SymbologyResolve`
94127

95128
## 0.12.1 - 2023-08-25
129+
96130
### Bug fixes
131+
97132
- Fixed typo in `BATY.PITCH.BATY` publisher
98133

99134
## 0.12.0 - 2023-08-24
100135

101136
##### Enhancements
137+
102138
- Added the `Publisher`, `Venue`, and `Dataset` enums
103139
- Added `Publisher` getters to `Record` and `RecordHeader` to convert the
104140
`publisher_id` to its enum
105141

106142
## 0.11.0 - 2023-08-10
107143

108144
#### Enhancements
145+
109146
- Added `raw_instrument_id` to definition schema
110147
- Added `operator==` and `operator!=` implementations for `DatasetConditionDetail` and
111148
`DatasetRange`
112149

113150
#### Breaking changes
151+
114152
- Changed `MetadataListPublishers` to return a `vector<PublisherDetail>`
115153
- `MetadataListFields`:
116154
- Changed return type to `vector<FieldDetail>`
@@ -122,13 +160,15 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
122160
- Removed `mode` and `schema` parameters
123161

124162
#### Bug fixes
163+
125164
- Fixed installation of `nlohmann_json` when using bundled version
126165
- Added missing `operator!=` implementations for `Metadata`, `MappingInterval`, and
127166
`SymbolMapping`
128167

129168
## 0.10.0 - 2023-07-20
130169

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

141181
#### Breaking changes
182+
142183
- Changed size-related fields and `limit` parameters to use `std::uint64_t` for consistency
143184
across architectures
144185

145186
#### Bug fixes
187+
146188
- Removed usage of non-portable `__PRETTY_FUNCTION__`
147189

148190
## 0.9.1 - 2023-07-11
149191

150192
#### Enhancements
193+
151194
- Added constants for dataset codes for Databento Equity Basic and OPRA Pillar
152195
- Added `const char*` getters to records for fixed-length `char` arrays
153196
- Added `RType` getter to `Record`
154197

155198
#### Bug fixes
199+
156200
- Added batching for live subscriptions to avoid hitting max message length
157201
- Fixed bug in Zstd decompression
158202
- Fixed `Historical::BatchDownload` truncating file before writing each chunk
159203

160204
## 0.9.0 - 2023-06-13
161205

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

170215
#### Breaking changes
216+
171217
- Changed `use_ts_out` default to `false`
172218

173219
#### Bug fixes
220+
174221
- Fixed missing definition for `operator==` for `ImbalanceMsg`
175222

176223
## 0.8.0 - 2023-05-16
177224

178225
#### Enhancements
226+
179227
- Changed `end` and `end_date` to optional to support new forward-fill behaviour
180228

181229
#### Breaking changes
230+
182231
- Renamed `booklevel` MBP field to `levels` for brevity and consistent naming
183232
- Removed `open_interest_qty` and `cleared_volume` fields from definition schema
184233
that were always unset
185234

186235
## 0.7.0 - 2023-04-28
187236

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

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

216267
#### Deprecations
268+
217269
- Deprecated `SType::Smart` to split into `SType::Parent` and `SType::Continuous`
218270

219271
#### Bug fixes
272+
220273
- Fixed parsing of `BatchSubmitJob` response
221274
- Fixed invalid read in `DbnDecoder`
222275
- Fixed memory leak in `TryCreateDir`
223276

224277
## 0.6.1 - 2023-03-28
225278

226279
#### Breaking changes
280+
227281
- Removed usage of unreliable `std::ifstream::readsome`
228282

229283
#### Bug fixes
284+
230285
- Fixed Zstd decoding of files with multiple frames
231286

232287
## 0.6.0 - 2023-03-24
233288

234289
#### Enhancements
290+
235291
- Added support for imbalance schema
236292
- Added support for decoding `ts_out` field
237293
- Added flags `kSnapshot` and `kMaybeBadBook`
238294

239295
#### Breaking changes
296+
240297
- Removed `record_count` from `Metadata`
241298
- Changed `Historical::BatchDownload` to return the paths of the downloaded files
242299

243300
## 0.5.0 - 2023-03-13
244301

245302
#### Enhancements
303+
246304
- Added `Historical::MetadataGetDatasetRange`
247305

248306
#### Breaking changes
307+
249308
- Changed `MetadataGetDatasetCondition` to return `vector<DatasetConditionDetail>`
250309
- Removed `MetadataListCompressions` (redundant with docs)
251310
- Removed `MetadataListEncodings` (redundant with docs)
@@ -268,6 +327,7 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
268327
- Disabled unit testing by default
269328

270329
#### Breaking changes
330+
271331
- Removed `is_full_universe` and `is_example` fields from `BatchJob`
272332
- Refactored rtypes
273333
- Introduced separate rtypes for each OHLCV schema
@@ -277,34 +337,41 @@ This release is fully compatible with both DBN v1 and v2, and so should be seaml
277337
- Changed `kAllSymbols` representation
278338

279339
#### Bug fixes
340+
280341
- Fixed usage of as a system library
281342

282343
## 0.3.0 - 2023-01-06
283344

284345
#### Enhancements
346+
285347
- Added support for definition schema
286348
- Added option for CMake to download gtest
287349
- Updated `Flag` enum
288350

289351
#### Breaking changes
352+
290353
- Standardized getter method names to pascal case
291354
- Renamed `is_full_book` to `is_full_universe`
292355
- Renamed `TickMsg` to `MboMsg`
293356
- Changed `flags` fields to unsigned
294357

295358
#### Bug fixes
359+
296360
- Fixed cancellation in `Historical::TimeseriesStream`
297361
- Fixed race condition in `Historical::TimeseriesStream` exception handling
298362
- Fixed gtest linker error on macOS
299363

300364
## 0.2.0 - 2022-12-01
301365

302366
#### Enhancements
367+
303368
- Added `Historical::MetadataGetDatasetCondition`
304369
- Improved Zstd CMake integration
305370

306371
#### Bug fixes
372+
307373
- Fixed requesting all symbols for a dataset
308374

309375
## 0.1.0 - 2022-11-07
376+
310377
- Initial release with support for historical data

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.14)
44
# Project details
55
#
66

7-
project("databento" VERSION 0.15.0 LANGUAGES CXX)
7+
project("databento" VERSION 0.16.0 LANGUAGES CXX)
88
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)
99

1010
#
@@ -121,7 +121,7 @@ include(FetchContent)
121121
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_JSON)
122122
find_package(nlohmann_json REQUIRED)
123123
else()
124-
set(json_version 3.11.2)
124+
set(json_version 3.11.3)
125125
# Required to correctly install nlohmann_json
126126
set(JSON_Install ON)
127127
if(CMAKE_VERSION VERSION_LESS 3.24)
@@ -145,7 +145,7 @@ endif()
145145
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_HTTPLIB)
146146
find_package(httplib REQUIRED)
147147
else()
148-
set(httplib_version 0.13.1)
148+
set(httplib_version 0.14.3)
149149
if(CMAKE_VERSION VERSION_LESS 3.24)
150150
FetchContent_Declare(
151151
httplib

example/live/simple.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ int main() {
2323
.SetLogReceiver(log_receiver.get())
2424
.SetKeyFromEnv()
2525
.SetDataset(databento::dataset::kGlbxMdp3)
26-
.SetUpgradePolicy(databento::VersionUpgradePolicy::Upgrade)
2726
.BuildThreaded();
2827

2928
// Set up signal handler for Ctrl+C

0 commit comments

Comments
 (0)