CONTRIBUTING
Contributing to Python Learning Curriculum
Thank you for your interest in contributing! This project aims to provide a comprehensive Python learning resource for developers at all levels.
๐ค How to Contribute
Reporting Issues
- Use the GitHub issue tracker
- Search existing issues before creating a new one
- Include Python version, OS, and steps to reproduce
Suggesting Improvements
- Open an issue describing your suggestion
- Explain why it would benefit learners
- Include examples if possible
Submitting Changes
- Fork the repository
- Create a branch for your feature:
git checkout -b feature/improve-oop-examples - Make your changes following our guidelines below
- Test your changes:
make test - Commit with clear messages:
git commit -m "feat: add decorator example in module 10" - Push to your fork:
git push origin feature/improve-oop-examples - Open a Pull Request
๐ Guidelines
Code Style
- Follow PEP 8 conventions
- Use type hints for function signatures
- Keep examples simple and focused on one concept
- Add comments explaining the "why", not just the "what"
Exercise Guidelines
- Include clear instructions in comments
- Provide hints without giving away the solution
- Solutions should be commented out or in separate files
- Test all exercises work correctly
Documentation
- Keep README files clear and concise
- Use markdown formatting consistently
- Include practical, runnable examples
- Update table of contents if adding new modules
Commit Messages
Follow conventional commits:
feat: add new feature
fix: fix a bug
docs: update documentation
test: add or update tests
refactor: code refactoring
chore: maintenance tasks
๐งช Testing
Run the test suite before submitting:
# Run all tests
make test
# Run linting
make lint
# Format code
make format
๐ Pull Request Checklist
- Code follows project style guidelines
- All tests pass
- New code has appropriate comments
- Documentation updated if needed
- Commit messages are clear and descriptive
๐ฏ Areas for Contribution
- New Examples: Add practical examples to existing modules
- Exercises: Create new practice problems
- Documentation: Improve explanations and clarity
- Bug Fixes: Fix errors in examples or exercises
- Translations: Help translate content to other languages
๐ Code of Conduct
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for learners
- Welcome newcomers and help them contribute
๐ฌ Questions?
Feel free to open an issue for any questions about contributing.
Thank you for helping make Python learning accessible to everyone! ๐