Skip to content

Contributing

Damir Mukimov edited this page May 31, 2026 · 7 revisions

Contributing

Thank you for your interest in contributing to ZoneKit!

Prerequisites

  • Go 1.22+ - Download
  • Git - Download
  • GitHub Account - For forking and pull requests

Development Setup

# Fork and clone
git clone https://github.com/YOUR_USERNAME/zonekit.git
cd zonekit

# Install dependencies
go mod download

# Setup development tools
make dev-setup

# Verify setup
make test
make lint

Workflow

  1. Create a branch:

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

    • Write code
    • Add tests
    • Update documentation
  3. Test:

    make test
    make lint
  4. Commit using Conventional Commits:

    git commit -m "feat: add your feature"
  5. Push and create PR:

    git push origin feature/your-feature-name

Code Standards

Style

  • Follow Effective Go guidelines
  • Use gofmt for formatting
  • Run golangci-lint before committing

Testing

  • Write tests for new features
  • Maintain or improve test coverage
  • Use testify/suite for test organization

Commit Types

Type Description Example
feat: New feature feat: add SRV record support
fix: Bug fix fix: handle API timeouts
docs: Documentation docs: update installation guide
style: Code style style: format with gofmt
refactor: Refactoring refactor: simplify config loading
test: Tests test: add DNS service tests
chore: Maintenance chore: update dependencies

Contribution Areas

Features:

  • New DNS record types
  • Additional plugins
  • Bulk operation improvements
  • Provider integrations

Documentation:

  • Wiki improvements
  • Code examples
  • Tutorials

Testing:

  • Additional test coverage
  • Integration tests
  • Performance tests

Bug Fixes:

  • Check Issues
  • Look for "good first issue" labels

Pull Request Process

  1. Update documentation if needed
  2. Add tests for new features
  3. Ensure all tests pass
  4. Run linter and fix issues
  5. Create PR with clear description

PR Checklist

  • Code follows project style
  • Tests added/updated
  • Documentation updated
  • Linter passes
  • All tests pass
  • No breaking changes (or documented)

Plugin Development

See:

Questions?

  • Open an issue for discussion
  • Check existing issues and PRs
  • Review the codebase

License

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

Thank you for contributing!

Clone this wiki locally