Skip to content

Latest commit

 

History

History
88 lines (63 loc) · 2.04 KB

CONTRIBUTING.md

File metadata and controls

88 lines (63 loc) · 2.04 KB

Contributing Guide

Thank you for your interest in contributing to this project! Please read this guide before making contributions.

How to Contribute

  1. Fork this repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Create a Pull Request

Development Process

  1. Create an issue before adding a new feature or fixing a bug
  2. Discuss the changes in the issue
  3. Write your code
  4. Add tests
  5. Update documentation
  6. Create Pull Request

Code Standards

  • 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

Pull Request Process

  1. PR title and description should be meaningful
  2. Add a description explaining the changes
  3. Add necessary tests
  4. Respond to comments in code review
  5. Make required corrections

Test Requirements

  • Add tests for each new feature
  • Update existing tests
  • Don't decrease test coverage
  • Add benchmark tests (for performance changes)

Documentation

  • Update README.md
  • Update in-code documentation
  • Add usage examples
  • Document API changes

Performance

  • Support performance improvements with benchmarks
  • Specify complexity in Big O notation
  • Optimize memory usage
  • Avoid unnecessary allocations

Data Structures

When adding a new data structure:

  1. Define interface
  2. Implement basic operations
  3. Add tests
  4. Add benchmarks
  5. Add usage example
  6. Add documentation

Algorithms

When adding a new algorithm:

  1. Specify algorithm complexity
  2. Add test cases
  3. Handle edge cases
  4. Make performance comparisons
  5. Add usage example

License

By contributing, you agree that your contributions will be licensed under the MIT License.

Contact

For questions, you can open an issue or contact the maintainers: