We welcome contributions and suggestions to improve Predix. Whether it's solving an issue, addressing a bug, enhancing documentation, or even correcting a typo, every contribution is valuable and helps improve the project.
To get started, you can explore the issues list or search for TODO: comments in the codebase by running:
grep -r "TODO:"# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR-USERNAME/Predix.git
cd Predix
# Add upstream remote
git remote add upstream https://github.com/TPTBusiness/Predix.git# Use conventional commit prefixes in branch names
git checkout -b feat/your-feature-name
# or
git checkout -b fix/bug-description
git checkout -b docs/documentation-update
git checkout -b refactor/code-cleanupBranch naming convention:
feat/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Test additions/fixeschore/- Maintenance tasks
Follow the project conventions:
- Code style: Use type hints, docstrings (Google style), and 120 char line limit
- Language: All comments and documentation MUST be in English
- Structure: Follow the existing module structure
MANDATORY: All new features MUST have tests with >80% coverage.
# Run tests
pytest test/ -v
# Run with coverage
pytest --cov=rdagent --cov-report=html
# Run integration tests
pytest test/integration/ -vPre-commit hooks run automatically before EVERY commit:
# Install pre-commit
pre-commit install
# Run manually
pre-commit run --all-filesUse Conventional Commits format:
git commit -m "type: description"
# Types:
# feat: New feature
# fix: Bug fix
# docs: Documentation
# style: Formatting
# refactor: Code restructuring
# test: Tests
# chore: MaintenanceExamples:
git commit -m "feat: Add Optuna hyperparameter optimization"
git commit -m "fix: Resolve database connection timeout"
git commit -m "docs: Update README with new CLI commands"
git commit -m "test: Add integration tests for portfolio optimizer"git push origin your-branch-nameThen open a Pull Request on GitHub with:
- Clear title (use conventional commit format)
- Description of changes
- Link to related issues
- Screenshots (for UI changes)
All PRs are reviewed by maintainers. Expect:
- Automated checks (tests, linting, security scan)
- Code review by maintainers
- Possible requested changes
.envfiles or API keys- Generated data (
results/,*.db,*.log) - Closed-source assets (
models/local/,prompts/local/) - JSON strategy files in root directory
- Private credentials or tokens
- Write tests for new features
- Update documentation for user-visible changes
- Run
pre-commit run --all-filesbefore pushing - Keep commit messages in English
- Follow conventional commit format
Predix/
├── rdagent/ # Core framework (open source)
│ ├── app/ # CLI and scenario apps
│ ├── components/ # Reusable agent components
│ └── scenarios/ # Domain-specific scenarios
├── test/ # Test suite
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── prompts/ # LLM prompts
├── models/ # ML models (standard only)
├── constraints/ # Python version constraints
└── requirements/ # Dependency files
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: See
docs/folder
By contributing, you agree that your contributions will be licensed under the MIT License.