Skip to content

Latest commit

 

History

History
140 lines (106 loc) · 3.19 KB

File metadata and controls

140 lines (106 loc) · 3.19 KB

Contributing to SynthoraAI Realtime Stream Processor

Thank you for your interest in contributing! This document provides guidelines for contributing to the project.

Development Setup

  1. Prerequisites

    • Go 1.21 or later
    • Docker and Docker Compose
    • MongoDB 6.0+
    • Redis 7.0+
    • Git
  2. Clone the repository

    git clone https://github.com/SynthoraAI-AI-News-Content-Curator/Realtime-Stream-Processor.git
    cd Realtime-Stream-Processor
  3. Install dependencies

    make install
  4. Set up environment

    cp .env.example .env
    # Edit .env with your configuration
  5. Start development environment

    make dev

Code Style

  • Follow Effective Go guidelines
  • Use gofmt for formatting
  • Run make lint before committing
  • Write meaningful commit messages

Testing

  • Write tests for all new features
  • Ensure all tests pass: make test
  • Add integration tests where appropriate
  • Maintain test coverage above 80%

Pull Request Process

  1. Create a feature branch

    git checkout -b feature/amazing-feature
  2. Make your changes

    • Write clean, documented code
    • Add tests for new functionality
    • Update documentation as needed
  3. Run checks

    make lint
    make test
    make build
  4. Commit your changes

    git commit -m "feat: add amazing feature"

    We follow Conventional Commits:

    • feat: New features
    • fix: Bug fixes
    • docs: Documentation changes
    • test: Test additions/changes
    • refactor: Code refactoring
    • perf: Performance improvements
    • chore: Maintenance tasks
  5. Push and create PR

    git push origin feature/amazing-feature
  6. PR Requirements

    • Clear description of changes
    • Reference related issues
    • Pass all CI checks
    • Get at least one approval
    • Keep PRs focused and reasonably sized

Code Review

  • Reviews typically happen within 2-3 business days
  • Address all feedback promptly
  • Be respectful and constructive
  • Ask questions if feedback is unclear

Reporting Issues

When reporting issues, please include:

  1. Description: Clear description of the issue
  2. Steps to Reproduce: Detailed steps to reproduce
  3. Expected Behavior: What should happen
  4. Actual Behavior: What actually happens
  5. Environment: OS, Go version, etc.
  6. Logs: Relevant error logs or stack traces

Feature Requests

We welcome feature requests! Please:

  1. Check if the feature already exists
  2. Provide a clear use case
  3. Explain the expected benefit
  4. Be open to discussion and alternatives

Community

  • Be respectful and inclusive
  • Follow our Code of Conduct
  • Help others in discussions
  • Share knowledge and learn together

License

By contributing, you agree that your contributions will be licensed under the MIT License.

Questions?

Feel free to reach out:

Thank you for contributing to SynthoraAI! 🚀