Thank you for your interest in contributing to this project! Please read this guide before making contributions.
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Create a Pull Request
- Create an issue before adding a new feature or fixing a bug
- Discuss the changes in the issue
- Write your code
- Add tests
- Update documentation
- Create Pull Request
- Use Go's official code format (
go fmt
) - Use linters (
golint
,golangci-lint
) - Test your code (
go test
) - Write meaningful commit messages
- Document your code
- Support performance improvements with benchmarks
- PR title and description should be meaningful
- Add a description explaining the changes
- Add necessary tests
- Respond to comments in code review
- Make required corrections
- Add tests for each new feature
- Update existing tests
- Don't decrease test coverage
- Add benchmark tests (for performance changes)
- Update README.md
- Update in-code documentation
- Add usage examples
- Document API changes
- Support performance improvements with benchmarks
- Specify complexity in Big O notation
- Optimize memory usage
- Avoid unnecessary allocations
When adding a new data structure:
- Define interface
- Implement basic operations
- Add tests
- Add benchmarks
- Add usage example
- Add documentation
When adding a new algorithm:
- Specify algorithm complexity
- Add test cases
- Handle edge cases
- Make performance comparisons
- Add usage example
By contributing, you agree that your contributions will be licensed under the MIT License.
For questions, you can open an issue or contact the maintainers:
- Mesut GENEZ - @mstgnz