-
-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Damir Mukimov edited this page Dec 15, 2025
·
7 revisions
Thank you for your interest in contributing to ZoneKit!
| Requirement | Version | Notes |
|---|---|---|
| Go | 1.22+ | Download |
| Git | Latest | Download |
| GitHub Account | - | For forking and PRs |
Step-by-step setup instructions
# 1. Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/zonekit.git
cd zonekit
# 2. Install dependencies
go mod download
# 3. Install development tools
make dev-setup
# 4. Verify setup
make test
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:
| Type | Description | Example |
|---|---|---|
feat: |
New feature | feat: add support for SRV records |
fix: |
Bug fix | fix: handle API timeout errors |
docs: |
Documentation | docs: update installation instructions |
style: |
Code style | style: format code with gofmt |
refactor: |
Refactoring | refactor: simplify config loading |
test: |
Tests | test: add tests for DNS service |
chore: |
Maintenance | chore: update dependencies |
- 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
- All tests pass
- 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! 🎉