Contributing¶
Repository layout¶
This public arbitrix-core repo is a mirror. The authoritative source lives
in the upstream private Arbitrix monorepo at arbitrix/src/arbitrix_core/. A
GitHub Action runs git subtree split on every push and force-pushes the
result to development here.
That has two consequences:
- Direct commits to
developmentare overwritten on the next sync. Don't push there. - Pull requests against this repo can't be merged here directly — they need to land upstream, and the next sync brings them across.
How to contribute¶
- Bug reports and feature requests — open an issue on G14MB0/arbitrix-core/issues.
- Code patches — open the issue first; the maintainer will guide whether the patch lands here as a backport or upstream first.
- Documentation fixes — pull requests welcome. The maintainer will replay the change upstream so it survives the next sync.
Local development¶
git clone https://github.com/G14MB0/arbitrix-core
cd arbitrix-core
pip install -e ".[dev]"
pytest
ruff check .
To rebuild docs locally:
Then browse to http://127.0.0.1:8000.
Code style¶
- Python ≥ 3.10
ruffenforces formatting + lint (line length 110, target Python 3.10)- Strict OHLCV schema — see Data format. Validation lives in
arbitrix_core.data.loader.validate_ohlcvand runs before any backtest. - Cost models are plain Python modules with six functions — see Cost models.
Releasing¶
Tag-driven via the release.yml workflow on main. The workflow uses PyPI
trusted publishing (OIDC), so no API tokens are stored in the repo.