Skip to content

Commit 076fe37

Browse files
authored
Release 1.224.0
See release notes.
2 parents 2b2e6a9 + 493453c commit 076fe37

1,043 files changed

Lines changed: 68763 additions & 24225 deletions

File tree

Some content is hidden

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

.config/nextest.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ slow-timeout = { period = "300s" }
1515

1616
# Tests that download large data files share the same target paths across binaries
1717
[[profile.default.overrides]]
18-
filter = 'binary(grid_mm_itch) | binary(orderbook_integration)'
18+
filter = 'binary(grid_mm_itch) | binary(backtest_node_itch) | binary(orderbook_integration)'
1919
test-group = 'large-data-tests'
2020

21-
# Websocket tests can be flaky due to timing on low-spec runners, give them extra retries
21+
# Websocket and data client tests can be flaky due to timing on low-spec runners
2222
[[profile.default.overrides]]
23-
filter = 'binary(websocket)'
23+
filter = 'binary(websocket) | binary(data_client)'
2424
retries = 3

.github/OVERVIEW.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ CI/CD, testing, publishing, and automation within the NautilusTrader repository.
1212
- **common-setup**: prepares the environment (OS packages, Rust toolchain, Python, sccache, pre-commit).
1313
- **common-test-data**: caches large test data under `tests/test_data/large`.
1414
- **common-wheel-build**: builds and installs Python wheels across Linux, macOS, and Windows for multiple Python versions.
15+
- **install-capnp**: installs the Cap'n Proto compiler with caching across Linux, macOS, and Windows.
1516
- **publish-wheels**: publishes built wheels to Cloudflare R2, manages old wheel cleanup and index generation.
1617
- **upload-artifact-wheel**: uploads the latest wheel artifact to GitHub Actions.
1718

@@ -24,9 +25,12 @@ CI/CD, testing, publishing, and automation within the NautilusTrader repository.
2425
- **codeql-analysis.yml**: CodeQL security scans for Python and Rust on PRs and via cron.
2526
- **copilot-setup-steps.yml**: environment setup for GitHub Copilot coding agent.
2627
- **coverage.yml**: coverage report generation for the `nightly` branch.
27-
- **docker.yml**: builds and pushes Docker images (`nautilus_trader`, `jupyterlab`) using Buildx and QEMU.
28+
- **docker.yml**: builds and pushes multi-platform Docker images (`nautilus_trader`, `jupyterlab`) using Buildx and native ARM runners.
29+
- **nightly-docs-features-check.yml**: nightly docs.rs build checks and crate feature compatibility verification.
2830
- **nightly-merge.yml**: auto-merges `develop` into `nightly` when CI succeeds.
31+
- **nightly-tests.yml**: extended test suites (turmoil network tests) that are too slow for PR builds.
2932
- **performance.yml**: Rust/Python benchmarks on `nightly`, reporting to CodSpeed.
33+
- **security-audit.yml**: nightly supply chain security checks (cargo-audit, cargo-deny, cargo-vet, osv-scanner).
3034
- **trigger-reindexing.yml**: triggers documentation reindexing for search.
3135

3236
## Security

.github/actions/cargo-tool-install/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ runs:
3838

3939
# https://github.com/actions/cache
4040
- name: Cache tool binary
41-
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
41+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
4242
with:
4343
path: ${{ runner.tool_cache }}/${{ inputs.tool-name }}
4444
key: ${{ inputs.tool-name }}-bin-${{ env.TOOL_VERSION }}-${{ runner.os }}-${{ env.TOOLCHAIN }}

.github/actions/common-setup/action.yml

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,32 @@ runs:
3232
docker-images: true
3333
swap-storage: ${{ inputs.build-type != 'pre-commit' }}
3434

35+
- name: Free disk space (macOS)
36+
if: inputs.free-disk-space == 'true' && runner.os == 'macOS'
37+
shell: bash
38+
run: |
39+
echo "=== Disk usage before cleanup ==="
40+
df -h /
41+
sudo rm -rf /Library/Developer/CoreSimulator || true
42+
sudo rm -rf ~/Library/Android || true
43+
sudo rm -rf /usr/local/share/dotnet || true
44+
sudo rm -rf /usr/local/share/powershell || true
45+
sudo rm -rf /usr/local/.ghcup || true
46+
echo "=== Disk usage after cleanup ==="
47+
df -h /
48+
3549
- name: Free disk space (Windows)
3650
if: inputs.free-disk-space == 'true' && runner.os == 'Windows'
3751
shell: bash
3852
env:
3953
BUILD_TYPE: ${{ inputs.build-type }}
4054
run: |
4155
rm -rf "/c/Program Files/dotnet"
56+
rm -rf "/c/Android"
57+
rm -rf /c/hostedtoolcache/windows/Java_*
58+
rm -rf "/c/hostedtoolcache/windows/CodeQL"
59+
rm -rf "/c/Miniconda"
60+
rm -rf "/c/Strawberry"
4261
if [ "$BUILD_TYPE" != "pre-commit" ]; then
4362
rm -rf "/c/Program Files (x86)/Microsoft Visual Studio/2019"
4463
fi
@@ -82,7 +101,7 @@ runs:
82101
- name: Install cargo-nextest
83102
if: inputs.build-type != 'pre-commit'
84103
# https://github.com/taiki-e/install-action # v2.53.2
85-
uses: taiki-e/install-action@59679e24ffb0dbbbc136684eda7fcd21fe9eddea # v2.63.0
104+
uses: taiki-e/install-action@f176c07a0a40cbfdd08ee9aa8bf1655701d11e69 # v2.67.25
86105
with:
87106
tool: nextest
88107

