Skip to content

Commit d6669f6

Browse files
authored
VER: Release 0.17.0
2 parents 9fba855 + adfda05 commit d6669f6

23 files changed

+913
-135
lines changed

.github/pull_request_template.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
# Pull Request
1+
# Pull request
22

33
Please include a summary of the changes.
4+
Please also include relevant motivation and context.
5+
List any dependencies that are required for this change.
6+
7+
Fixes # (issue)
48

59
## Type of change
610

@@ -13,4 +17,22 @@ Please delete options that are not relevant.
1317

1418
## How has this change been tested?
1519

16-
Please describe how this code was/is tested.
20+
Please describe the tests that you ran to verify your changes.
21+
Provide instructions so we can reproduce.
22+
Please also list any relevant details for your test configuration.
23+
24+
- [ ] Test A
25+
- [ ] Test B
26+
27+
## Checklist
28+
29+
- [ ] My code builds locally with no new warnings (`scripts/build.sh`)
30+
- [ ] My code follows the [style guidelines](https://google.github.io/styleguide/cppguide.html)
31+
- [ ] New and existing unit tests pass locally with my changes (`scripts/test.sh`)
32+
- [ ] I have made corresponding changes to the documentation
33+
- [ ] I have added tests that prove my fix is effective or that my feature works
34+
35+
## Declaration
36+
37+
I confirm this contribution is made under an Apache 2.0 license and that I have the authority
38+
necessary to make this contribution on behalf of its copyright owner.

.github/workflows/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: build
33
# Build and test databento-cpp
44

55
on:
6+
pull_request:
67
push:
78

89
jobs:
@@ -42,7 +43,6 @@ jobs:
4243
-DDATABENTO_ENABLE_EXAMPLES=1 \
4344
-DDATABENTO_ENABLE_CLANG_TIDY=1 \
4445
-DDATABENTO_ENABLE_CPPCHECK=1 \
45-
-DDATABENTO_ENABLE_ASAN=1 \
4646
-DDATABENTO_ENABLE_UBSAN=1
4747
- name: CMake build
4848
run: cmake --build build

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Changelog
22

3+
## 0.17.0 - 2024-04-01
4+
5+
### Enhancements
6+
- Added `StatusMsg` record, and `StatusAction`, `StatusReason`, `TradingEvent`, and
7+
`TriState` enums
8+
- Added `CbboMsg` record and corresponding `ConsolidatedBidAskPair` structure
9+
- Added new enum values for `Schema` and `RType` corresponding to new schemas
10+
`cbbo`, `cbbo-1s`, `cbbo-1m`, `tcbbo`, `bbo-1s`, `bbo-1m`
11+
- Added `Volatility` and `Delta` `StatType` variants
12+
- Added `Undefined` and `TimeProRata` `MatchAlgorithm` variants
13+
- Changed format of `unit_of_measure_qty` to a fixed-precision decimal
14+
- Added logic to skip `find_package` call if `nlohmann_json` and `httplib` targets
15+
already exist (credit: @akovachev)
16+
- Added specific instructions for installing dependencies on Ubuntu and macOS (credit: @camrongodbout)
17+
18+
### Breaking changes
19+
- Renamed publishers from deprecated datasets to their respective sources (`XNAS.NLS`
20+
and `XNYS.TRADES` respectively)
21+
22+
### Deprecations
23+
- Deprecated dataset values `FINN.NLS` and `FINY.TRADES`
24+
25+
### Bug fixes
26+
- Fixed out-of-order initialization in `DbnDecoder` (credit: @Hailios)
27+
- Renamed `MatchAlgorithm::EurodollarOptions` to `MatchAlgorithm::EurodollarFutures`
28+
329
## 0.16.0 - 2024-03-01
430

531
### Enhancements

CMakeLists.txt

Lines changed: 23 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.16.0 LANGUAGES CXX)
7+
project("databento" VERSION 0.17.0 LANGUAGES CXX)
88
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)
99

