Skip to content

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

Bash
# Fork on GitHub, then clone
git clone https://github.com/YOUR_USERNAME/sigc.git
cd sigc

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

Bash
git checkout -b feature/your-feature-name

4. Make Changes

Follow our Code Style guide.

5. Test

Bash
cargo test
cargo clippy
cargo fmt --check

See Testing for details.

6. Submit PR

Push and open a pull request.

Reporting Bugs

Before Reporting

  1. Check existing issues
  2. Try latest version
  3. 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

Text Only
type(scope): description

Types: feat, fix, docs, style, refactor, test, chore

Examples:

Text Only
feat(operators): add bollinger band operator
fix(parser): handle empty signal blocks
docs(tutorial): add momentum strategy example

Documentation

Improving Docs

  1. Edit files in documentation/docs/
  2. Preview with mkdocs serve
  3. 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:

  1. Add to strategies/ directory
  2. Include comments explaining the approach
  3. 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

Recognition

Contributors are recognized in:

  • Release notes
  • Contributors file
  • Documentation credits

Thank you for contributing!