-
-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Damir Mukimov edited this page Nov 22, 2025
·
7 revisions
Thank you for your interest in contributing to Namecheap DNS Manager!
- Go 1.22 or later
- Git
- A GitHub account
# 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-
Create a branch:
git checkout -b feature/your-feature-name
-
Make your changes:
- Write code
- Add tests
- Update documentation
-
Test your changes:
make test make lint -
Commit your changes:
git commit -m "feat: add your feature" -
Push and create a PR:
git push origin feature/your-feature-name
- Follow Effective Go guidelines
- Use
gofmtfor formatting - Run
golangci-lintbefore committing
- Write tests for new features
- Maintain or improve test coverage
- Use
testify/suitefor test organization
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
- New DNS record types
- Additional plugins
- Bulk operation improvements
- Configuration enhancements
- Wiki improvements
- Code examples
- Tutorials
- Translation
- Additional test coverage
- Integration tests
- Performance tests
- Check Issues
- Look for "good first issue" labels
See Plugins wiki page and:
- Update documentation if needed
- Add tests for new features
- Ensure all tests pass
- Run linter and fix any issues
- Update CHANGELOG.md (if applicable)
- Create PR with clear description
- Code follows project style
- Tests added/updated
- Documentation updated
- Linter passes
- No breaking changes (or documented)
- Be respectful and constructive
- Address review comments promptly
- Ask questions if something is unclear
- Open an issue for discussion
- Check existing issues and PRs
- Review the codebase
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT License).
Thank you for contributing! 🎉