Skip to content

Contributing

Damir Mukimov edited this page Nov 22, 2025 · 7 revisions

Contributing

Thank you for your interest in contributing to Namecheap DNS Manager!

Getting Started

Prerequisites

  • Go 1.22 or later
  • Git
  • A GitHub account

Development Setup

# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/namecheap.git
cd namecheap

# Install dependencies
go mod download

# Install development tools
make dev-setup

# Run tests
make test

# Run linter
make lint

Development Workflow

  1. Create a branch:

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

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

    make test
    make lint
  4. Commit your changes:

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

    git push origin feature/your-feature-name

Code Standards

Go Code 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 Messages

Follow Conventional Commits:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting)
  • refactor: Code refactoring
  • test: Test changes
  • chore: Maintenance tasks

Example:

feat: add support for SRV records
fix: handle API timeout errors
docs: update installation instructions

Areas for Contribution

Features

  • New DNS record types
  • Additional plugins
  • Bulk operation improvements
  • Configuration enhancements

Documentation

  • Wiki improvements
  • Code examples
  • Tutorials
  • Translation

Testing

  • Additional test coverage
  • Integration tests
  • Performance tests

Bug Fixes

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

Plugin Development

See Plugins wiki page and:

Pull Request Process

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

PR Checklist

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

Code Review

  • Be respectful and constructive
  • Address review comments promptly
  • Ask questions if something is unclear

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 same license as the project (MIT License).

Thank you for contributing! 🎉

Clone this wiki locally