Skip to content

Commit f95e3c7

Browse files
authored
Release 1.167.0
See release notes.
2 parents c58a678 + dbdcbea commit f95e3c7

File tree

168 files changed

+4800
-2889
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

168 files changed

+4800
-2889
lines changed

.github/ISSUE_TEMPLATE/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ blank_issues_enabled: false
22
contact_links:
33
- name: General Questions
44
url: https://github.com/nautechsystems/nautilus_trader/discussions
5-
about: Please ask questions like "How do I achieve x?" here.
5+
about: Ask questions like "How do I achieve x?" here.
66
- name: Discord
77
url: https://discord.gg/AUWVs3XaCS
88
about: Chat with contributors and active users of NautilusTrader on our Discord server!

.github/ISSUE_TEMPLATE/feature_request.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ labels:
77

88
# Feature Request
99

10-
Please provide a detailed description of your proposal, with some examples.
10+
Provide a detailed description of your proposal, with some examples.

.github/pull_request_template.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Pull Request
22

3-
Please include a summary of the changes.
3+
Include a summary of the changes.
44

55
## Type of change
66

7-
Please delete options that are not relevant.
7+
Delete options that are not relevant.
88

99
- [ ] Bug fix (non-breaking change which fixes an issue)
1010
- [ ] New feature (non-breaking change which adds functionality)
@@ -13,4 +13,4 @@ Please delete options that are not relevant.
1313

1414
## How has this change been tested?
1515

16-
Please describe how this code was/is tested.
16+
Describe how this code was/is tested.

.pre-commit-config.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ repos:
4343
args: ["--py39-plus"]
4444

4545
- repo: https://github.com/hadialqattan/pycln
46-
rev: v2.1.2
46+
rev: v2.1.3
4747
hooks:
4848
- id: pycln
4949
name: pycln (remove unused imports)
@@ -101,7 +101,7 @@ repos:
101101
- Flake8-pyproject
102102

103103
- repo: https://github.com/pycqa/pydocstyle
104-
rev: 6.2.2
104+
rev: 6.3.0
105105
hooks:
106106
- id: pydocstyle
107107
files: ^nautilus_trader/

CONTRIBUTING.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Contributing to NautilusTrader
22

33
Involvement from the trading community is a goal for this project, and all help is welcome!
4-
To contribute, please follow these steps:
4+
To contribute, follow these steps:
55

66
1. Open an issue on GitHub to discuss your proposed changes or enhancements.
77

@@ -13,11 +13,11 @@ To contribute, please follow these steps:
1313

1414
5. Open a pull request (PR) on the `develop` branch with a summary comment.
1515

16-
6. The CI system will run the full test-suite over your code including all unit and integration tests, so please include appropriate tests
16+
6. The CI system will run the full test-suite over your code including all unit and integration tests, so include appropriate tests
1717
with the PR.
1818

