Thank you for your interest in contributing to Nano PDF! This document provides guidelines for contributing to the project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/Nano-PDF.git cd Nano-PDF - Install dependencies:
pip install -e . brew install poppler tesseract # macOS
- Set up your API key:
export GEMINI_API_KEY="your_key_here"
-
Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name
-
Make your changes following the code style guidelines below
-
Test your changes thoroughly:
- Test with various PDF files
- Test error cases
- Verify system dependency checks work
-
Commit your changes with clear, descriptive commit messages:
git commit -m "Add: Brief description of what you added"
- Follow PEP 8 style guidelines
- Use type hints where appropriate
- Add docstrings to new functions
- Keep functions focused and simple
- Comment complex logic
- Update documentation if you've added new features
- Ensure your code works on your local machine
- Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request on GitHub with:
- Clear description of changes
- Why the change is needed
- Any potential issues or limitations
Found a bug? Please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Your environment (OS, Python version, etc.)
- Sample PDF if relevant (and not confidential)
Have an idea? Open an issue describing:
- The feature and why it's useful
- How it might work
- Any alternatives you've considered
We welcome:
- Bug fixes
- New features
- Performance improvements
- Documentation improvements
- Test coverage improvements
Help improve:
- README clarity
- Code comments
- Examples and tutorials
- Troubleshooting guides
Looking for ideas? Here are some areas that need work:
- Testing: Add unit tests and integration tests
- Error handling: Improve error messages and recovery
- Performance: Optimize PDF processing and API usage
- Features:
- Batch processing improvements
- Configuration file support
- More output formats
- Better progress tracking
- Documentation: More examples, video tutorials, blog posts
- Platform support: Test and improve Windows compatibility
All submissions require review. We use GitHub pull requests for this purpose. Reviewers will check:
- Code quality and style
- Functionality and correctness
- Documentation updates
- Potential edge cases
Feel free to:
- Open an issue for questions
- Start a discussion on GitHub
- Contact the maintainers
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for helping make Nano PDF better!