Contributing¶
Help improve sigc! We welcome contributions.
Ways to Contribute¶
| Contribution | Description |
|---|---|
| Bug Reports | Report issues you find |
| Feature Requests | Suggest improvements |
| Code | Submit pull requests |
| Documentation | Improve docs |
| Strategies | Share example strategies |
Getting Started¶
1. Fork the Repository¶
2. Set Up Development Environment¶
Bash
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build
cargo build
# Run tests
cargo test
See Development Setup for details.
3. Create a Branch¶
4. Make Changes¶
Follow our Code Style guide.
5. Test¶
See Testing for details.
6. Submit PR¶
Push and open a pull request.
Reporting Bugs¶
Before Reporting¶
- Check existing issues
- Try latest version
- Reproduce the bug
Bug Report Template¶
Markdown
## Description
Brief description of the bug.
## Steps to Reproduce
1. Step one
2. Step two
3. Step three
## Expected Behavior
What should happen.
## Actual Behavior
What actually happens.
## Environment
- sigc version:
- OS:
- Rust version:
## Additional Context
Any other information.
Feature Requests¶
Request Template¶
Markdown
## Problem
What problem does this solve?
## Proposed Solution
How would this feature work?
## Alternatives Considered
Other approaches you considered.
## Additional Context
Examples, mockups, etc.
Code Contributions¶
What We're Looking For¶
- Bug fixes
- Performance improvements
- New operators
- Documentation improvements
- Test coverage
PR Requirements¶
- Tests pass
- Code is formatted (
cargo fmt) - No clippy warnings
- Documentation updated
- Commit messages are clear
Commit Messages¶
Examples:
Text Only
feat(operators): add bollinger band operator
fix(parser): handle empty signal blocks
docs(tutorial): add momentum strategy example
Documentation¶
Improving Docs¶
- Edit files in
documentation/docs/ - Preview with
mkdocs serve - Submit PR
Writing Guide¶
- Use clear, simple language
- Include code examples
- Add diagrams where helpful
- Link to related topics
See Documentation Guide.
Strategy Examples¶
Share your strategies:
- Add to
strategies/directory - Include comments explaining the approach
- Add documentation in
docs/strategies/
Code of Conduct¶
We follow the Rust Code of Conduct.
Summary¶
- Be welcoming and inclusive
- Be respectful and constructive
- Be collaborative
Getting Help¶
Documentation Index¶
- Development Setup - Setting up your environment
- Code Style - Coding standards
- Testing - Running tests
- Documentation - Writing docs
Recognition¶
Contributors are recognized in:
- Release notes
- Contributors file
- Documentation credits
Thank you for contributing!