mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-07-27 15:37:44 +00:00
cbe1c52e00
Rename all source files, scripts, tests, documentation, and configuration from Predix/predix to NexQuant/nexquant across the entire codebase.
167 lines
4.2 KiB
Markdown
167 lines
4.2 KiB
Markdown
# Contributing to NexQuant
|
|
|
|
We welcome contributions and suggestions to improve NexQuant. 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.
|
|
|
|
## Getting Started
|
|
|
|
To get started, you can explore the issues list or search for `TODO:` comments in the codebase by running:
|
|
```sh
|
|
grep -r "TODO:"
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
### 1. Fork and Clone
|
|
|
|
```bash
|
|
# Fork the repository on GitHub, then clone your fork
|
|
git clone https://github.com/YOUR-USERNAME/NexQuant.git
|
|
cd NexQuant
|
|
|
|
# Add upstream remote
|
|
git remote add upstream https://github.com/TPTBusiness/NexQuant.git
|
|
```
|
|
|
|
### 2. Create a Branch
|
|
|
|
```bash
|
|
# 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-cleanup
|
|
```
|
|
|
|
**Branch naming convention:**
|
|
- `feat/` - New features
|
|
- `fix/` - Bug fixes
|
|
- `docs/` - Documentation changes
|
|
- `refactor/` - Code refactoring
|
|
- `test/` - Test additions/fixes
|
|
- `chore/` - Maintenance tasks
|
|
|
|
### 3. Make Your Changes
|
|
|
|
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
|
|
|
|
### 4. Write Tests
|
|
|
|
**MANDATORY:** All new features MUST have tests with >80% coverage.
|
|
|
|
```bash
|
|
# Run tests
|
|
pytest test/ -v
|
|
|
|
# Run with coverage
|
|
pytest --cov=rdagent --cov-report=html
|
|
|
|
# Run integration tests
|
|
pytest test/integration/ -v
|
|
```
|
|
|
|
### 5. Run Pre-commit Hooks
|
|
|
|
Pre-commit hooks run automatically before EVERY commit:
|
|
|
|
```bash
|
|
# Install pre-commit
|
|
pre-commit install
|
|
|
|
# Run manually
|
|
pre-commit run --all-files
|
|
```
|
|
|
|
### 6. Commit Your Changes
|
|
|
|
Use [Conventional Commits](https://www.conventionalcommits.org/) format:
|
|
|
|
```bash
|
|
git commit -m "type: description"
|
|
|
|
# Types:
|
|
# feat: New feature
|
|
# fix: Bug fix
|
|
# docs: Documentation
|
|
# style: Formatting
|
|
# refactor: Code restructuring
|
|
# test: Tests
|
|
# chore: Maintenance
|
|
```
|
|
|
|
**Examples:**
|
|
```bash
|
|
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"
|
|
```
|
|
|
|
### 7. Push and Create a Pull Request
|
|
|
|
```bash
|
|
git push origin your-branch-name
|
|
```
|
|
|
|
Then open a Pull Request on GitHub with:
|
|
- Clear title (use conventional commit format)
|
|
- Description of changes
|
|
- Link to related issues
|
|
- Screenshots (for UI changes)
|
|
|
|
## Code Review Process
|
|
|
|
All PRs are reviewed by maintainers. Expect:
|
|
- Automated checks (tests, linting, security scan)
|
|
- Code review by maintainers
|
|
- Possible requested changes
|
|
|
|
## Important Rules
|
|
|
|
### 🚫 NEVER COMMIT
|
|
|
|
- `.env` files 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
|
|
|
|
### ✅ ALWAYS DO
|
|
|
|
- Write tests for new features
|
|
- Update documentation for user-visible changes
|
|
- Run `pre-commit run --all-files` before pushing
|
|
- Keep commit messages in English
|
|
- Follow conventional commit format
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
NexQuant/
|
|
├── 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
|
|
```
|
|
|
|
## Need Help?
|
|
|
|
- **Issues**: [GitHub Issues](https://github.com/TPTBusiness/NexQuant/issues)
|
|
- **Discussions**: [GitHub Discussions](https://github.com/TPTBusiness/NexQuant/discussions)
|
|
- **Documentation**: See `docs/` folder
|
|
|
|
## License
|
|
|
|
By contributing, you agree that your contributions will be licensed under the MIT License.
|