docs: add CONTRIBUTING.md and CII best-practices criteria helper

The scripts/cii_criteria.py helper fetches bestpractices.dev criteria
and generates pre-filled edit URLs for each criterion, streamlining
badge maintenance. CONTRIBUTING.md backs the contribution and testing
criteria referenced by the CII best-practices submission.
This commit is contained in:
Devid HW
2026-08-26 02:38:16 +07:00
parent 38d897d52f
commit d8b0b37919
3 changed files with 271 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
# 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/`.