@@ -128,7 +147,7 @@ runs:
128147
# > Python
129148
- name: Set up Python environment
130149
# https://github.com/actions/setup-python
131-
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
150+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
132151
with:
133152
python-version: ${{ inputs.python-version }}
134153

@@ -150,7 +169,7 @@ runs:
150169
- name: Cache Python site-packages
151170
id: cached-site-packages
152171
# https://github.com/actions/cache
153-
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
172+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
154173
with:
155174
path: ~/.local/lib/python${{ inputs.python-version }}/site-packages
156175
key: ${{ runner.os }}-${{ inputs.python-version }}-site-packages
@@ -170,7 +189,7 @@ runs:
170189
171190
- name: Install uv
172191
# https://github.com/astral-sh/setup-uv
173-
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6
192+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
174193
with:
175194
version: ${{ env.UV_VERSION }}
176195

@@ -185,7 +204,7 @@ runs:
185204
if: runner.os != 'macOS'
186205
id: cached-uv
187206
# https://github.com/actions/cache
188-
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
207+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
189208
with:
190209
path: ${{ env.UV_CACHE_DIR }}
191210
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-uv-${{ hashFiles('**/uv.lock') }}
@@ -198,7 +217,7 @@ runs:
198217
if: runner.os != 'macOS'
199218
id: cached-pre-commit
200219
# https://github.com/actions/cache
201-
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
220+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
202221
with:
203222
path: ~/.cache/pre-commit
204223
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}

.github/actions/common-test-data/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ runs:
1010
if: runner.os != 'macOS'
1111
id: cached-testdata-large
1212
# https://github.com/actions/cache/tree/main/restore
13-
uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
13+
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
1414
with:
1515
path: tests/test_data/large
1616
key: large-files-${{ hashFiles('tests/test_data/large/checksums.json') }}
@@ -22,7 +22,7 @@ runs:
2222
# See: https://github.com/actions/runner/issues/3765
2323
if: ${{ runner.os != 'macOS' && always() && steps.cached-testdata-large.outputs.cache-hit != 'true' }}
2424
# https://github.com/actions/cache/tree/main/save
25-
uses: actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
25+
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
2626
with:
2727
path: tests/test_data/large
2828
key: large-files-${{ hashFiles('tests/test_data/large/checksums.json') }}

.github/actions/install-capnp/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ runs:
3333
- name: Cache Cap'n Proto (Linux)
3434
if: runner.os == 'Linux'
3535
id: cache-capnp
36-
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
36+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
3737
with:
3838
path: ${{ github.workspace }}/.cache/capnp
3939
key: capnp-linux-${{ steps.linux-version.outputs.release }}-${{ env.CAPNP_VERSION }}-${{ runner.arch }}

.github/workflows/build-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
# https://github.com/step-security/harden-runner
16-
- uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
16+
- uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
1717
with:
1818
egress-policy: audit
1919

.github/workflows/build-v2.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ jobs:
2323
pre-commit:
2424
runs-on: ubuntu-22.04 # glibc 2.35 – larger runtime range
2525
steps:
26-
- uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
26+
- uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
2727
with:
2828
egress-policy: audit
2929

3030
- name: Checkout repository
31-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
31+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3232
with:
3333
persist-credentials: false
3434

@@ -87,12 +87,12 @@ jobs:
8787
# yamllint enable rule:line-length
8888

8989
steps:
90-
- uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
90+
- uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
9191
with:
9292
egress-policy: audit
9393

9494
- name: Checkout repository
95-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
95+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
9696
with:
9797
persist-credentials: false
9898

@@ -162,15 +162,15 @@ jobs:
162162
CLOUDFLARE_R2_BUCKET_NAME: "packages"
163163
CLOUDFLARE_R2_PREFIX: "v2/simple/nautilus-trader"
164164
steps:
165-
- uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
165+
- uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
166166
with:
167167
egress-policy: audit
168168
allowed-endpoints: |
169169
${{ vars.COMMON_ALLOWED_ENDPOINTS }}
170170
${{ secrets.CLOUDFLARE_R2_ALLOWED_HOST }}:443
171171
172172
- name: Checkout repository
173-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
173+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
174174
with:
175175
persist-credentials: false
176176

@@ -183,7 +183,7 @@ jobs:
183183

184184
# https://github.com/actions/attest-build-provenance
185185
- name: Attest wheel provenance
186-
uses: actions/attest-build-provenance@46a583fd92dfbf46b772907a9740f888f4324bb9 # v3.1.0
186+
uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
187187
with:
188188
subject-path: 'dist/*.whl'
189189

0 commit comments

Comments
 (0)