Thank you for your interest in contributing to Binance Temporal Market Analysis Bot (a.k.a. BTMAB) maintained by @amourification.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). By contributing, you agree that your contributions are released under the same license.
-
Prerequisites
- Python 3.11+
git
-
Clone and enter the project
git clone <your-fork-or-origin-url>
cd "BTMAB"- Install in editable mode with dev dependencies
pip install -e ".[dev]"This installs the main dependencies plus tools like pytest, ruff, and black.
- Source code:
src/(packages such asbot,charts,consensus,data,engine,gui,risk,advanced) - Tests:
tests/(alltest_*.pyfiles) - CLI entry points:
- GUI:
temporal-gui→main_gui:main - Telegram bot:
BTMAB→bot.telegram_bot:main
- GUI:
When adding new modules, put them under the appropriate package in
src/and add corresponding tests undertests/.
- Create a feature branch
git checkout -b feature/short-description-
Make changes
- Keep functions small and focused.
- Prefer explicit imports over wildcards.
-
Run the test suite
From the Project directory:
python run_all_tests.pyThis script runs all tests/test_*.py files and:
- Skips tests marked
@pytest.mark.slowby default. - To include slow tests:
set INCLUDE_SLOW_TESTS=1 # Windows PowerShell: $env:INCLUDE_SLOW_TESTS = "1"
python run_all_tests.pyYou can also run pytest directly, e.g.:
pytest tests- Formatting: use
black
black .- Linting: use
ruff
ruff check .Try to keep code free of new linter errors and formatted with black before opening a pull request.
-
Write clear, descriptive commit messages, e.g.:
Refactor risk engine position sizingFix GUI theme persistence on restartAdd tests for cycle time utilities
-
For pull requests:
- Describe what you changed and why.
- Mention any backwards-incompatible changes.
- Note any tests that are slow or require external APIs.
When opening an issue or discussion, please include:
- OS, Python version, and how you installed dependencies.
- Exact command you ran (e.g.
python run_all_tests.pyortemporal-gui). - Full traceback or error messages, plus any relevant logs/screenshots.
By contributing to this project, you agree that your contributions are licensed under the GNU General Public License v3.0 (GPL-3.0) as described in the LICENSE file.