-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Report: ARM64 Architecture Detection Issue on Linux
Summary
Jesse's installer incorrectly detects ARM64 Linux systems (common in Docker on M1/M2 Macs) as non-ARM, preventing installation of the live-trade plugin.
Environment
- Platform: Docker on Apple M1/M2 Mac
- OS in Container: Linux (Debian/Ubuntu)
- Architecture: ARM64/aarch64
- Jesse Version: 1.10.4
- Python Version: 3.11
Bug Details
Current Code (in /jesse/services/installer.py):
is_arm = platform.machine().startswith('arm')Problem:
- On ARM64 Linux,
platform.machine()returns'aarch64', not'arm' - This causes
is_armto beFalsewhen it should beTrue - Results in Jesse trying to download x86_64 wheels on ARM64 systems
Reproduction Steps
- Run Jesse in Docker on M1/M2 Mac with ARM64 Linux container
- Execute
jesse install-live - Observe output:
is_64_bit True
is_arm False # <-- Should be True
Downloading the latest version of the live-trade plugin...
Installing jesse_live-1.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl...
ERROR: jesse_live-1.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl is not a supported wheel on this platform.
Suggested Fix
Replace the detection line with:
is_arm = platform.machine() in ['arm64', 'aarch64'] or platform.machine().startswith('arm')Impact
- Affects all M1/M2 Mac users running Jesse in Docker
- Forces users to choose between:
- Fast ARM64 performance (10-12x faster numpy operations) without live trading
- Slow x86 emulation with live trading support
Additional Context
platform.machine()returns different values on different ARM systems:- macOS ARM:
'arm64' - Linux ARM64:
'aarch64' - Some embedded systems:
'armv7l','armv8', etc.
- macOS ARM:
Request
- Fix the ARM detection logic
- Provide ARM64 Linux wheels for the live-trade plugin
- Many developers now use M1/M2 Macs with Docker
- ARM64 servers are becoming more common (AWS Graviton, etc.)
Workaround
Currently, users must use x86 emulation (with significant performance penalty) or run separate containers for development vs live trading.
cwirz
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working