Skip to content

Latest commit

 

History

History
101 lines (73 loc) · 2.82 KB

File metadata and controls

101 lines (73 loc) · 2.82 KB

Contributing to AccessiWeather

Thank you for your interest in contributing to AccessiWeather! This document provides guidelines and instructions for contributing to the beta release and beyond.

Code of Conduct

Please be respectful and considerate when interacting with other contributors. We aim to foster an inclusive and welcoming community.

Getting Started

  1. Fork the repository
  2. Clone your fork locally
  3. Set up the development environment:
    pip install -e .
    
  4. Create a new branch for your feature or bugfix:
    git checkout -b feature/your-feature-name
    

Development Process

Test-Driven Development

This project follows test-driven development (TDD) principles:

  1. Write tests first that define the expected behavior
  2. Run the tests to ensure they fail initially
  3. Implement the feature to make the tests pass
  4. Refactor your code while keeping tests passing
  5. Commit your changes

Running Tests

For a quick unit-only pass, use the helper script:

scripts/run-unit-tests.sh

For 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"

Accessibility Requirements

All UI components must be accessible to screen readers. Before submitting a pull request that includes UI changes:

  1. Ensure all UI elements have appropriate labels and descriptions
  2. Test keyboard navigation for all new features
  3. Verify that screen readers can properly announce UI elements
  4. Follow the guidelines in the developer documentation

Pull Request Process

  1. Update the documentation to reflect any changes
  2. Ensure all tests are passing
  3. Update the version number if applicable
  4. Submit a pull request with a clear description of your changes

Style Guidelines

  • 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/accessiweather

Feature Requests and Bug Reports

Please 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)

Beta Testing

During the beta phase, we especially appreciate feedback on:

  1. Accessibility issues with screen readers
  2. UI/UX improvements
  3. Weather data accuracy and presentation
  4. Performance on different systems
  5. Installation and setup experience