Thank you for your interest in contributing to SyncerD! This document provides guidelines and instructions for contributing.
This project adheres to a Code of Conduct that all contributors are expected to follow. Please be respectful and constructive in all interactions.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- A clear, descriptive title
- Steps to reproduce the bug
- Expected vs actual behavior
- Environment details (OS, Go version, etc.)
- Relevant logs or error messages
- Check if the feature has already been suggested
- Open an issue with:
- A clear description of the feature
- Use cases and benefits
- Potential implementation approach (if you have ideas)
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes:
- Follow Go coding standards
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass
- Commit your changes: Use clear, descriptive commit messages
- Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request:
- Provide a clear description of changes
- Reference any related issues
- Ensure CI checks pass
-
Clone your fork:
git clone https://github.com/your-username/syncerd.git cd syncerd -
Install dependencies:
go mod download
-
Build the project:
make build
-
Run tests:
make test
- Follow Go conventions and best practices
- Use
gofmtto format code - Add comments for exported functions and types
- Keep functions focused and small
- Handle errors explicitly (don't ignore them)
- Write tests for new functionality
- Write unit tests for new features
- Ensure all existing tests pass
- Test with different registry configurations
- Test error handling paths
- Update README.md for user-facing changes
- Add code comments for complex logic
- Update example configurations if needed
- Keep CHANGELOG.md updated (if applicable)
Feel free to open an issue for any questions or clarifications. We're happy to help!