open-navigator / CONTRIBUTING.md
jcbowyer's picture
Clean HuggingFace deployment without binary files
61d29fc

Contributing to Oral Health Policy Pulse

Thank you for your interest in contributing to the Oral Health Policy Pulse project!

How to Contribute

Reporting Bugs

If you find a bug, please open an issue with:

  • A clear description of the problem
  • Steps to reproduce
  • Expected vs actual behavior
  • Your environment (OS, Python version, etc.)

Suggesting Features

Feature requests are welcome! Please:

  • Check if the feature has already been requested
  • Clearly describe the feature and its use case
  • Explain how it would benefit advocacy groups

Code Contributions

  1. Fork the repository

  2. Create a feature branch

    git checkout -b feature/your-feature-name
    
  3. Make your changes

    • Follow the existing code style
    • Add tests for new functionality
    • Update documentation as needed
  4. Run tests

    pytest
    black .
    ruff check .
    
  5. Commit your changes

    git commit -m "Add feature: description"
    
  6. Push and create a pull request

    git push origin feature/your-feature-name
    

Code Style

  • Follow PEP 8 guidelines
  • Use type hints
  • Write docstrings for all public functions
  • Keep functions focused and single-purpose
  • Use meaningful variable names

Code of Conduct

This project values respectful, inclusive collaboration. We align with the principles of:

Contributing to Upstream Projects

We use data and patterns from several open source civic tech projects. When contributing scraper patterns or improvements back to upstream projects like OpenStates, please:

  1. Follow their standards: https://github.com/openstates/openstates-scrapers
  2. Reference their documentation: https://docs.openstates.org/contributing/local-database/
  3. Respect their Code of Conduct: https://docs.openstates.org/code-of-conduct/
  4. Test locally before submitting pull requests
  5. Document data sources used in scraper development

Testing

All new features should include tests. Run the test suite with:

pytest tests/ -v

Documentation

Update relevant documentation when:

  • Adding new features
  • Changing API endpoints
  • Modifying configuration options
  • Adding new dependencies

Questions?

Open an issue or reach out to the maintainers.

Thank you for helping improve oral health advocacy! 🦷