Skip to content

Latest commit

 

History

History
175 lines (131 loc) · 4.63 KB

File metadata and controls

175 lines (131 loc) · 4.63 KB

Contributing to Blockbusterr

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

Ways to Contribute

  • Report bugs - Found something broken? Let us know!
  • Suggest features - Have an idea? We'd love to hear it!
  • Submit pull requests - Code contributions are always welcome
  • Improve documentation - Help others understand Blockbusterr better
  • Share your config - Show others how you're using Blockbusterr

Getting Started

Prerequisites

  • Go 1.21 or higher
  • Docker (optional, for testing)
  • Git

Development Setup

  1. Fork and clone the repository

    git clone https://github.com/YOUR_USERNAME/blockbusterr.git
    cd blockbusterr
  2. Install dependencies

    make install
  3. Copy config template

    cp config/config.example.yaml config/config.yaml
  4. Build and run

    make build
    make dev

    The application will be available at http://localhost:9090

Development Commands

make help           # Show all available commands
make build          # Build the application binary
make dev            # Run the application in development mode
make test           # Run all tests
make test-verbose   # Run tests with verbose output
make lint           # Run linter
make fmt            # Format code
make check          # Run fmt, vet, and lint

Pull Request Process

  1. Create a feature branch

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

    • Write clear, concise commit messages
    • Follow existing code style and conventions
    • Add tests for new functionality
    • Update documentation if needed
  3. Test your changes

    make test
    make check
  4. Commit your changes

    git add .
    git commit -m "feat: add awesome new feature"
  5. Push to your fork

    git push origin feature/your-feature-name
  6. Open a Pull Request

    • Provide a clear description of the changes
    • Reference any related issues
    • Include screenshots for UI changes
    • Ensure all checks pass

Reporting Bugs

When reporting bugs, please include:

  • Environment details (OS, Docker version, Go version)
  • Steps to reproduce the issue
  • Expected behavior vs actual behavior
  • Logs (if applicable)
  • Configuration (sanitize sensitive data!)

Use the Bug Report template when creating an issue.

Feature Requests

We love new ideas! When requesting features:

  • Check existing issues to avoid duplicates
  • Describe the problem you're trying to solve
  • Explain your proposed solution
  • Consider alternatives you've thought about
  • Describe any additional context that might be helpful

Use the Feature Request template when creating an issue.

Project Structure

blockbusterr/
├── cmd/                    # Application entrypoints
│   └── app/                # Main application
├── internal/               # Internal application code
│   ├── aggregator/         # Data aggregation logic
│   ├── database/           # Database interactions
│   ├── filters/            # Content filtering
│   ├── integrations/       # External service integrations
│   ├── rest/               # REST API handlers
│   ├── scoring/            # Content scoring algorithms
│   └── services/           # Background jobs and services
├── config/                 # Configuration files
├── web/templates/          # HTML templates
└── docs/                   # Documentation site

Testing

  • Write tests for new functionality
  • Ensure existing tests pass: make test
  • Run tests with coverage: make test-coverage
  • Test edge cases and error conditions

Documentation

If your PR adds or changes functionality:

  • Update the relevant documentation in /docs/src/content/docs/
  • Update code comments for public APIs
  • Update the README if needed
  • Add examples where appropriate

Code of Conduct

  • Be respectful and inclusive
  • Welcome newcomers
  • Accept constructive criticism
  • Focus on what's best for the community
  • Show empathy towards others

Questions?

License

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


Thank you for contributing to Blockbusterr!