Skip to content

Contributing

Thank you for considering contributing to cs-routeros-bouncer!

  • Go 1.24+
  • A MikroTik router (for functional testing — optional)
  • Git
  1. Fork and clone the repository

    Terminal window
    git clone https://github.com/YOUR-USERNAME/cs-routeros-bouncer.git
    cd cs-routeros-bouncer
  2. Install dependencies and verify the build

    Terminal window
    go mod download
    go build ./...
    go test ./...
  1. Create a branch from main

    Terminal window
    git checkout -b feat/my-feature
  2. Make your changes — keep commits focused and atomic

  3. Write tests for new functionality

  4. Run the test suite and linter

    Terminal window
    go test ./...
    golangci-lint run
  5. Commit using conventional commit messages

    feat: add support for new feature
    fix: correct handling of edge case
    docs: update configuration reference
  6. Push and create a Pull Request

Follow Conventional Commits:

PrefixUsage
feat:New feature
fix:Bug fix
docs:Documentation changes
test:Adding or modifying tests
refactor:Code change that neither fixes a bug nor adds a feature
perf:Performance improvement
chore:Build process or auxiliary tool changes
ci:CI/CD changes
  • Follow standard Go conventions (gofmt, go vet)
  • Use meaningful variable and function names
  • Add comments for exported functions and complex logic
  • Keep functions focused — one function, one responsibility
  • Handle errors explicitly — no silent failures
  • Keep PRs focused on a single change
  • Include tests for new functionality
  • Update documentation if behavior changes
  • Ensure all CI checks pass
  • Provide a clear description of what and why

When reporting bugs, please include:

  1. Bouncer version (cs-routeros-bouncer version)
  2. MikroTik RouterOS version
  3. Configuration (with credentials redacted)
  4. Relevant log output (LOG_LEVEL=debug)
  5. Steps to reproduce