OS Trading Engine
Contributing
How to Contribute

How to Contribute

Thank you for your interest in contributing to Nexgent! This guide will help you get started.

Ways to Contribute

Code Contributions

  • Bug fixes - Fix issues reported in GitHub Issues
  • Features - Implement features from the roadmap or propose new ones
  • Performance - Optimize existing code
  • Tests - Improve test coverage

Non-Code Contributions

  • Documentation - Improve docs, fix typos, add examples
  • Bug reports - Report issues with clear reproduction steps
  • Feature requests - Propose new features with use cases
  • Community support - Help others in discussions

Getting Started

1. Find an Issue

Browse GitHub Issues (opens in a new tab) for:

LabelDescription
good first issueGreat for newcomers
help wantedWe'd appreciate help
bugSomething isn't working
enhancementNew feature or improvement
documentationDocumentation improvements

2. Claim the Issue

Comment on the issue to let others know you're working on it:

I'd like to work on this issue. I'll have a PR ready within [timeframe].

3. Fork and Clone

# Fork on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/nexgent.git
cd nexgent
 
# Add upstream remote
git remote add upstream https://github.com/Nexgent-ai/nexgent-open-source-trading-engine.git

4. Create a Branch

# Sync with upstream
git fetch upstream
git checkout main
git merge upstream/main
 
# Create feature branch
git checkout -b feature/your-feature-name

5. Make Changes

Set up your development environment and make your changes.

6. Submit a Pull Request

See Pull Request Process for guidelines.


Contribution Guidelines

Before You Start

  1. Check existing issues - Someone may already be working on it
  2. Read the docs - Understand the architecture
  3. Small PRs - Break large changes into smaller, focused PRs
  4. Discuss first - For major changes, open an issue to discuss

Code Quality

  • Follow the Code Style Guide
  • Write tests for new features
  • Ensure all tests pass
  • Update documentation if needed

Commit Messages

Use conventional commit format:

type(scope): description

[optional body]

[optional footer]

Types:

  • feat - New feature
  • fix - Bug fix
  • docs - Documentation
  • style - Formatting (no code change)
  • refactor - Code restructuring
  • test - Adding tests
  • chore - Maintenance tasks

Examples:

feat(signals): add webhook signature verification
fix(positions): correct stop loss calculation for DCA
docs(api): add rate limiting documentation
test(agents): add unit tests for eligibility service

Code of Conduct

Be Respectful

  • Use welcoming and inclusive language
  • Be respectful of differing viewpoints
  • Accept constructive criticism gracefully
  • Focus on what's best for the community

Be Collaborative

  • Help others learn and grow
  • Give credit where it's due
  • Be patient with newcomers
  • Share knowledge openly

Be Professional

  • No harassment or discrimination
  • No trolling or personal attacks
  • Keep discussions on-topic
  • Report violations to maintainers

Communication

GitHub Issues

  • Bug reports - Use the bug report template
  • Feature requests - Use the feature request template
  • Questions - Use GitHub Discussions

GitHub Discussions

  • Ask questions
  • Share ideas
  • Get help with setup

Pull Requests

  • Reference related issues
  • Describe changes clearly
  • Respond to review feedback promptly

Recognition

Contributors are recognized in:

  • README - All contributors listed
  • Release notes - Credit for features/fixes
  • Contributors page - Linked from docs

Questions?