19-
7. [Codacy](https://www.codacy.com/) will perform an automated code review. Please
20-
fix any issues which cause a failed check, and add the commit to your PR.
19+
7. [Codacy](https://www.codacy.com/) will perform an automated code review.
20+
Fix any issues which cause a failed check, and add the commit to your PR.
2121

2222
8. You will also be required to sign a standard Contributor License Agreement (CLA), which is administered automatically through [CLA Assistant](https://cla-assistant.io/).
2323

Makefile

+8-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ IMAGE?=${REGISTRY}${PROJECT}
44
GIT_TAG:=$(shell git rev-parse --abbrev-ref HEAD)
55
IMAGE_FULL?=${IMAGE}:${GIT_TAG}
66
.PHONY: install build clean docs format pre-commit
7-
.PHONY: clippy cargo-update cargo-test cargo-test-arm64
7+
.PHONY: clippy cargo-build cargo-update cargo-test cargo-test-arm64
88
.PHONY: update docker-build docker-build-force docker-push
99
.PHONY: docker-build-jupyter docker-push-jupyter
1010
.PHONY: pytest pytest-coverage
@@ -31,9 +31,16 @@ pre-commit: format
3131
(cd nautilus_core && cargo fmt --all -- --check && cargo check -q && cargo clippy --all-targets --all-features -- -D warnings)
3232
pre-commit run --all-files
3333

34+
update:
35+
(cd nautilus_core && cargo update)
36+
poetry update
37+
3438
clippy:
3539
(cd nautilus_core && cargo clippy --all-targets --all-features -- -D warnings -W clippy::pedantic -W clippy::nursery -W clippy::unwrap_used -W clippy::expect_used)
3640

41+
cargo-build:
42+
(cd nautilus_core && cargo build --release --all-features)
43+
3744
cargo-update:
3845
(cd nautilus_core && cargo update)
3946

@@ -43,10 +50,6 @@ cargo-test:
4350
cargo-test-arm64:
4451
(cd nautilus_core && cargo test --features extension-module)
4552

46-
update:
47-
(cd nautilus_core && cargo update)
48-
poetry update
49-
5053
docker-build: clean
5154
docker pull ${IMAGE_FULL} || docker pull ${IMAGE}:develop || true
5255
docker build -f .docker/nautilus_trader.dockerfile --platform linux/x86_64 -t ${IMAGE_FULL} .

README.md

+19-7
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ For MacBook Pro M1/M2, make sure your Python installed using pyenv is configured
161161

162162
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install <python_version>
163163

164-
See https://pyo3.rs/v0.17.3/getting_started#virtualenvs.
164+
See https://pyo3.rs/latest/getting_started#virtualenvs.
165165

166166
It's possible to install from source using `pip` if you first install the build dependencies
167167
as specified in the `pyproject.toml`. However, we highly recommend installing using [poetry](https://python-poetry.org/) as below.
@@ -242,9 +242,21 @@ The container images can be pulled as follows:
242242
243243
docker pull ghcr.io/nautechsystems/<image_variant_tag>
244244
245-
**NautilusTrader is not currently functional when run under JupyterLab, with logging enabled.
246-
The backtest example in the `examples/backtest_example.ipynb` hangs indefinitely shortly after starting.
247-
The cause of this is still being determined.**
245+
You can launch the backtest example container by running:
246+
247+
docker pull ghcr.io/nautechsystems/jupyterlab:develop
248+
docker run -p 8888:8888 ghcr.io/nautechsystems/jupyterlab:develop
249+
250+
| :warning: WARNING |
251+
|:--------------------------------------------------------------------------------|
252+
253+
**NautilusTrader currently exceeds the rate limit for Jupyter notebook logging (stdout output),
254+
this is why `log_level` in the examples is set to "ERROR". If you lower this level to see more
255+
logging then the notebook will hang during cell execution. A fix is currently
256+
being investigated which involves either raising the configured rate limits for
257+
Jupyter, or throttling the log flushing from Nautilus.**
258+
https://github.com/jupyterlab/jupyterlab/issues/12845
259+
https://github.com/deshaw/jupyterlab-limit-output
248260
249261
## Minimal Strategy
250262
@@ -350,7 +362,7 @@ class EMACross(Strategy):
350362
## Development
351363

352364
We aim to provide the most pleasant developer experience possible for this hybrid codebase of Python, Cython and Rust.
353-
Please refer to the [Developer Guide](https://docs.nautilustrader.io/developer_guide/index.html) for helpful information.
365+
Refer to the [Developer Guide](https://docs.nautilustrader.io/developer_guide/index.html) for helpful information.
354366

355367
## Contributing
356368

@@ -359,11 +371,11 @@ the project. If you have an idea for an enhancement or a bug fix, the first step
359371
on GitHub to discuss it with the team. This helps to ensure that your contribution will be
360372
well-aligned with the goals of the project and avoids duplication of effort.
361373

362-
Once you're ready to start working on your contribution, please make sure to follow the guidelines
374+
Once you're ready to start working on your contribution, make sure to follow the guidelines
363375
outlined in the [CONTRIBUTING.md](https://github.com/nautechsystems/nautilus_trader/blob/develop/CONTRIBUTING.md) file. This includes signing a Contributor License Agreement (CLA)
364376
to ensure that your contributions can be included in the project.
365377

366-
Please note that all pull requests should be made to the `develop` branch. This is where new features
378+
Note that all pull requests should be made to the `develop` branch. This is where new features
367379
and improvements are integrated before being released to the public.
368380

369381
Thank you again for your interest in Nautilus Trader! We look forward to reviewing your contributions and working with you to improve the project.

RELEASES.md

+24-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
# NautilusTrader 1.167.0 Beta
2+
3+
Released on 28th January 2023 (UTC).
4+
5+
### Breaking Changes
6+
- Rename `OrderBookData.update_id` to `sequence`
7+
- Rename `BookOrder.id` to `order_id`
8+
9+
### Enhancements
10+
- Introduce Rust pyo3 based `ParquetReader` and `ParquetWriter`, thanks @twitu
11+
- Added `msgbus.is_subscribed` (to check if topic and handler already subscribed)
12+
- Simplified message type model and introduce CQRS-ish live messaging architecture
13+
14+
### Fixes
15+
- Fixed Binance data clients order book startup buffer handling
16+
- Fixed `NautilusKernel` redundant initialization of event loop for backtesting, thanks @limx0
17+
- Fixed `BacktestNode` disposal sequence
18+
- Fixed quick start docs and notebook
19+
20+
---
21+
122
# NautilusTrader 1.166.0 Beta
223

324
Released on 17th January 2023 (UTC).
@@ -210,7 +231,7 @@ Released on 3rd November 2022 (UTC).
210231
### Breaking Changes
211232
- Added `LiveExecEngineConfig.reconcilation` boolean flag to control if reconciliation is active
212233
- Removed `LiveExecEngineConfig.reconciliation_auto` (unclear naming and concept)
213-
- All Redis keys have changed to a lowercase convention (please either migrate or flush your Redis)
234+
- All Redis keys have changed to a lowercase convention (either migrate or flush your Redis)
214235
- Removed `BidAskMinMax` indicator (to reduce total package size)
215236
- Removed `HilbertPeriod` indicator (to reduce total package size)
216237
- Removed `HilbertSignalNoiseRatio` indicator (to reduce total package size)
@@ -1199,7 +1220,7 @@ Released on 18th July 2021.
11991220
This release introduces a major re-architecture of the internal messaging system.
12001221
A common message bus has been implemented which now handles all events via a
12011222
Pub/Sub messaging pattern. The next release will see all data being handled by
1202-
the message bus, please see the related issue for further details on this enhancement.
1223+
the message bus, see the related issue for further details on this enhancement.
12031224

12041225
Another notable feature is the introduction of the order 'in-flight' concept,
12051226
which is a submitted order which has not yet been acknowledged by the
@@ -1381,7 +1402,7 @@ https://cython.readthedocs.io/en/latest/src/userguide/pyrex_differences.html?hig
13811402

13821403
It has been found that adding `inline` to method signatures makes no difference
13831404
to the performance of the system - and so they have been removed to reduce
1384-
'noise' and simplify the codebase. Please note that the use of `inline` for
1405+
'noise' and simplify the codebase. Note that the use of `inline` for
13851406
module level functions will be passed to the C compiler with the expected
13861407
result of inlining the function.
13871408

SECURITY.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
At NautilusTrader, we take security seriously and appreciate your efforts in
44
helping us identify and fix any vulnerabilities. If you have discovered a
5-
security vulnerability, please follow the guidelines outlined below.
5+
security vulnerability, follow the guidelines outlined below.
66

77
## Responsible Disclosure
88
We encourage responsible disclosure of any security vulnerabilities you may
99
discover. If you believe you have found a security vulnerability in our platform,
10-
please email us at [email protected]. We ask that you provide us with a
10+
email us at [email protected]. We ask that you provide us with a
1111
reasonable amount of time (at least one week) to fix the issue before
1212
disclosing it publicly.
1313

0 commit comments

Comments
 (0)