Thank you for your interest in contributing to Code Chunker! This document provides guidelines and information for contributing to this project.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Pull Request Process
- Testing Guidelines
- Style Guidelines
By participating in this project, you agree to maintain a respectful and inclusive environment. We expect all contributors to:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Fork the repository
- Clone your fork locally
- Create a new branch for your feature or bugfix
- Make your changes following our guidelines
- Push to your fork
- Submit a Pull Request
There are several ways to contribute to Code Chunker:
- Bug Reports: Submit detailed bug reports using the GitHub issue tracker
- Feature Requests: Propose new features through GitHub issues
- Code Contributions: Submit Pull Requests with improvements or new features
- Documentation: Help improve or translate documentation
- Testing: Add or improve test coverage
- Update the README.md with details of changes if applicable
- Add appropriate unit tests for any new functionality
- Ensure all tests pass by running:
python -m unittest discover
- Update documentation as needed
- Ensure your code follows our style guidelines
- Create a Pull Request with a clear title and description
- Write unit tests for all new functionality
- Maintain or improve code coverage
- Follow the existing test structure in
test_code_chunker.py - Test multiple file types and edge cases
- Include both positive and negative test cases
- Test basic functionality with simple code files
- Test edge cases (empty files, large files)
- Test different programming languages (Python, JavaScript, CSS, etc.)
- Test with various token limits
- Test error handling scenarios
- Follow PEP 8 guidelines
- Use type hints for function parameters and return values
- Keep functions focused and single-purpose
- Write clear docstrings for classes and functions
- Use meaningful variable and function names
- Keep related functionality together
- Maintain clear separation of concerns
- Follow the existing project structure
- Use appropriate design patterns
When adding support for new programming languages:
- Update the
language_extension_mapinCodeParser.py - Add appropriate node types in
_get_node_types_of_interest - Include test files for the new language
- Update documentation accordingly
- Keep README.md up to date
- Document all new features
- Include docstrings for new functions and classes
- Add comments for complex logic
- Update API documentation if applicable
Feel free to:
- Open an issue for general questions
- Join our discussions in GitHub Discussions
- Reach out to maintainers for guidance
By contributing to Code Chunker, you agree that your contributions will be licensed under the same license as the main project.
Thank you for contributing to Code Chunker!