Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VER: Release 0.17.0 #26

Merged
merged 13 commits into from
Apr 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Pull Request
# Pull request

Please include a summary of the changes.
Please also include relevant motivation and context.
List any dependencies that are required for this change.

Fixes # (issue)

## Type of change

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

## How has this change been tested?

Please describe how this code was/is tested.
Please describe the tests that you ran to verify your changes.
Provide instructions so we can reproduce.
Please also list any relevant details for your test configuration.

- [ ] Test A
- [ ] Test B

## Checklist

- [ ] My code builds locally with no new warnings (`scripts/build.sh`)
- [ ] My code follows the [style guidelines](https://google.github.io/styleguide/cppguide.html)
- [ ] New and existing unit tests pass locally with my changes (`scripts/test.sh`)
- [ ] I have made corresponding changes to the documentation
- [ ] I have added tests that prove my fix is effective or that my feature works

## Declaration

I confirm this contribution is made under an Apache 2.0 license and that I have the authority
necessary to make this contribution on behalf of its copyright owner.
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name: build
# Build and test databento-cpp

on:
pull_request:
push:

jobs:
Expand Down Expand Up @@ -42,7 +43,6 @@ jobs:
-DDATABENTO_ENABLE_EXAMPLES=1 \
-DDATABENTO_ENABLE_CLANG_TIDY=1 \
-DDATABENTO_ENABLE_CPPCHECK=1 \
-DDATABENTO_ENABLE_ASAN=1 \
-DDATABENTO_ENABLE_UBSAN=1
- name: CMake build
run: cmake --build build
Expand Down
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Changelog

## 0.17.0 - 2024-04-01

### Enhancements
- Added `StatusMsg` record, and `StatusAction`, `StatusReason`, `TradingEvent`, and
`TriState` enums
- Added `CbboMsg` record and corresponding `ConsolidatedBidAskPair` structure
- Added new enum values for `Schema` and `RType` corresponding to new schemas
`cbbo`, `cbbo-1s`, `cbbo-1m`, `tcbbo`, `bbo-1s`, `bbo-1m`
- Added `Volatility` and `Delta` `StatType` variants
- Added `Undefined` and `TimeProRata` `MatchAlgorithm` variants
- Changed format of `unit_of_measure_qty` to a fixed-precision decimal
- Added logic to skip `find_package` call if `nlohmann_json` and `httplib` targets
already exist (credit: @akovachev)
- Added specific instructions for installing dependencies on Ubuntu and macOS (credit: @camrongodbout)

### Breaking changes
- Renamed publishers from deprecated datasets to their respective sources (`XNAS.NLS`
and `XNYS.TRADES` respectively)

### Deprecations
- Deprecated dataset values `FINN.NLS` and `FINY.TRADES`

### Bug fixes
- Fixed out-of-order initialization in `DbnDecoder` (credit: @Hailios)
- Renamed `MatchAlgorithm::EurodollarOptions` to `MatchAlgorithm::EurodollarFutures`

## 0.16.0 - 2024-03-01

### Enhancements
Expand Down
26 changes: 23 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.16.0 LANGUAGES CXX)
project("databento" VERSION 0.17.0 LANGUAGES CXX)
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPERCASE)

#
Expand Down Expand Up @@ -119,7 +119,17 @@ verbose_message("Applied compiler warnings.")
include(FetchContent)
# JSON
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_JSON)
find_package(nlohmann_json REQUIRED)
# Check if json target already exists
if(TARGET nlohmann_json::nlohmann_json)
get_target_property(NLOHMANN_JSON_SOURCE_DIR nlohmann_json::nlohmann_json SOURCE_DIR)
message(STATUS "nlohmann_json::nlohmann_json already available as a target at ${NLOHMANN_JSON_SOURCE_DIR}")
get_target_property(NLOHMANN_JSON_INCLUDE_DIRS nlohmann_json::nlohmann_json INTERFACE_INCLUDE_DIRECTORIES)
if(NLOHMANN_JSON_INCLUDE_DIRS)
message(STATUS "nlohmann_json::nlohmann_json include directories: ${NLOHMANN_JSON_INCLUDE_DIRS}")
endif()
else()
find_package(nlohmann_json REQUIRED)
endif()
else()
set(json_version 3.11.3)
# Required to correctly install nlohmann_json
Expand All @@ -143,7 +153,17 @@ else()
endif()
# cpp-httplib
if(${PROJECT_NAME_UPPERCASE}_USE_EXTERNAL_HTTPLIB)
find_package(httplib REQUIRED)
# Check if httplib target already exists
if(TARGET httplib::httplib)
get_target_property(HTTPLIB_SOURCE_DIR httplib::httplib SOURCE_DIR)
message(STATUS "httplib::httplib already available as a target at ${HTTPLIB_SOURCE_DIR}")
get_target_property(HTTPLIB_INCLUDE_DIRS httplib::httplib INTERFACE_INCLUDE_DIRECTORIES)
if(HTTPLIB_INCLUDE_DIRS)
message(STATUS "httplib::httplib include directories: ${HTTPLIB_INCLUDE_DIRS}")
endif()
else()
find_package(httplib REQUIRED)
endif()
else()
set(httplib_version 0.14.3)
if(CMAKE_VERSION VERSION_LESS 3.24)
Expand Down
7 changes: 4 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
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.

Please direct email feedback to [email protected] or [email protected].
Thank you for taking the time to contribute to our project.
We welcome feedback through discussions and issues on GitHub, as well as our [community Slack](https://databento.com/support).
While we don't merge pull requests directly due to the open-source repository being a downstream
mirror of our internal codebase, we can commit the changes upstream with the original author.
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,21 @@ By default, cpp-httplib and nlohmann\_json are downloaded by CMake as part of th
If you would like to use a local version of these libraries, enable the CMake flag
`DATABENTO_ENABLE_EXTERNAL_HTTPLIB` or `DATABENTO_ENABLE_EXTERNAL_JSON`.

#### Ubuntu

Run the following commands to install the dependencies on Ubuntu:
```sh
$ sudo apt update
$ sudo apt install libssl-dev libzstd-dev
```

#### macOS

On macOS, you can install the dependencies with [Homebrew](https://brew.sh/) by running the following:
```sh
$ brew install openssl@3 zstd
```

### Live

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

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

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

## Documentation
Expand Down
1 change: 1 addition & 0 deletions example/live/simple.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ int main() {

auto client = databento::LiveBuilder{}
.SetLogReceiver(log_receiver.get())
.SetSendTsOut(true)
.SetKeyFromEnv()
.SetDataset(databento::dataset::kGlbxMdp3)
.BuildThreaded();
Expand Down
Loading