Contributing to Birdwatch
Hi there! 👋 As mentioned on the main page, Birdwatch is primarily a solo demo project I built to play around with locally tracking my own bird sightings and to serve as an example of Python CLI development with documentation.
Quick Links
Ways to Contribute
Using Birdwatch
The best way to contribute is honestly just to use Birdwatch! If you find it helpful for logging your own bird sightings, that's awesome. And if you're using it as inspiration or reference for your own projects, even better!
Reporting Issues
If you run into any problems, feel free to open an issue on GitHub. When reporting issues:
- Check if the issue already exists
- Include your Python version (
python --version
) - Describe what you were trying to do
- Include any error messages
- If possible, include steps to reproduce the issue
Code Contributions
While this is mainly a personal project, I'm open to pull requests that:
- Fix bugs
- Improve documentation
- Add useful error messages
- Enhance code comments
- Fix typos
If you're thinking about adding new features, please open an issue first to discuss!
Development Setup
-
Fork and clone the repository:
-
Create a virtual environment:
-
Install dependencies:
To run the documentation site locally:
Code Style
- Follow PEP 8 guidelines.
- Use meaningful variable names.
- Add docstrings to functions.
- Include comments for complex logic.
- Keep functions focused and small.
Documentation
If you're updating documentation:
- Keep the friendly, conversational tone.
- Include practical examples.
- Update both the relevant .md file and docstrings if applicable.
- Check that all links work.
- Preview your changes locally, if possible.
Commit Messages
Write clear commit messages that explain:
- What changes you made
- Why you made them
- Any special considerations
Example:
Add error message for invalid species names
- Improves user experience by providing clear feedback
- Helps users catch typos in species names
- Includes suggestion for common misspellings
A Note on Scope
Remember, Birdwatch is intentionally simple! It's meant to be:
- A personal bird sighting logger
- An example of Python CLI development
- A documentation reference
If you're a dedicated birder who wants more comprehensive features, like adding media or tracking sightings in detail over the long term, you'll probably be better served by eBird, iNaturalist, and similarly full-featured birding apps.
Questions?
Feel free to open an issue if you have any questions. Happy birding! 🦆🦜🦉🦅🐦⬛