1010
#
@@ -119,7 +119,17 @@ verbose_message("Applied compiler warnings.")
119119
include(FetchContent)
120120
# JSON
121121
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_JSON)
122-
find_package(nlohmann_json REQUIRED)
122+
# Check if json target already exists
123+
if(TARGET nlohmann_json::nlohmann_json)
124+
get_target_property(NLOHMANN_JSON_SOURCE_DIR nlohmann_json::nlohmann_json SOURCE_DIR)
125+
message(STATUS "nlohmann_json::nlohmann_json already available as a target at ${NLOHMANN_JSON_SOURCE_DIR}")
126+
get_target_property(NLOHMANN_JSON_INCLUDE_DIRS nlohmann_json::nlohmann_json INTERFACE_INCLUDE_DIRECTORIES)
127+
if(NLOHMANN_JSON_INCLUDE_DIRS)
128+
message(STATUS "nlohmann_json::nlohmann_json include directories: ${NLOHMANN_JSON_INCLUDE_DIRS}")
129+
endif()
130+
else()
131+
find_package(nlohmann_json REQUIRED)
132+
endif()
123133
else()
124134
set(json_version 3.11.3)
125135
# Required to correctly install nlohmann_json
@@ -143,7 +153,17 @@ else()
143153
endif()
144154
# cpp-httplib
145155
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_HTTPLIB)
146-
find_package(httplib REQUIRED)
156+
# Check if httplib target already exists
157+
if(TARGET httplib::httplib)
158+
get_target_property(HTTPLIB_SOURCE_DIR httplib::httplib SOURCE_DIR)
159+
message(STATUS "httplib::httplib already available as a target at ${HTTPLIB_SOURCE_DIR}")
160+
get_target_property(HTTPLIB_INCLUDE_DIRS httplib::httplib INTERFACE_INCLUDE_DIRECTORIES)
161+
if(HTTPLIB_INCLUDE_DIRS)
162+
message(STATUS "httplib::httplib include directories: ${HTTPLIB_INCLUDE_DIRS}")
163+
endif()
164+
else()
165+
find_package(httplib REQUIRED)
166+
endif()
147167
else()
148168
set(httplib_version 0.14.3)
149169
if(CMAKE_VERSION VERSION_LESS 3.24)

CONTRIBUTING.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
We welcome feedback through discussions and issues on GitHub, however we don't currently accept pull requests due to the open-source repository being a downstream mirror of our internal codebase.
2-
3-
Please direct email feedback to support@databento.com or carter@databento.com.
1+
Thank you for taking the time to contribute to our project.
2+
We welcome feedback through discussions and issues on GitHub, as well as our [community Slack](https://databento.com/support).
3+
While we don't merge pull requests directly due to the open-source repository being a downstream
4+
mirror of our internal codebase, we can commit the changes upstream with the original author.

README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,21 @@ By default, cpp-httplib and nlohmann\_json are downloaded by CMake as part of th
7070
If you would like to use a local version of these libraries, enable the CMake flag
7171
`DATABENTO_ENABLE_EXTERNAL_HTTPLIB` or `DATABENTO_ENABLE_EXTERNAL_JSON`.
7272

73+
#### Ubuntu
74+
75+
Run the following commands to install the dependencies on Ubuntu:
76+
```sh
77+
$ sudo apt update
78+
$ sudo apt install libssl-dev libzstd-dev
79+
```
80+
81+
#### macOS
82+
83+
On macOS, you can install the dependencies with [Homebrew](https://brew.sh/) by running the following:
84+
```sh
85+
$ brew install openssl@3 zstd
86+
```
87+
7388
### Live
7489

7590
Real-time and intraday replay is provided through the Live clients.
@@ -137,7 +152,7 @@ int main() {
137152

138153
To run this program, set the `DATABENTO_API_KEY` environment variable with an actual API key.
139154

140-
Additional example standalone executables are provided in the [examples](./examples) directory.
155+
Additional example standalone executables are provided in the [`example`](./example) directory.
141156
These examples can be compiled by enabling the cmake option `DATABENTO_ENABLE_EXAMPLES` with `-DDATABENTO_ENABLE_EXAMPLES=1` during the configure step.
142157

143158
## Documentation

example/live/simple.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ int main() {
2121

2222
auto client = databento::LiveBuilder{}
2323
.SetLogReceiver(log_receiver.get())
24+
.SetSendTsOut(true)
2425
.SetKeyFromEnv()
2526
.SetDataset(databento::dataset::kGlbxMdp3)
2627
.BuildThreaded();

0 commit comments

Comments
 (0)