Thank you for your interest in contributing to NanoDNS! This document will guide you through the contribution process.
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/nanodns.git
cd nanodns
- Add the upstream repository:
git remote add upstream https://github.com/mguptahub/nanodns.git
- Create a new branch for your changes:
git checkout -b feature/your-feature-name
- Sync your fork with upstream:
git fetch upstream
git rebase upstream/main
- Test your changes locally:
# Run tests
go test ./...
# Build and test the binary
go build -o nanodns cmd/server/main.go
- Ensure your code follows the project's style:
- Follow standard Go coding conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions small and focused
- Update documentation if needed:
- Update README.md if you've added new features
- Add/update code comments
- Update examples if relevant
- Push your changes to your fork:
git push origin feature/your-feature-name
-
Go to GitHub and create a Pull Request
-
In your PR description:
- Clearly describe the changes
- Link any related issues
- Include examples if applicable
- Mention breaking changes if any
-
Wait for PR review
- Maintainers will review your code
- Address any requested changes
- Keep the PR updated with upstream changes
-
Wait for approval
- At least one maintainer must approve
- All discussions must be resolved
- All checks must pass
-
Wait for release
- Once merged, your changes will be included in the next release
- Releases are created by maintainers
- Your name will be included in the changelog
Releases are managed by maintainers following this process:
- Code is merged into main
- Maintainers prepare release
- New version tag is created
- GitHub Actions automatically:
- Run tests
- Build binaries
- Create GitHub release
- Push Docker images
- Update documentation
Feel free to:
- Join our discussions on GitHub
- Ask questions in issues
- Reach out to maintainers
Thank you for contributing!