First off, thank you for considering contributing to WeatherBot! It's people like you that make WeatherBot such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Include any error messages you received
- Note your Python version and operating system
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the proposed functionality
- Explain why this enhancement would be useful
- List any similar features in other IRC bots if you know of any
- Fork the repo and create your branch from
main
- If you've added code that should be tested, add tests
- Ensure your code follows the existing code style
- Update the documentation if needed
- Issue the pull request
- Fork and clone the repository
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Create your configuration:
cp config.example.py config.py
- Follow PEP 8
- Use meaningful variable and function names
- Include docstrings for all functions and classes
- Comment complex logic
- Keep functions focused and modular
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests after the first line
Example:
Add weather alerts feature
- Implement severe weather warnings
- Add configuration options for alert thresholds
- Update documentation with new features
Fixes #123
Currently, WeatherBot uses manual testing. When adding new features:
- Test your changes with multiple IRC servers
- Verify error handling works as expected
- Test edge cases (e.g., cities with special characters)
- Ensure rate limiting works correctly
- Update the README.md if you change or add functionality
- Add comments to explain complex code
- Update configuration examples if you add new options
- Document any new commands in the help system
Feel free to open an issue with your question or reach out to the maintainers.