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

Release 1.204.0 #2017

Merged
merged 225 commits into from
Oct 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
225 commits
Select commit Hold shift + click to select a range
ffd9ec2
Pin pre-commit to 3.8.0
davidsblom Oct 6, 2024
7327856
Pin it for mac and windows too
davidsblom Oct 6, 2024
816af5d
Pin pre-commit to 3.8.0
cjdsellers Oct 6, 2024
2e88da2
Bump version
cjdsellers Oct 6, 2024
34dae2c
Update release notes
cjdsellers Oct 7, 2024
a9bac69
Standardize Betfair symbology
cjdsellers Oct 7, 2024
cdb5c4c
Fix resubscribing to orderbook in batched mode for dYdX (#1985)
davidsblom Oct 7, 2024
3a6faf0
Update release notes
cjdsellers Oct 7, 2024
ed951ea
Port Throttler to Rust (#1918)
Pushkarm029 Oct 7, 2024
8aa0eef
Close existing tasks when reconnecting WebSocketClient (#1986)
davidsblom Oct 7, 2024
17411b9
Fix Betfair test (#1988)
limx0 Oct 7, 2024
852c951
Update release notes
cjdsellers Oct 7, 2024
62dc2e8
Minor formatting and add docs
cjdsellers Oct 7, 2024
09c60a6
Minor formatting
cjdsellers Oct 7, 2024
c99b852
Fix clippy lints
cjdsellers Oct 7, 2024
20ebe46
Update pre-commit
cjdsellers Oct 7, 2024
a0664a0
Add support for bbo quotes in Databento adapter (#1990)
faysou Oct 7, 2024
7719842
Update release notes
cjdsellers Oct 7, 2024
ed4dad2
Reorganize and update dependencies
cjdsellers Oct 7, 2024
337a8fe
Refine method naming
cjdsellers Oct 7, 2024
ec10de7
Refine quote and trade related method naming
cjdsellers Oct 7, 2024
55a414d
Add submit multiple limit orders test
cjdsellers Oct 7, 2024
90d4f49
Upgrade black
cjdsellers Oct 7, 2024
669e2f6
Standardize numpydoc spec for type stubs
cjdsellers Oct 7, 2024
102ea05
Update Databento docs with BBO schemas
cjdsellers Oct 7, 2024
e8abdf6
Standardize log message syntax in Rust
cjdsellers Oct 7, 2024
c624480
Standardize error variable naming in Rust
cjdsellers Oct 7, 2024
296841a
Standardize panic message syntax
cjdsellers Oct 7, 2024
3147417
Update CLA
cjdsellers Oct 8, 2024
c373195
Update contributing guide
cjdsellers Oct 8, 2024
81bd44c
Prevent pytest collecting non-test classes
cjdsellers Oct 8, 2024
6522ba4
Add validation for venue book_type vs data
cjdsellers Oct 8, 2024
92c4a86
Update CLA
cjdsellers Oct 8, 2024
31f7cae
Update release notes
cjdsellers Oct 8, 2024
748075d
Refine validation for venue book_type vs data
cjdsellers Oct 8, 2024
a3729bf
Update CLA
cjdsellers Oct 8, 2024
d6524bd
Update dependencies
cjdsellers Oct 8, 2024
580e58c
Adjust clippy cognitive-complexity-threshold
cjdsellers Oct 8, 2024
b214dc9
Refine data docs
cjdsellers Oct 8, 2024
e85b20a
Fix pre-commit by disabling docformatter
cjdsellers Oct 8, 2024
200119a
Update dependencies
cjdsellers Oct 8, 2024
e1851e8
Improve Betfair docs and example
cjdsellers Oct 8, 2024
02f076d
Refine Betfair live example
cjdsellers Oct 8, 2024
dc3aec7
Fix SocketClient TLS implementation
cjdsellers Oct 8, 2024
35600dd
Upgrade databento crate
cjdsellers Oct 8, 2024
1a9c429
Add compute_effective_deltas for Polymarket
cjdsellers Oct 9, 2024
df1230d
Standardize Python versioning in CI workflows
cjdsellers Oct 9, 2024
b6463e8
Standardize constructor returns
cjdsellers Oct 9, 2024
3826df2
Refine DatabentoInstrumentProvider parent symbols
cjdsellers Oct 9, 2024
9a82fe4
Standardize Python versioning in CI workflows
cjdsellers Oct 9, 2024
5eb47ad
Docs update (#1991)
FarukhS52 Oct 9, 2024
c0c1ca5
Update release notes
cjdsellers Oct 9, 2024
854952e
Update dependencies
cjdsellers Oct 9, 2024
8f11406
Add Clock.timestamp_us UNIX timestamp microseconds
cjdsellers Oct 9, 2024
5057e50
Use clock.timestamp_us()
cjdsellers Oct 9, 2024
0a338ba
Use time conversion constant
cjdsellers Oct 9, 2024
8760f53
Refine Rust docs
cjdsellers Oct 9, 2024
dd378fe
Refine DatabentoDataLoader
cjdsellers Oct 9, 2024
fd37cb7
Improve usability of OrderBookDepth10
cjdsellers Oct 10, 2024
feb7fd6
Refine data docs
cjdsellers Oct 10, 2024
f963745
Fix markdown heading
cjdsellers Oct 9, 2024
2172fdf
Add Tardis CSV reader
cjdsellers Oct 10, 2024
46013ab
Add Tardis CSV reader
cjdsellers Oct 10, 2024
a21faec
Add Tardis CSV reader
cjdsellers Oct 10, 2024
029a15e
Add Tardis CSV loading functions
cjdsellers Oct 10, 2024
c5d2841
Fix WebSocketClient error handling on writer close
cjdsellers Oct 10, 2024
e873be2
Add error logs to websocket for dYdX (#1993)
davidsblom Oct 10, 2024
8499a0b
Add Tardis websocket messages
cjdsellers Oct 10, 2024
2c2f094
Update release notes
cjdsellers Oct 10, 2024
19c5777
Update GitHub workflows
cjdsellers Oct 10, 2024
6f94927
Update dependencies
cjdsellers Oct 10, 2024
4440041
Add download-wheel script
cjdsellers Oct 10, 2024
8a2858d
Cleanup release workflow
cjdsellers Oct 10, 2024
730e631
Add TardisCSVDataLoader
cjdsellers Oct 10, 2024
dde3911
Refine large test data functions
cjdsellers Oct 10, 2024
b85fbce
Refine large test data functions
cjdsellers Oct 10, 2024
f730d59
Continue TardisCSVDataLoader
cjdsellers Oct 11, 2024
0280917
Continue TardisCSVDataLoader
cjdsellers Oct 11, 2024
da1731a
Update docs
cjdsellers Oct 11, 2024
ff7d07c
Refine loader tests
cjdsellers Oct 11, 2024
f4216c1
Reorganize dependencies
cjdsellers Oct 11, 2024
43d2135
Refine tardis CSV parsing tests
cjdsellers Oct 11, 2024
2de463e
Add RateLimiter for WebSocket (#1994)
Pushkarm029 Oct 11, 2024
37baef2
Add in the money probability field to GreeksData (#1995)
faysou Oct 11, 2024
2d70ed3
Update release notes
cjdsellers Oct 11, 2024
ccac576
Add rate limiter for WebSocketClient.send
cjdsellers Oct 11, 2024
5869cf9
Add tip on using make build-debug
cjdsellers Oct 11, 2024
fa09d0f
Fix clippy lints
cjdsellers Oct 11, 2024
0302cb7
Fix ensure_test_data path resolution
cjdsellers Oct 11, 2024
a1e0146
Add Betfair constants
cjdsellers Oct 11, 2024
ce2f13f
Refine build script
cjdsellers Oct 11, 2024
e9f66bc
Use Rust rate limiter for dYdX websockets (#1996)
davidsblom Oct 11, 2024
5cb54a5
Update release notes
cjdsellers Oct 11, 2024
e8d4a2a
Standardize postgres cache module namespace
cjdsellers Oct 11, 2024
8124c98
Fix PostgresCacheDatabase type stub
cjdsellers Oct 11, 2024
b1a28d4
Refine Nautilus CLI developer guide
cjdsellers Oct 11, 2024
70c1e89
Add macos for build-wheels workflow
cjdsellers Oct 12, 2024
54cd4df
Refine download-wheel script
cjdsellers Oct 12, 2024
c1eee9d
Fix build-wheels workflow
cjdsellers Oct 12, 2024
643f493
Cleanup build-wheels workflow
cjdsellers Oct 12, 2024
d52cea8
Refine build
cjdsellers Oct 12, 2024
9bef9ba
Make cp312 default for download-wheel
cjdsellers Oct 12, 2024
92c9c6c
Standardize module imports
cjdsellers Oct 12, 2024
8906345
Standardize param name and method ordering
cjdsellers Oct 12, 2024
77c1194
Standardize client_order_id column naming
cjdsellers Oct 12, 2024
4e484ba
Implement orderbook deltas processing for SimulatedExchange (#1997)
filipmacek Oct 12, 2024
990dbed
Update bid and ask in matching engine iteration (#1998)
filipmacek Oct 12, 2024
33f5a2a
Add docs and fix rate limiting for websockets of dYdX (#1999)
davidsblom Oct 12, 2024
fa67171
Update release notes
cjdsellers Oct 12, 2024
48e0c50
Run docformatter over codebase
cjdsellers Oct 12, 2024
3965a2d
Refine book_type vs data low-level validation
cjdsellers Oct 12, 2024
257c309
Always process order book data
cjdsellers Oct 12, 2024
db07872
Improve backtesting docs
cjdsellers Oct 12, 2024
5b009d9
Standardize adapter constants
cjdsellers Oct 12, 2024
08224b0
Group public fields
cjdsellers Oct 12, 2024
cef49bb
Continue bar aggregation in Rust
cjdsellers Oct 12, 2024
5f265d4
Standardize quote and trade variable naming
cjdsellers Oct 12, 2024
f663dad
Improve canceled task handling
cjdsellers Oct 13, 2024
d565eac
Cleanup Betfair clients
cjdsellers Oct 13, 2024
5fa78f7
Update dependencies
cjdsellers Oct 13, 2024
ad24b71
Refine Polymarket book snapshot parsing
cjdsellers Oct 13, 2024
25be0a1
Cleanup actor fields
cjdsellers Oct 13, 2024
8a7571c
Add generic Signal type for cache database
cjdsellers Oct 13, 2024
50a02d8
Add Python interface for Signal
cjdsellers Oct 13, 2024
439275d
Fix and refine signals for postgres
cjdsellers Oct 13, 2024
9a44f8e
Refine custom signal handling
cjdsellers Oct 14, 2024
43fe1f1
Add DataType and CustomData for pyo3
cjdsellers Oct 14, 2024
52fe70a
Add custom data handling for postgres
cjdsellers Oct 14, 2024
51419c7
Refine RateLimiter for WebSocketClient (#2000)
Pushkarm029 Oct 14, 2024
6b2ceda
Update dependencies
cjdsellers Oct 14, 2024
25320d3
Update release notes
cjdsellers Oct 14, 2024
078d188
Refine log message
cjdsellers Oct 14, 2024
6657e8a
Fix check for OmsType in OrderMatchingEngine (#2003)
filipmacek Oct 14, 2024
9864cb2
Implement instrument status processing for SimulatedExchange (#2001)
filipmacek Oct 14, 2024
b2db3e0
Update release notes
cjdsellers Oct 14, 2024
786c773
Refine custom data handling for postgres
cjdsellers Oct 14, 2024
952e38b
Continue TardisCSVDataLoader testing
cjdsellers Oct 15, 2024
d069c06
Standardize Postgres adapter method ordering
cjdsellers Oct 15, 2024
4463877
Refine test data getters in Rust (#2004)
filipmacek Oct 15, 2024
0649a37
Fix TardisCSVDataLoader for snapshot5 and snapshot25 (#2005)
Pushkarm029 Oct 15, 2024
5b4f40c
Fix type stub for OrderBookDepth10
cjdsellers Oct 15, 2024
7cc37ca
Update release notes
cjdsellers Oct 15, 2024
8cb5f05
Continue order interface for postgres
cjdsellers Oct 15, 2024
7c3f1f4
Implement get_venue_position_id in OrderMatchingEngine (#2006)
filipmacek Oct 16, 2024
fb91ddc
Update dependencies and pre-commit
cjdsellers Oct 16, 2024
1d63ec4
Fix TradingNode signal logging
cjdsellers Oct 16, 2024
f877e75
Fix Binance client venue assignment
cjdsellers Oct 16, 2024
70b08e3
Add Binance Spot and Futures example
cjdsellers Oct 16, 2024
1a67f61
Cleanup example script
cjdsellers Oct 16, 2024
bccea52
Implement PostgresCacheDatabase close method
cjdsellers Oct 16, 2024
992720e
Add BettingInstrument in Rust
cjdsellers Oct 16, 2024
7d100bb
Fix clippy lints
cjdsellers Oct 16, 2024
f2392e4
Implement position getter for hedging Oms in OrderMatchingEngine (#2007)
filipmacek Oct 16, 2024
708e3df
Refine OrderMatchingEngine
cjdsellers Oct 16, 2024
2ffeaa2
Update release notes
cjdsellers Oct 17, 2024
dd0789a
Add BettingInstrument in Rust
cjdsellers Oct 17, 2024
fd52293
Reorganize OrderMatchingEngine (#2009)
filipmacek Oct 17, 2024
0852748
Simplify qualification of OrderMatchingEngine methods
cjdsellers Oct 17, 2024
6323f29
Fix clippy lints
cjdsellers Oct 17, 2024
4a5efdc
Continue improving BettingInstrument and testing
cjdsellers Oct 17, 2024
5ce4bb2
Fix BettingInstrument dict and arrow schema
cjdsellers Oct 17, 2024
1949ff8
Refine BinaryOption instrument
cjdsellers Oct 17, 2024
da43caa
Improve Postgres config (#2010)
filipmacek Oct 17, 2024
41141cf
Update release notes
cjdsellers Oct 17, 2024
70f757e
Upgrade Rust
cjdsellers Oct 17, 2024
a1e8ef4
Update dependencies
cjdsellers Oct 18, 2024
d3b0c74
Fix signal handling log
cjdsellers Oct 18, 2024
b725819
Skip processing monthly bars in OrderMatchingEngine
cjdsellers Oct 18, 2024
c801772
Skip processing monthly bars in OrderMatchingEngine
cjdsellers Oct 18, 2024
952f9c8
Update release notes
cjdsellers Oct 18, 2024
23cabd6
Implement additional instruments for postgres
cjdsellers Oct 18, 2024
e35481c
Refine PostgresCacheDatabase flush and close methods
cjdsellers Oct 18, 2024
903217f
Move async-stream dependency to workspace level
cjdsellers Oct 18, 2024
0acae9b
Implement position getter for netting Oms in OrderMatchingEngine (#2014)
filipmacek Oct 18, 2024
fa6ee97
Update release notes
cjdsellers Oct 18, 2024
27f461d
Remove mutable reference in cache database trait in Rust (#2015)
filipmacek Oct 18, 2024
83b9610
Update dependencies
cjdsellers Oct 18, 2024
b944f0b
Fix BettingInstrument for postgres
cjdsellers Oct 18, 2024
18b07a3
Improve pyo3 instrument conversion testing
cjdsellers Oct 18, 2024
5e03aa3
Improve PostgresCacheDatabase error logging
cjdsellers Oct 18, 2024
9d26719
Improve comment placement
cjdsellers Oct 18, 2024
e834705
Refine cache database command processing
cjdsellers Oct 18, 2024
8fed69f
Fix handling MONTH aggregation for cache.bar_types
cjdsellers Oct 18, 2024
ac9dffa
Add Binance TRADE_LITE message parsing
cjdsellers Oct 18, 2024
678b3f7
Remove redundant heartbeat method in Python
cjdsellers Oct 19, 2024
55debd5
Cleanup TradingNode constructor
cjdsellers Oct 19, 2024
d713541
Refine release notes
cjdsellers Oct 19, 2024
872a79f
Add order and position snapshot structs in Rust
cjdsellers Oct 19, 2024
059b5df
Refine position schema for postgres
cjdsellers Oct 19, 2024
5faeb98
Implement add PositionSnapshot for postgres
cjdsellers Oct 19, 2024
8fcf1a0
Update core dependencies
cjdsellers Oct 19, 2024
8698405
Standardize Python interface functions for postgres
cjdsellers Oct 19, 2024
00ef5fe
Standardize CacheDatabaseAdapter trait method ordering
cjdsellers Oct 19, 2024
6c78396
Refine pyo3 exports
cjdsellers Oct 19, 2024
81346db
Reduce effective deltas log level
cjdsellers Oct 19, 2024
b7d8b12
Remove redundant comment
cjdsellers Oct 19, 2024
6c300d1
Fix Polymarket OrderFilled serialization
cjdsellers Oct 19, 2024
ac1c905
Align Position.to_dict for pyo3 and cython
cjdsellers Oct 20, 2024
cbc399c
Standardize PositionSnapshot schema
cjdsellers Oct 20, 2024
6105af2
Fix PositionSnapshot base_currency handling
cjdsellers Oct 20, 2024
259d063
Add common.events module with re-exports
cjdsellers Oct 20, 2024
9741876
Update dev dependencies
cjdsellers Oct 20, 2024
04f176d
Upgrade codecov action
cjdsellers Oct 20, 2024
602d65a
Fix README typo
cjdsellers Oct 20, 2024
7005fba
Add tardis-machine sandbox script
cjdsellers Oct 20, 2024
370e049
Refine adapter crate dependencies
cjdsellers Oct 20, 2024
35f54ca
Fix tardis-machine sandbox script
cjdsellers Oct 20, 2024
b0dada0
Refine TardisCSVDataLoader record reading
cjdsellers Oct 20, 2024
85f1e97
Refine Tardis Exchange enum
cjdsellers Oct 20, 2024
96ec0f9
Refine message bus command processing
cjdsellers Oct 20, 2024
bc45f49
Continue Tardis Machine client
cjdsellers Oct 20, 2024
570ac21
Reorganize tardis library
cjdsellers Oct 20, 2024
a23a48f
Continue Tardis Machine client
cjdsellers Oct 21, 2024
71537c5
Fix clippy lints
cjdsellers Oct 21, 2024
c5d4127
Implement Tardis Machine streams
cjdsellers Oct 21, 2024
4033e81
Refine Tardis replay example
cjdsellers Oct 21, 2024
3861dd2
Cleanups
cjdsellers Oct 21, 2024
90c28c1
Add Box::pin comments
cjdsellers Oct 21, 2024
a8bd818
Refine Tardis streams processing
cjdsellers Oct 21, 2024
c4635c0
Update dependencies
cjdsellers Oct 21, 2024
d136ae3
Refine Tardis Machine client
cjdsellers Oct 21, 2024
9f712da
Upgrade Poetry
cjdsellers Oct 22, 2024
94fab8e
Update dependencies
cjdsellers Oct 22, 2024
70f1b92
Update release notes
cjdsellers Oct 22, 2024
54c02bf
Cleanup order events
cjdsellers Oct 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .docker/nautilus_trader.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ENV PYTHONUNBUFFERED=1 \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 \
PYO3_PYTHON="/usr/local/bin/python3" \
POETRY_VERSION=1.8.3 \
POETRY_VERSION=1.8.4 \
POETRY_HOME="/opt/poetry" \
POETRY_VIRTUALENVS_CREATE=false \
POETRY_NO_INTERACTION=1 \
Expand Down
42 changes: 14 additions & 28 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ jobs:
strategy:
fail-fast: false
matrix:
arch: [x64]
os: [ubuntu-latest]
os: [ubuntu-latest, macos-latest]
python-version: ["3.11", "3.12"]
name: build - Python ${{ matrix.python-version }} (${{ matrix.arch }} ${{ matrix.os }})
name: build - Python ${{ matrix.python-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}

steps:
- name: Free disk space (Ubuntu)
if: runner.os == 'Linux'
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
Expand All @@ -28,41 +28,27 @@ jobs:
docker-images: true
swap-storage: true

- name: Install runner dependencies
- name: Install runner dependencies (Linux)
if: runner.os == 'Linux'
run: sudo apt-get install -y curl clang git libssl-dev make pkg-config

- name: Checkout repository
uses: actions/checkout@v4

- name: Get Rust version from rust-toolchain.toml
id: rust-version
- name: Set up Rust toolchain
run: |
version=$(awk -F\" '/version/ {print $2}' nautilus_core/rust-toolchain.toml)
echo "Rust toolchain version $version"
echo "RUST_VERSION=$version" >> $GITHUB_ENV
working-directory: ${{ github.workspace }}

- name: Set up Rust tool-chain (Linux, Windows) stable
if: (runner.os == 'Linux') || (runner.os == 'Windows')
uses: actions-rust-lang/[email protected]
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy

# Work around as actions-rust-lang does not seem to work on macOS yet
- name: Set up Rust tool-chain (macOS) stable
if: runner.os == 'macOS'
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_VERSION }}
override: true
components: rustfmt, clippy
rustup toolchain add --profile minimal stable --component clippy,rustfmt

- name: Set up Python environment
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Get Python version
run: |
version=$(bash scripts/python-version.sh)
echo "PYTHON_VERSION=$version" >> $GITHUB_ENV

- name: Get Poetry version from poetry-version
run: |
version=$(cat poetry-version)
Expand All @@ -84,7 +70,7 @@ jobs:
uses: actions/cache@v4
with:
path: ${{ env.POETRY_CACHE_DIR }}
key: ${{ runner.os }}-${{ matrix.python-version }}-poetry-${{ hashFiles('**/poetry.lock') }}
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-poetry-${{ hashFiles('**/poetry.lock') }}

- name: Install / Build
run: |
Expand All @@ -99,7 +85,7 @@ jobs:
echo "ASSET_NAME=$(printf '%s\0' * | awk 'BEGIN{RS="\0"} {print; exit}')" >> $GITHUB_ENV

- name: Upload wheel artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.ASSET_NAME }}
path: ${{ env.ASSET_PATH }}
64 changes: 14 additions & 50 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@ jobs:
strategy:
fail-fast: false
matrix:
arch: [x64]
os: [ubuntu-latest]
python-version: ["3.11", "3.12"]
defaults:
run:
shell: bash
name: build - Python ${{ matrix.python-version }} (${{ matrix.arch }} ${{ matrix.os }})
name: build - Python ${{ matrix.python-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
BUILD_MODE: debug
Expand Down Expand Up @@ -61,19 +60,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get Rust version from rust-toolchain.toml
id: rust-version
- name: Set up Rust toolchain
run: |
version=$(awk -F\" '/version/ {print $2}' nautilus_core/rust-toolchain.toml)
echo "Rust toolchain version $version"
echo "RUST_VERSION=$version" >> $GITHUB_ENV
working-directory: ${{ github.workspace }}

- name: Set up Rust tool-chain (Linux, Windows) stable
uses: actions-rust-lang/[email protected]
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy
rustup toolchain add --profile minimal stable --component clippy,rustfmt

- name: Set up Python environment
uses: actions/setup-python@v5
Expand All @@ -82,7 +71,7 @@ jobs:

- name: Get Python version
run: |
version=$(python -c "import sys; print('.'.join(map(str, sys.version_info[:3])))")
version=$(bash scripts/python-version.sh)
echo "PYTHON_VERSION=$version" >> $GITHUB_ENV

- name: Get Poetry version from poetry-version
Expand Down Expand Up @@ -179,13 +168,12 @@ jobs:
strategy:
fail-fast: false
matrix:
arch: [x64]
os: [windows-latest]
python-version: ["3.11", "3.12"]
defaults:
run:
shell: bash
name: build - Python ${{ matrix.python-version }} (${{ matrix.arch }} ${{ matrix.os }})
name: build - Python ${{ matrix.python-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
BUILD_MODE: debug
Expand All @@ -200,19 +188,9 @@ jobs:
rm -rf "/c/Program Files/dotnet"
rm -rf "/c/Program Files (x86)/Microsoft Visual Studio/2019"

- name: Get Rust version from rust-toolchain.toml
id: rust-version
- name: Set up Rust toolchain
run: |
version=$(awk -F\" '/version/ {print $2}' nautilus_core/rust-toolchain.toml)
echo "Rust toolchain version $version"
echo "RUST_VERSION=$version" >> $GITHUB_ENV
working-directory: ${{ github.workspace }}

- name: Set up Rust tool-chain (Linux, Windows) stable
uses: actions-rust-lang/[email protected]
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy
rustup toolchain add --profile minimal stable --component clippy,rustfmt

- name: Set up Python environment
uses: actions/setup-python@v5
Expand All @@ -221,7 +199,7 @@ jobs:

- name: Get Python version
run: |
version=$(python -c "import sys; print('.'.join(map(str, sys.version_info[:3])))")
version=$(bash scripts/python-version.sh)
echo "PYTHON_VERSION=$version" >> $GITHUB_ENV

- name: Get Poetry version from poetry-version
Expand All @@ -242,7 +220,7 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-${{ matrix.python-version }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}

- name: Cached cargo
id: cached-cargo
Expand All @@ -265,7 +243,7 @@ jobs:
uses: actions/cache@v4
with:
path: ${{ env.POETRY_CACHE_DIR }}
key: ${{ runner.os }}-${{ matrix.python-version }}-poetry-${{ hashFiles('**/poetry.lock') }}
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-poetry-${{ hashFiles('**/poetry.lock') }}

- name: Cached test data
id: cached-testdata-large
Expand All @@ -292,13 +270,12 @@ jobs:
strategy:
fail-fast: false
matrix:
arch: [arm64]
os: [macos-latest]
python-version: ["3.11", "3.12"]
defaults:
run:
shell: bash
name: build - Python ${{ matrix.python-version }} (${{ matrix.arch }} ${{ matrix.os }})
name: build - Python ${{ matrix.python-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
BUILD_MODE: debug
Expand All @@ -314,22 +291,9 @@ jobs:
sudo rm -rf ~/Library/Developer/Xcode/DerivedData/*
sudo rm -rf /Library/Developer/CommandLineTools

- name: Get Rust version from rust-toolchain.toml
id: rust-version
- name: Set up Rust toolchain
run: |
version=$(awk -F\" '/version/ {print $2}' nautilus_core/rust-toolchain.toml)
echo "Rust toolchain version $version"
echo "RUST_VERSION=$version" >> $GITHUB_ENV
working-directory: ${{ github.workspace }}

# Work around as actions-rust-lang does not seem to work on macOS yet
- name: Set up Rust tool-chain (macOS) stable
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_VERSION }}
override: true
components: rustfmt, clippy
target: aarch64-apple-darwin
rustup toolchain add --profile minimal stable --component clippy,rustfmt

- name: Set up Python environment
uses: actions/setup-python@v5
Expand All @@ -338,7 +302,7 @@ jobs:

- name: Get Python version
run: |
version=$(python -c "import sys; print('.'.join(map(str, sys.version_info[:3])))")
version=$(bash scripts/python-version.sh)
echo "PYTHON_VERSION=$version" >> $GITHUB_ENV

- name: Get Poetry version from poetry-version
Expand Down
25 changes: 10 additions & 15 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,20 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get Rust version from rust-toolchain.toml
id: rust-version
- name: Set up Rust toolchain
run: |
version=$(awk -F\" '/version/ {print $2}' nautilus_core/rust-toolchain.toml)
echo "Rust toolchain version $version"
echo "RUST_VERSION=$version" >> $GITHUB_ENV
working-directory: ${{ github.workspace }}

- name: Set up Rust tool-chain (Linux, Windows) stable
uses: actions-rust-lang/[email protected]
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy
rustup toolchain add --profile minimal stable --component clippy,rustfmt

- name: Set up Python environment
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Get Python version
run: |
version=$(bash scripts/python-version.sh)
echo "PYTHON_VERSION=$version" >> $GITHUB_ENV

- name: Get Poetry version from poetry-version
run: |
version=$(cat poetry-version)
Expand All @@ -96,7 +91,7 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-${{ matrix.python-version }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}

- name: Run pre-commit
run: pre-commit run --all-files
Expand All @@ -109,7 +104,7 @@ jobs:
uses: actions/cache@v4
with:
path: ${{ env.POETRY_CACHE_DIR }}
key: ${{ runner.os }}-${{ matrix.python-version }}-poetry-${{ hashFiles('**/poetry.lock') }}
key: ${{ runner.os }}-${{ env.PYTHON_VERSION }}-poetry-${{ hashFiles('**/poetry.lock') }}

- name: Cached test data
id: cached-testdata-large
Expand All @@ -134,7 +129,7 @@ jobs:
run: make pytest-coverage

- name: Upload coverage report
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
Expand Down
Loading
Loading