Added a comprehensive roadmap for Phase 1 of the MT5 AI/ML Trading Bot project, detailing objectives, tasks, and success criteria.
8.1 KiB
PHASE 1: CI/CD & Code Quality Roadmap
MT5 AI/ML Trading Bot - Enterprise-Grade Transformation
Status: 🔄 In Progress | Target Completion: Week 1-2 | Priority: 🔴 CRITICAL
📊 Current Status (April 18, 2026)
✅ Completed Tasks
-
Fixed unused imports in
src/trading/risk_manager.py -
Organized import structure
- Added blank lines between import sections (commit:
57cffc0) - Separated stdlib from local imports
- Added blank lines between import sections (commit:
🔄 In Progress
- Import sorting refinement (I001 error)
- Issue: Ruff still detecting un-sorted imports
- Next: Configure ruff to auto-fix import order
⏳ Remaining Critical Tasks
- Configure ruff import sorting in
pyproject.toml - Create
.pre-commit-config.yamlfor automated checks - Enable GitHub Dependabot for dependency scanning
- Enable CodeQL security scanning
- Add branch protection rules
- Configure automated testing
- Set up code coverage reporting
🎯 Phase 1 Objectives
PRIMARY GOAL: Get CI/CD pipeline passing ✅ (100% green builds)
SUCCESS METRICS:
- ✅ All GitHub Actions workflows passing
- ✅ Zero linting errors (ruff check)
- ✅ Zero type errors (mypy --strict)
- ✅ Test coverage >80%
- ✅ Security scanning enabled
- ✅ Automated dependency updates
📋 Detailed Action Plan
STEP 1: Fix Remaining Lint Errors 🔴 CRITICAL
Time: 1-2 hours | Owner: Dev Team
Tasks:
- Configure ruff import sorting in
pyproject.toml[tool.ruff] select = ["E", "F", "I"] fix = true [tool.ruff.isort] known-first-party = ["src"] - Run
ruff check --fix src/to auto-fix imports - Verify all files pass:
ruff check src/ tests/ - Commit:
fix: Configure ruff and resolve all linting errors
Expected Outcome:
✅ CI "Code Quality" job passes ✅ Zero lint warnings
STEP 2: Add Pre-Commit Hooks 🟡 HIGH
Time: 30 minutes | Owner: Dev Team
Tasks:
- Create
.pre-commit-config.yamlrepos: - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.3.0 hooks: - id: ruff args: [--fix] - id: ruff-format - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-added-large-files - id: check-merge-conflict - Install:
pip install pre-commit && pre-commit install - Test:
pre-commit run --all-files - Commit:
chore: Add pre-commit hooks for code quality
Expected Outcome:
✅ Hooks run automatically on every commit ✅ Code quality enforced before push
STEP 3: Enhanced Ruff Configuration 🟡 HIGH
Time: 1 hour | Owner: Dev Team
Tasks:
- Update
pyproject.tomlwith comprehensive ruff rules[tool.ruff] target-version = "py310" line-length = 100 select = [ "E", # pycodestyle errors "F", # pyflakes "I", # isort "N", # pep8-naming "UP", # pyupgrade "B", # flake8-bugbear "C4", # flake8-comprehensions "SIM", # flake8-simplify ] [tool.ruff.per-file-ignores] "__init__.py" = ["F401"] # Allow unused imports in __init__ - Run and fix:
ruff check --fix src/ tests/ - Commit:
config: Add comprehensive ruff configuration
STEP 4: Type Checking with mypy 🟢 MEDIUM
Time: 2-3 hours | Owner: Dev Team
Tasks:
- Add mypy to
requirements.txt - Configure in
pyproject.toml:[tool.mypy] python_version = "3.10" strict = true warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true - Add mypy to CI workflow (
.github/workflows/ci.yml) - Fix type errors incrementally
- Commit:
chore: Add mypy type checking
STEP 5: Test Coverage 🟢 MEDIUM
Time: 3-4 hours | Owner: Dev Team
Tasks:
- Install:
pip install pytest pytest-cov pytest-mock - Add more unit tests in
tests/tests/test_risk_manager.pytests/test_mt5_connector.pytests/test_config.py(already exists)
- Configure coverage in
pyproject.toml:[tool.pytest.ini_options] testpaths = ["tests"] addopts = "--cov=src --cov-report=html --cov-report=term-missing" - Add coverage to CI
- Set minimum coverage: 80%
- Commit:
test: Increase coverage to 80%+
Expected Outcome:
✅ >80% test coverage ✅ Coverage reports in CI
STEP 6: Enable Security Features 🔴 CRITICAL
Time: 30 minutes | Owner: Repo Admin
Tasks:
-
Enable Dependabot
- Settings → Security → Enable Dependabot alerts
- Settings → Security → Enable Dependabot security updates
- Create
.github/dependabot.yml:version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" open-pull-requests-limit: 10
-
Enable CodeQL Code Scanning
- Security → Code scanning → Set up CodeQL
- Select Python analysis
- Commit workflow:
.github/workflows/codeql.yml
-
Create SECURITY.md
# Security Policy ## Reporting Vulnerabilities Email: security@triqbit.com Response time: 48 hours
Expected Outcome:
✅ Automated vulnerability scanning ✅ Weekly dependency updates ✅ Security policy published
STEP 7: Branch Protection Rules 🔴 CRITICAL
Time: 15 minutes | Owner: Repo Admin
Tasks:
- Navigate to Settings → Branches → Add rule
- Branch name pattern:
main - Enable:
- ✅ Require pull request before merging
- ✅ Require status checks to pass
- ✅ Code Quality
- ✅ Tests
- ✅ Docker Build
- ✅ Require conversation resolution
- ✅ Do not allow bypassing
Expected Outcome:
✅ No direct pushes to main ✅ All code reviewed before merge ✅ CI must pass before merge
STEP 8: Documentation Updates 🟢 MEDIUM
Time: 2 hours | Owner: Dev Team
Tasks:
-
Create
CONTRIBUTING.md- Development setup
- Code style guide
- Pull request process
- Testing requirements
-
Update
README.md- Add CI status badges
- Add coverage badge
- Add security scan badge
-
Create
CODE_OF_CONDUCT.md
🚀 Quick Start Commands
Fix Import Issues NOW:
# 1. Install/update ruff
pip install --upgrade ruff
# 2. Auto-fix all import issues
ruff check --select I --fix src/ tests/
# 3. Verify all checks pass
ruff check src/ tests/
# 4. Commit
git add -A
git commit -m "fix: Resolve all ruff import sorting errors (I001)"
git push
Set Up Pre-Commit Hooks:
pip install pre-commit
pre-commit install
pre-commit run --all-files
Run All Quality Checks:
# Linting
ruff check src/ tests/
# Type checking
mypy src/
# Tests with coverage
pytest --cov=src --cov-report=term-missing
# Security scan
bandit -r src/
📈 Success Criteria
Week 1 Goals (Days 1-7):
- ✅ All CI builds passing (green)
- ✅ Pre-commit hooks configured
- ✅ Ruff + mypy configured
- ✅ Basic tests >50% coverage
- ✅ Security scanning enabled
Week 2 Goals (Days 8-14):
- ✅ Test coverage >80%
- ✅ Branch protection active
- ✅ Documentation complete
- ✅ First external contribution accepted
🔄 Continuous Improvement
After Phase 1 completion:
- Phase 2: Architecture & Missing Features (Weeks 3-6)
- Phase 3: Production Readiness (Weeks 7-8)
- Phase 4: AI/ML Implementation (Weeks 9-12)
See EXCELLENCE_BLUEPRINT.md for full roadmap.
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: dev@triqbit.com
Last Updated: April 18, 2026
Maintained By: @triqbit
Status: 🔄 Active Development