41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
# Contributing to MT5-Quant
|
|||
|
|
|
||
|
|
Thanks for your interest in improving MT5-Quant! This document explains how to
|
||
|
|
contribute and what we expect from contributions.
|
||
|
|
|
||
|
|
## How to contribute
|
||
|
|
|
||
|
|
1. **Fork** the repository and create a topic branch from `master`.
|
||
|
|
2. Make your change, keeping it focused (one logical change per PR).
|
||
|
|
3. Open a **pull request against `master`**. A pull request template
|
||
|
|
(`.github/PULL_REQUEST_TEMPLATE.md`) is provided — please fill it in.
|
||
|
|
4. Ensure CI passes (build, `cargo test`, clippy, formatting, cargo-deny,
|
||
|
|
CodeQL). Maintainers review and merge once checks and review are satisfied.
|
||
|
|
|
||
|
|
## Development setup
|
||
|
|
|
||
|
|
- Install Rust (stable toolchain) and, for full backtests, Wine/MT5 as described
|
||
|
|
in `README.md` and `docs/QUICKSTART.md`.
|
||
|
|
- Build the release binary with either:
|
||
|
|
- `bash scripts/build-rust.sh`, or
|
||
|
|
- `cargo build --release`
|
||
|
|
- The binary is produced at `target/release/mt5-quant`.
|
||
|
|
|
||
|
|
## Testing requirement
|
||
|
|
|
||
|
|
- **Non-trivial changes must include tests.** New functionality should come with
|
||
|
|
unit or integration tests where practical.
|
||
|
|
- `cargo test` runs automatically in CI (`rust.yml`) on every push and pull
|
||
|
|
request, so a change that breaks tests cannot merge.
|
||
|
|
|
||
|
|
## Commit style
|
||
|
|
|
||
|
|
- Follow **Conventional Commits** (`feat:`, `fix:`, `docs:`, `refactor:`,
|
||
|
|
`test:`, `release:`), as documented in `AGENTS.md`.
|
||
|
|
|
||
|
|
## Issue tracker
|
||
|
|
|
||
|
|
- Bugs and enhancement requests are tracked on the project's
|
||
|
|
[GitHub Issues](https://github.com/masdevid/mt5-quant/issues), with
|
||
|
|
bug-report and feature-request templates under `.github/ISSUE_TEMPLATE/`.
|