Skip to main content

Prerequisites

Before you begin, ensure you have the following installed on your system:

Install Go

Install Go version 1.23.4 or higher
brew install go
Verify installation:
go version

Install Git

Required for version control and building from source
brew install git

Install Make

Required for running build commands
# Included with Xcode Command Line Tools
xcode-select --install
For other package managers or installation methods, please refer to the official documentation:

Building from Source

  1. Clone Repository
    git clone https://github.com/autobrr/mkbrr.git
    
  2. Change Directory
    cd mkbrr
    
  3. Build Binary
    make build
    
The binary will be created in the build/ directory with version information from git tags

Development Commands

Build Commands

make build          # Build the binary
make clean          # Remove build artifacts
make all            # Clean, build, and install the binary
make install        # Install the binary in GOPATH

Testing Commands

make test             # Run tests (excluding large tests)
make test-race        # Run all tests with race detector
make test-race-short  # Run quick tests with race detector
make test-large       # Run large tests (resource intensive)
make test-coverage    # Run tests with coverage report

Quality Tools

make lint             # Run golangci-lint
Run make help to see all available commands and their descriptions

Contributing

Thanks for taking interest in contributing! We welcome anyone who wants to contribute. If you have an idea for a bigger feature or a change, please discuss it first by opening an issue or joining our Discord.You can contribute to either:

Ways to Contribute

  • New features and improvements
  • Bug fixes and reports
  • Documentation updates
  • Community support

Getting Started

  1. Fork the mkbrr repository
  2. Clone your fork: git clone github.com/YOURNAME/mkbrr
  3. Create a feature branch: git checkout -b feat/your-feature
  4. Make your changes following our guidelines

Submit Changes

  • Reference related issues
  • Mark as Draft if work in progress
  • Keep changes focused and atomic
  • Be responsive to review feedback

Commit Guidelines

We follow Conventional Commit Guidelines:
  • feat(core): add new torrent validation
  • fix(filter): correct pattern matching
  • docs(api): update endpoint documentation
No need for force pushing or rebasing - we squash commits on merge.

Code Style

  • Try to follow Go best practices and idioms
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Keep functions focused and concise
  • Run go fmt or gofumpt before committing

License

mkbrr is licensed under the GNU General Public License v2.0. See the LICENSE file for full details.