Thank you for your interest in contributing to AccessiWeather! This document provides guidelines and instructions for contributing to the beta release and beyond.
Please be respectful and considerate when interacting with other contributors. We aim to foster an inclusive and welcoming community.
- Fork the repository
- Clone your fork locally
- Set up the development environment:
pip install -e . - Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
This project follows test-driven development (TDD) principles:
- Write tests first that define the expected behavior
- Run the tests to ensure they fail initially
- Implement the feature to make the tests pass
- Refactor your code while keeping tests passing
- Commit your changes
For a quick unit-only pass, use the helper script:
scripts/run-unit-tests.shFor the same validation CI enforces on pull requests, run:
ruff format --check .
ruff check .
ACCESSIWEATHER_TEST_MODE=1 HYPOTHESIS_PROFILE=ci pytest tests/ -n 8 -v --tb=short -m "not integration"All UI components must be accessible to screen readers. Before submitting a pull request that includes UI changes:
- Ensure all UI elements have appropriate labels and descriptions
- Test keyboard navigation for all new features
- Verify that screen readers can properly announce UI elements
- Follow the guidelines in the developer documentation
- Update the documentation to reflect any changes
- Ensure all tests are passing
- Update the version number if applicable
- Submit a pull request with a clear description of your changes
- Follow PEP 8 for Python code style with a 100 character line length
- Use ruff for code formatting, linting, and import sorting
- Run mypy for type checking
- Include docstrings for all modules, classes, and functions
- Use type hints where appropriate
- Include meaningful commit messages
You can check your code with:
ruff format --check .
ruff check .
python -m mypy src/accessiweatherPlease use the GitHub issue tracker to submit feature requests and bug reports. For bug reports, please include:
- A clear description of the issue
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots if applicable
- System information (OS, Python version, wxPython version)
During the beta phase, we especially appreciate feedback on:
- Accessibility issues with screen readers
- UI/UX improvements
- Weather data accuracy and presentation
- Performance on different systems
- Installation and setup experience