Thank you for your interest in contributing to Version Tracker! This document outlines the process for adding new software products to our version tracking system.
-
Research Phase
- Identify a reliable source for version information:
- Official API endpoints
- Release RSS/Atom feeds
- GitHub releases
- Official release pages
- Determine what version data is consistently available
- Verify update frequency/patterns
- Document the source and any rate limits or restrictions
- Identify a reliable source for version information:
-
Implementation
- Create new product JSON file in
data/<category>/<product>.json - Implement version checker in
scripts/checkers/<product>_checker.py - Add appropriate error handling and logging
- Add tests to
tests/checkers/test_<product>.py
- Create new product JSON file in
-
Required Files
scripts/checkers/<product>.py # Version checker implementation tests/checkers/test_<product>.py # Test suite for the checker -
Testing Requirements
- Version checker must have unit tests
- Tests must cover:
- Successful version fetching
- Error handling (timeouts, bad responses)
- JSON schema validation
- Data file reading/writing
-
Pull Request Process
- Fork the repository
- Create a feature branch
- Implement your changes
- Run tests locally (
python -m pytest) - Submit PR with description of:
- What product you're adding
- How versions are sourced
- Any special considerations
- Test coverage
- Clone the repository
- Create a virtual environment:
python -m venv .venv source .venv/bin/activate # Linux/MacOS # or .venv\Scripts\activate # Windows
- Install dependencies:
pip install httpx jsonschema pytest pytest-asyncio pytest-cov
# Run all tests
python -m pytest
# Run with coverage report
python -m pytest --cov=scripts
# Run specific test file
python -m pytest tests/checkers/test_chrome.py- Follow PEP 8
- Use type hints
- Include docstrings for all functions/classes
- Keep functions focused and single-purpose
- Add appropriate logging